diff -r 608f67c22514 -r 896e9dbc5f19 qtinternetradio/irqsettings/src/irqsettings.cpp --- 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(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(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(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(); -}