qtinternetradio/irqmusicshop/src/irqmusicshop.cpp
changeset 3 ee64f059b8e1
parent 2 2e1adbfc62af
child 4 3f2d53f144fe
child 5 0930554dc389
--- a/qtinternetradio/irqmusicshop/src/irqmusicshop.cpp	Mon May 03 12:25:23 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,443 +0,0 @@
-/*
-* Copyright (c) 2009-2009 Nokia Corporation and/or its subsidiary(-ies). 
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  class implementation for visiting nokia music shop
-*
-*/
-
-
-#include <apgtask.h> // TApaTask, TApaTaskList
-#include <apgcli.h>  // RApaLsSession
-#include <e32std.h>  // TThreadId
-
-#include <w32std.h> // RWsSession
-#include <e32cmn.h>
-#include <e32def.h>
-#ifdef USER_DEFINED_MUSICSHOP
-#include <QFile>
-#include <QTextStream>
-#include <QStringList>
-#endif
-
-#ifdef MUSICSHOP_AVAILABLE
-#include <e32property.h>
-#include <centralrepository.h>
-#include <mpxfindinmusicshopcommon.h> // P/S Keys, KSearchUrlMaxSize, KCategoryValueMaxSize
-#include <musicstoreuidconstants.h>   // KUidMusicStore
-#include <mpxfindinmusicshop.h>       // CMPXFindInMShop
-#include <musicwapcenrepkeys.h>       // Central Repository : KCRUidMusicShopSettings,KMusicShopURI
-#ifdef USER_DEFINED_MUSICSHOP
-const TInt KMaxUrlLenth = 512;
-const char* const KNewMusicShopUrl = "http://music.nokia.co.uk";
-void getUrlFromConfiguration(QString & aUrl);
-#endif //for USER_DEFINED_MUSICSHOP
-#endif //for MUSICSHOP_AVAILABLE
-
-#include "irqmusicshop.h"
-
-
-const TUid KUidShazam = { 0x200265B3 };
-bool launchAppByUid(const TUid aUid);
-
-#ifdef MUSICSHOP_AVAILABLE
-// ---------------------------------------------------------------------------
-// IRQMusicShop::openInstance()
-// Static function to get a singleton instance of IRQMusicShop
-// ---------------------------------------------------------------------------
-//
-EXPORT_C IRQMusicShop* IRQMusicShop::openInstance()
-{
-    // Get singleton instance
-    IRQMusicShop* musicShop =
-                           reinterpret_cast<IRQMusicShop*>(Dll::Tls());
-
-    if(NULL == musicShop)
-    {
-        TRAPD(error, musicShop = createInstanceL());
-        if (KErrNone != error)
-        {
-            delete musicShop;
-            musicShop = NULL;
-            Dll::SetTls(NULL);
-        }
-    }
-    else
-    {
-        musicShop->iSingletonInstances++;
-    }
-
-    return musicShop;
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::closeInstance()
-// Close a singleton instance of IRQMusicShop
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void IRQMusicShop::closeInstance()
-{
-    iSingletonInstances--;
-
-    if (0 == iSingletonInstances)
-    {
-        Dll::SetTls(NULL);
-        delete this;
-    }
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::createInstanceL()
-// Creates IRQMusicShop instance
-// ---------------------------------------------------------------------------
-//
-IRQMusicShop* IRQMusicShop::createInstanceL()
-{
-    IRQMusicShop* musicShop = new (ELeave) IRQMusicShop();
-    musicShop->constructL();
-    User::LeaveIfError(Dll::SetTls(musicShop));
-    musicShop->iSingletonInstances = 1;
-    return musicShop;
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::IRQMusicShop()
-// Default Constructor.
-// ---------------------------------------------------------------------------
-//
-IRQMusicShop::IRQMusicShop():iMPXFindInShop(NULL),
-                             iSingletonInstances(0)   
-                             #ifdef USER_DEFINED_MUSICSHOP
-                             ,iResetAlready(false)
-                             #endif
-{   
-    _LIT_SECURITY_POLICY_C1(KReadPolicy, ECapabilityReadUserData);
-    _LIT_SECURITY_POLICY_C1(KWritePolicy, ECapabilityWriteUserData);
-    
-    RProperty::Define(KUidMusicStore, KMShopCategoryId, RProperty::EInt, KReadPolicy, KWritePolicy);
-    RProperty::Define(KUidMusicStore, KMShopCategoryName, RProperty::ELargeText, KReadPolicy, KWritePolicy);    
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::constructL()
-// Two-Phase Constructor.
-// ---------------------------------------------------------------------------
-//
-void IRQMusicShop::constructL()
-{
-    iMPXFindInShop = CMPXFindInMShop::NewL();
-#ifdef USER_DEFINED_MUSICSHOP
-    resetMusicShopUrlL();
-#endif 
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::~IRQMusicShop()
-// Destructor
-// ---------------------------------------------------------------------------
-//
-IRQMusicShop::~IRQMusicShop()
-{
-    delete iMPXFindInShop;
-    iMPXFindInShop = NULL;
-#ifdef USER_DEFINED_MUSICSHOP    
-    TRAP_IGNORE(restoreMusicShopUrlL());
-#endif
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::findInMusicShop()
-// Find song in music shop app.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C bool IRQMusicShop::findInMusicShop(const QString& aSongName,
-                                            const QString& aArtistName,
-                                            const QString& aAlbumName)
-{
-    if(NULL == iMPXFindInShop)
-    {
-        return false;
-    }
-
-    TPtrC songName(reinterpret_cast<const TUint16*>(aSongName.utf16()));
-    TPtrC artistName(reinterpret_cast<const TUint16*>(aArtistName.utf16()));
-    TPtrC albumName(reinterpret_cast<const TUint16*>(aAlbumName.utf16()));
-    
-    HBufC* url = NULL;
-    TRAPD(error, url = iMPXFindInShop->CreateSearchURLL(songName,
-                                                artistName,
-                                                albumName,
-                                                KNullDesC,    // Composer - Not used
-                                                KNullDesC)); // Genre - Not used
-    
-    bool retVal = false;
-    if( (KErrNone == error) &&
-        (KErrNone == RProperty::Set(KUidMusicStore,
-                          KMShopCategoryId,
-                          KFindInMShopKeyValid)) &&
-        (KErrNone == RProperty::Set(KUidMusicStore,
-                          KMShopCategoryName,
-                          *url))
-      )
-    {
-        retVal = launchMusicShop();
-    }
-
-    delete url;
-    REComSession::FinalClose();
-    return retVal;
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::launchMusicShop()
-// Launch music shop app.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C bool IRQMusicShop::launchMusicShop()
-{
-    return launchAppByUid(KUidMusicStore);
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::launchShazam()
-// Launch shazam app.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C bool IRQMusicShop::launchShazam()
-{
-    return launchAppByUid(KUidShazam);
-}
-
-
-#ifdef USER_DEFINED_MUSICSHOP
-// ---------------------------------------------------------------------------
-// resetMusicShopUrlL
-// Reset Music Shop Url in the Central Repository
-// ---------------------------------------------------------------------------
-//
-void IRQMusicShop::resetMusicShopUrlL()
-{
-    CRepository* pRepository = CRepository::NewL(KCRUidMusicShopSettings);
-    CleanupStack::PushL(pRepository);
-
-    TInt urlLenth = KMaxUrlLenth;
-    HBufC* valueString = HBufC::NewLC(urlLenth);
-    
-    TInt error = KErrNone;
-    do
-    {
-        TPtr ptr = valueString->Des();
-        error = pRepository->Get(KMusicShopURI,ptr);
-        if(error == KErrTooBig)
-        {
-            CleanupStack::PopAndDestroy(valueString);
-            urlLenth = 2 * urlLenth;
-            valueString = HBufC::NewLC(urlLenth);
-        }
-    } while(error == KErrTooBig);
-    
-    User::LeaveIfError(error);
-
-    iMusicShopUrl =  QString::fromUtf16(valueString->Ptr(),valueString->Length());
-        
-    QString newMusicShopUrl(KNewMusicShopUrl);
-    getUrlFromConfiguration(newMusicShopUrl);
-    
-    
-    if(0 != iMusicShopUrl.compare(newMusicShopUrl,Qt::CaseInsensitive))
-    {   
-        TPtrC urlDesc(reinterpret_cast<const TUint16*>(newMusicShopUrl.utf16())); 
-        User::LeaveIfError(pRepository->Set(KMusicShopURI,urlDesc));
-        iResetAlready = true;
-    }
-
-    CleanupStack::PopAndDestroy(valueString);
-    CleanupStack::PopAndDestroy(pRepository);
-}
-
-void IRQMusicShop::restoreMusicShopUrlL()
-{
-    if(iResetAlready)
-    {
-        CRepository* pRepository = CRepository::NewL(KCRUidMusicShopSettings);
-        TPtrC16 oldMusicShopUrl(reinterpret_cast<const TUint16*>(iMusicShopUrl.utf16()));
-        pRepository->Set(KMusicShopURI,oldMusicShopUrl);
-        delete pRepository;
-    }
-}
-
-
-void getUrlFromConfiguration(QString & aUrl)
-{
-    QFile file("C:\\data\\QTIRConfigure.txt");
-    if (file.open(QIODevice::ReadOnly)) 
-    {
-        QTextStream stream( &file );
-        QString line;
-        QStringList parameter;
-        while (!stream.atEnd())
-        {
-            line = stream.readLine();
-            parameter = line.split("=");
-            if (parameter.count() == 2)
-            {
-                if (parameter.first() == "userDefinedMusicStoreUrl")
-                {
-                    aUrl = parameter.last();
-                    break;
-                }
-            }
-        }
-        file.close();
-    }
-}
-#endif
-
-#else //for MUSICSHOP_AVAILABLE
-// ---------------------------------------------------------------------------
-// IRQMusicShop::openInstance()
-// Static function to get a singleton instance of IRQMusicShop
-// ---------------------------------------------------------------------------
-//
-EXPORT_C IRQMusicShop* IRQMusicShop::openInstance()
-{
-    // Get singleton instance
-    IRQMusicShop* musicShop =
-                           reinterpret_cast<IRQMusicShop*>(Dll::Tls());
-
-    if(NULL == musicShop)
-    {
-        musicShop = new IRQMusicShop();
-        musicShop->iSingletonInstances = 1;
-    }
-    else
-    {
-        musicShop->iSingletonInstances++;
-    }
-
-    return musicShop;
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::closeInstance()
-// Close a singleton instance of IRQMusicShop
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void IRQMusicShop::closeInstance()
-{
-    iSingletonInstances--;
-
-    if (0 == iSingletonInstances)
-    {
-        Dll::SetTls(NULL);
-        delete this;
-    }
-}
-
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::IRQMusicShop()
-// Default Constructor.
-// ---------------------------------------------------------------------------
-//
-IRQMusicShop::IRQMusicShop():iMPXFindInShop(NULL),
-                             iSingletonInstances(0)   
-                             #ifdef USER_DEFINED_MUSICSHOP
-                             ,iResetAlready(false)
-                             #endif
-{   
-
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::~IRQMusicShop()
-// Destructor
-// ---------------------------------------------------------------------------
-//
-IRQMusicShop::~IRQMusicShop()
-{
-
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::findInMusicShop()
-// Find song in music shop app.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C bool IRQMusicShop::findInMusicShop(const QString& aSongName,
-                                            const QString& aArtistName,
-                                            const QString& aAlbumName)
-{
-    Q_UNUSED(aSongName)
-    Q_UNUSED(aArtistName)
-    Q_UNUSED(aAlbumName)
-    return false;
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::launchMusicShop()
-// Launch music shop app.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C bool IRQMusicShop::launchMusicShop()
-{
-	return false;
-}
-
-// ---------------------------------------------------------------------------
-// IRQMusicShop::launchShazam()
-// Launch shazam app.
-// ---------------------------------------------------------------------------
-//
-EXPORT_C bool IRQMusicShop::launchShazam()
-{
-    return launchAppByUid(KUidShazam);
-}
-
-#endif //for MUSICSHOP_AVAILABLE
-
-bool launchAppByUid(const TUid aUid)
-{
-    RWsSession wsSession;
-    if(KErrNone != wsSession.Connect())
-    {
-        return false;
-    }
-    
-    bool retVal = false;
-    TApaTaskList tasList(wsSession);
-    TApaTask task = tasList.FindApp(aUid);
-
-    if(task.Exists())
-    {
-        task.BringToForeground();
-        retVal = true;
-    }
-    else
-    {
-        RApaLsSession session;
-        if(KErrNone == session.Connect())
-        {
-            TThreadId threadId;
-            TInt err = session.CreateDocument(KNullDesC, aUid, threadId);
-            if(KErrNone == err)
-            {
-                retVal = true;
-            }
-            session.Close();
-        }      	
-    }
-    
-    wsSession.Flush();    
-    wsSession.Close();
-    return retVal;
-}