--- 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();
-}