qtinternetradio/irqsettings/src/irqsettings.cpp
changeset 14 896e9dbc5f19
parent 11 f683e24efca3
--- a/qtinternetradio/irqsettings/src/irqsettings.cpp	Tue Jul 06 14:07:20 2010 +0300
+++ b/qtinternetradio/irqsettings/src/irqsettings.cpp	Wed Aug 18 09:40:26 2010 +0300
@@ -1,21 +1,25 @@
 /*
-* Copyright (c) 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:
-*
-*/
-#include "irsettings.h"
+ * Copyright (c) 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:
+ *
+ */
+
 #include "irqsettings.h"
+#include "irqsettings_p.h"
+
+IRQSettings * IRQSettings::mInstance = NULL;
+QMutex IRQSettings::mMutex;
 
 // ---------------------------------------------------------------------------
 // IRQSettings::openInstance()
@@ -23,22 +27,22 @@
 // @return IRQSettings *
 // ---------------------------------------------------------------------------
 //
-EXPORT_C IRQSettings* IRQSettings::openInstance()
+IRQSettings* IRQSettings::openInstance()
 {
-    // Get singleton instance
-    IRQSettings* irqsettings =
-                           reinterpret_cast<IRQSettings*>(Dll::Tls());
+    mMutex.lock();
 
-    if (NULL == irqsettings)
+    if (NULL == mInstance)
     {
-        irqsettings = createInstance();
+        mInstance = new IRQSettings();
     }
     else
     {
-        irqsettings->iSingletonInstances++;
+        mInstance->mRefCount++;
     }
 
-    return irqsettings;
+    mMutex.unlock();
+
+    return mInstance;
 }
 
 // ---------------------------------------------------------------------------
@@ -46,15 +50,18 @@
 // Close a singleton instance of IRQSettings
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::closeInstance()
+void IRQSettings::closeInstance()
 {
-    iSingletonInstances--;
-
-    if (0 == iSingletonInstances)
+    mMutex.lock();
+    if ((--mRefCount) == 0)
     {
-        Dll::SetTls(NULL);
+        if (this == mInstance)
+        {
+            mInstance = NULL;
+        }
         delete this;
     }
+    mMutex.unlock();
 }
 
 // ---------------------------------------------------------------------------
@@ -62,15 +69,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C bool IRQSettings::isFlagTermsAndConditions(bool& aFlag)
+bool IRQSettings::isFlagTermsAndConditions(bool& aFlag)
 {
-    TRAPD(error, aFlag = (bool)iSettings->IsFlagTermsAndConditionsL());
-    if (KErrNone != error)
-    {
-        return false;
-    }
-
-    return true;
+    return d_ptr->isFlagTermsAndConditions(aFlag);
 }
 
 // ---------------------------------------------------------------------------
@@ -78,9 +79,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setFlagTermsAndConditions()
+void IRQSettings::setFlagTermsAndConditions()
 {
-    TRAP_IGNORE(iSettings->SetFlagTermsAndConditionsL());
+    d_ptr->setFlagTermsAndConditions();
 }
 
 // ---------------------------------------------------------------------------
@@ -88,9 +89,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::reSetFlagTermsAndConditions()
+void IRQSettings::reSetFlagTermsAndConditions()
 {
-    TRAP_IGNORE(iSettings->ReSetFlagTermsAndConditionsL());
+    d_ptr->reSetFlagTermsAndConditions();
 }
 
 // ---------------------------------------------------------------------------
@@ -98,17 +99,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C bool IRQSettings::getIRID(QString& aIRID)
+bool IRQSettings::getIRID(QString& aIRID)
 {
-    TDeviceInfo irid;
-    TRAPD(error, irid = iSettings->GetIRIDL());
-    if (KErrNone != error)
-    {
-        return false;
-    }
-
-    aIRID = QString::fromUtf16(irid.Ptr(), irid.Length());
-    return true;
+    return d_ptr->getIRID(aIRID);
 }
 
 // ---------------------------------------------------------------------------
@@ -116,9 +109,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C int IRQSettings::getVolumeSetting()
+int IRQSettings::getVolumeSetting()
 {
-    return (int)iSettings->GetVolumeSetting();
+    return d_ptr->getVolumeSetting();
 }
 
 // ---------------------------------------------------------------------------
@@ -126,9 +119,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setVolumeSetting(int aPlayVolume)
+void IRQSettings::setVolumeSetting(int aPlayVolume)
 {
-    TRAP_IGNORE(iSettings->SetVolumeSettingL((TInt)aPlayVolume));
+    d_ptr->setVolumeSetting(aPlayVolume);
 }
 
 // ---------------------------------------------------------------------------
@@ -136,9 +129,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setTimeOut(int aTimeOut)
+void IRQSettings::setTimeOut(int aTimeOut)
 {
-    TRAP_IGNORE(iSettings->SetTimeOutL((TInt)aTimeOut));
+    d_ptr->setTimeOut(aTimeOut);
 }
 
 // ---------------------------------------------------------------------------
@@ -146,29 +139,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C int IRQSettings::getTimeOut()
-{
-    return (int)iSettings->GetTimeOut();
-}
-
-// ---------------------------------------------------------------------------
-// IRQSettings::setMaxPresetCount()
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void IRQSettings::setMaxPresetCount(int aMaxCount)
+int IRQSettings::getTimeOut()
 {
-    TRAP_IGNORE(iSettings->SetMaxPresetCountL((TInt)aMaxCount));
-}
-
-// ---------------------------------------------------------------------------
-// IRQSettings::maxPresetCount()
-//
-// ---------------------------------------------------------------------------
-//
-EXPORT_C int IRQSettings::maxPresetCount()
-{
-    return (int)iSettings->MaxPresetCount();
+    return d_ptr->getTimeOut();
 }
 
 // ---------------------------------------------------------------------------
@@ -176,21 +149,19 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C QString IRQSettings::privatePath()
+QString IRQSettings::privatePath()
 {
-    TPath privatePath = iSettings->PrivatePath();
-
-    return QString::fromUtf16(privatePath.Ptr(), privatePath.Length());
+    return d_ptr->privatePath();
 }
 
-EXPORT_C void IRQSettings::setSongHistoryShow(int aShowFlag)
+void IRQSettings::setSongHistoryShow(int aShowFlag)
 {
-    TRAP_IGNORE(iSettings->SetSongHisotryShowL(aShowFlag));
+    d_ptr->setSongHistoryShow(aShowFlag);
 }
 
-EXPORT_C int IRQSettings::getSongHistoryShow()
-{                     
-    return iSettings->GetSongHistoryShow();
+int IRQSettings::getSongHistoryShow()
+{
+    return d_ptr->getSongHistoryShow();
 }
 
 // ---------------------------------------------------------------------------
@@ -198,9 +169,9 @@
 // Sets the starting view Id in cenrep
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setStartingViewId(unsigned long aStartingViewId)
+void IRQSettings::setStartingViewId(int aStartingViewId)
 {
-    TRAP_IGNORE(iSettings->SetStartingViewIdL((TUint32)aStartingViewId));
+    d_ptr->setStartingViewId(aStartingViewId);
 }
 
 // ---------------------------------------------------------------------------
@@ -208,17 +179,9 @@
 // Gets the starting view Id from cenrep
 // ---------------------------------------------------------------------------
 //
-EXPORT_C bool IRQSettings::getStartingViewId(TIRViewId& aStartingViewId)
+bool IRQSettings::getStartingViewId(TIRViewId& aStartingViewId)
 {
-    TUint32 startingViewId = 0;
-    TRAPD(error, startingViewId = iSettings->GetStartingViewIdL());
-    if (KErrNone != error)
-    {
-        return false;
-    }
-
-	aStartingViewId = (TIRViewId)startingViewId;
-    return true;
+    return d_ptr->getStartingViewId(aStartingViewId);
 }
 
 // ---------------------------------------------------------------------------
@@ -226,19 +189,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setPreferredQuality(IRQPreferredQuality aQualityValue)
+void IRQSettings::setPreferredQuality(IRQPreferredQuality aQualityValue)
 {
-    TInt value = 0;
-    switch(aQualityValue)
-    {
-        case EIRQHighQuality:
-            value = 1;
-            break;
-		default:
-            break;
-    }
-        
-    TRAP_IGNORE(iSettings->SetPreferredQualityL(value));
+    d_ptr->setPreferredQuality(aQualityValue);
 }
 
 // ---------------------------------------------------------------------------
@@ -246,16 +199,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C IRQPreferredQuality IRQSettings::getPreferredQuality() const
+IRQPreferredQuality IRQSettings::getPreferredQuality() const
 {
-    TInt value = iSettings->GetPreferredQuality();
-    switch(value)
-    {
-        case 1:
-            return EIRQHighQuality;
-        default:
-            return EIRQStandardQuality;
-    }
+    return d_ptr->getPreferredQuality();
 }
 
 // ---------------------------------------------------------------------------
@@ -263,15 +209,9 @@
 // Gets the global advertisement flag from cenrep
 // ---------------------------------------------------------------------------
 //
-EXPORT_C bool IRQSettings::getGlobalAdvFlag(bool& aFlag)
+bool IRQSettings::getGlobalAdvFlag(bool& aFlag)
 {
-    TRAPD(error, aFlag = iSettings->GetGlobalAdvFlagL());
-    if (KErrNone != error)
-    {
-        return false;
-    }
-
-    return true;
+    return d_ptr->getGlobalAdvFlag(aFlag);
 }
 
 // ---------------------------------------------------------------------------
@@ -279,17 +219,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C bool IRQSettings::getManuallyInputtedStationUrl(QString& aUrl)
+bool IRQSettings::getManuallyInputtedStationUrl(QString& aUrl)
 {
-    TPath stationUrl;
-    TRAPD(error, stationUrl = iSettings->GetManuallyInputtedStationUrlL());
-    if (KErrNone != error)
-    {
-        return false;
-    }
-
-    aUrl = QString::fromUtf16(stationUrl.Ptr(), stationUrl.Length());
-    return true;
+    return d_ptr->getManuallyInputtedStationUrl(aUrl);
 }
 
 // ---------------------------------------------------------------------------
@@ -297,10 +229,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setManuallyInputtedStationUrl(const QString& aUrl)
+void IRQSettings::setManuallyInputtedStationUrl(const QString& aUrl)
 {
-    TPtrC stationUrl(reinterpret_cast<const TUint16*>(aUrl.utf16()));
-    TRAP_IGNORE(iSettings->SetManuallyInputtedStationUrlL(stationUrl));
+    d_ptr->setManuallyInputtedStationUrl(aUrl);
 }
 
 // ---------------------------------------------------------------------------
@@ -308,17 +239,9 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C bool IRQSettings::getManuallyInputtedStationName(QString& aName)
+bool IRQSettings::getManuallyInputtedStationName(QString& aName)
 {
-    TPath stationName;
-    TRAPD(error, stationName = iSettings->GetManuallyInputtedStationNameL());
-    if (KErrNone != error)
-    {
-        return false;
-    }
-
-    aName = QString::fromUtf16(stationName.Ptr(), stationName.Length());
-    return true;
+    return d_ptr->getManuallyInputtedStationName(aName);
 }
 
 // ---------------------------------------------------------------------------
@@ -326,18 +249,58 @@
 //
 // ---------------------------------------------------------------------------
 //
-EXPORT_C void IRQSettings::setManuallyInputtedStationName(const QString& aName)
+void IRQSettings::setManuallyInputtedStationName(const QString& aName)
 {
-    TPtrC stationName(reinterpret_cast<const TUint16*>(aName.utf16()));
-    TRAP_IGNORE(iSettings->SetManuallyInputtedStationNameL(stationName));
+    d_ptr->setManuallyInputtedStationName(aName);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettings::getSearchText(QString& aSearchText)
+//
+// ---------------------------------------------------------------------------
+//
+bool IRQSettings::getSearchText(QString& aSearchText)
+{
+    return d_ptr->getSearchText(aSearchText);
 }
 
 // ---------------------------------------------------------------------------
+// IRQSettings::setSearchText(const QString& aSearchText)
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettings::setSearchText(const QString& aSearchText)
+{
+    d_ptr->setSearchText(aSearchText);
+}
+
+int IRQSettings::getMinDiskSpaceRequired()
+{
+    return d_ptr->getMinDiskSpaceRequired();
+}
+
+bool IRQSettings::getIdentifySongEnabled()
+{
+    return d_ptr->getIdentifySongEnabled();    
+}
+    
+int IRQSettings::getSongRecognitionAppUid()
+{
+    return d_ptr->getSongRecognitionAppUid();
+}
+
+QString IRQSettings::getIsdsUrl()
+{
+    return d_ptr->getIsdsUrl();
+}    
+    
+// ---------------------------------------------------------------------------
 // IRQSettings::IRQSettings()
 // Constructor
 // ---------------------------------------------------------------------------
 //
-IRQSettings::IRQSettings()
+IRQSettings::IRQSettings() :
+    d_ptr(new IRQSettingsPrivate()), mRefCount(1)
 {
 }
 
@@ -348,55 +311,6 @@
 //
 IRQSettings::~IRQSettings()
 {
-    if (iSettings)
-    {
-        iSettings->Close();
-    }
+    delete d_ptr;
 }
 
-// ---------------------------------------------------------------------------
-// IRQSettings::createInstanceL()
-// Creates IRQSettings instance
-// @return IRQSettings*
-// ---------------------------------------------------------------------------
-//
-IRQSettings* IRQSettings::createInstance()
-{
-    IRQSettings* irqsettings = new IRQSettings();
-    
-    TRAPD(leaveCode, doCreateInstanceL(irqsettings));
-    if (KErrNone != leaveCode)
-    {
-        delete irqsettings;
-        irqsettings = NULL;
-        return NULL;
-    }
-    else
-    {
-        irqsettings->iSingletonInstances = 1;
-        return irqsettings;
-    }
-}
-
-// ---------------------------------------------------------------------------
-// IRQSettings::doCreateInstanceL()
-// Creates IRQSettings instance
-// @return IRQSettings*
-// ---------------------------------------------------------------------------
-//
-void IRQSettings::doCreateInstanceL(IRQSettings * aQsettings)
-{
-    aQsettings->constructL();
-    Dll::SetTls(aQsettings);
-
-}
-// ---------------------------------------------------------------------------
-// IRQSettings::constructL()
-// Two-Phase Constructor.
-// ---------------------------------------------------------------------------
-//
-void IRQSettings::constructL()
-{
-    // Get singleton instance
-    iSettings = CIRSettings::OpenL();
-}