qtinternetradio/irqsettings/src/irqsettings_p.cpp
changeset 14 896e9dbc5f19
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/qtinternetradio/irqsettings/src/irqsettings_p.cpp	Wed Aug 18 09:40:26 2010 +0300
@@ -0,0 +1,530 @@
+/*
+ * 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_p.h"
+#include "irinternalcrkeys.h"
+#include <XQSettingsKey>
+#include <XQSettingsManager>
+#include <QDesktopServices>
+#include <QTextCodec>
+
+const int KDefaultVolume            = 6;
+const int KDefaultHttpTimeOut       = 60000000; // unit: us, 6s
+const int KIRDefaultMinDiskSpace    = 3145728;  // byte, 3MB
+const QString KIRDefaultIsdsUrl     = "http://idirectory.xgns.net/isds";
+#ifdef USE_TEST_ISDS_SERVER
+const QString KIRTestIsdsUrl        = "http://88.114.146.238/isds";
+#endif
+
+IRQSettingsPrivate::IRQSettingsPrivate() :
+    mSettingsManager(new XQSettingsManager())
+{
+    mPrivatePath = QDesktopServices::storageLocation(QDesktopServices::DataLocation) + "/";
+}
+
+IRQSettingsPrivate::~IRQSettingsPrivate()
+{
+    if (mSettingsManager)
+    {
+        delete mSettingsManager;
+    }
+}
+
+QString IRQSettingsPrivate::privatePath()
+{
+    return mPrivatePath;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::isFlagTermsAndConditions()
+//
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::isFlagTermsAndConditions(bool& aFlag)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRTermsAndConditionsFlag);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        int nFlag = value.toInt();
+        aFlag = ( nFlag == 1 );         
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setFlagTermsAndConditions()
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setFlagTermsAndConditions()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRTermsAndConditionsFlag);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, 1);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::reSetFlagTermsAndConditions()
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::reSetFlagTermsAndConditions()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRTermsAndConditionsFlag);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, 0);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getIRID()
+//
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::getIRID(QString& aIRID)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRIrId);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        aIRID = QTextCodec::codecForName("UTF-16")->toUnicode(value.toByteArray());
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getVolumeSetting()
+//
+// ---------------------------------------------------------------------------
+//
+int IRQSettingsPrivate::getVolumeSetting()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRPlayerVolume);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    int ir = KDefaultVolume;
+
+    if (!value.isNull())
+    {
+        ir = value.toInt();
+    }
+
+    return ir;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setVolumeSetting()
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setVolumeSetting(int aPlayVolume)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRPlayerVolume);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, aPlayVolume);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setTimeOut()
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setTimeOut(int aTimeOut)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRHttpTimeout);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, aTimeOut);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getTimeOut()
+//
+// ---------------------------------------------------------------------------
+//
+int IRQSettingsPrivate::getTimeOut()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRHttpTimeout);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    int ir = KDefaultHttpTimeOut;
+
+    if (!value.isNull())
+    {
+        ir = value.toInt();
+    }
+
+    return ir;
+}
+
+void IRQSettingsPrivate::setSongHistoryShow(int aShowFlag)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRSongHistoryFTU);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, aShowFlag);
+}
+
+int IRQSettingsPrivate::getSongHistoryShow()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRSongHistoryFTU);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    int ir = 0;
+
+    if (!value.isNull())
+    {
+        ir = value.toInt();
+    }
+
+    return ir;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setStartingViewId()
+// Sets the starting view Id in cenrep
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setStartingViewId(int aStartingViewId)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRStartingViewId);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, aStartingViewId);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getStartingViewId()
+// Gets the starting view Id from cenrep
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::getStartingViewId(TIRViewId& aStartingViewId)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRStartingViewId);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        aStartingViewId = (TIRViewId) value.toInt();
+    }
+    else
+    {
+        aStartingViewId = EIRView_CategoryView;
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setPreferredQuality()
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setPreferredQuality(IRQPreferredQuality aQualityValue)
+{
+    TInt value = 0;
+    switch (aQualityValue)
+    {
+    case EIRQHighQuality:
+        value = 1;
+        break;
+    default:
+        break;
+    }
+
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRPreferredQuality);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, value);
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getPreferredQuality()
+//
+// ---------------------------------------------------------------------------
+//
+IRQPreferredQuality IRQSettingsPrivate::getPreferredQuality() const
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRPreferredQuality);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    int ir = 0;
+
+    if (!value.isNull())
+    {
+        ir = value.toInt();
+    }
+
+    switch (ir)
+    {
+    case 1:
+        return EIRQHighQuality;
+    default:
+        return EIRQStandardQuality;
+    }
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getGlobalAdvFlag()
+// Gets the global advertisement flag from cenrep
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::getGlobalAdvFlag(bool& aFlag)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRGlobalAdvEnabled);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        aFlag = value.toBool();
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getManuallyInputtedStationUrl(QString& aUrl)
+//
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::getManuallyInputtedStationUrl(QString& aUrl)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRManuallyInputStationUrl);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        aUrl = QTextCodec::codecForName("UTF-16")->toUnicode(value.toByteArray());
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setManuallyInputtedStationUrl(const QString& aUrl)
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setManuallyInputtedStationUrl(const QString& aUrl)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRManuallyInputStationUrl);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, QString::fromUtf16(aUrl.utf16()));
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getManuallyInputtedStationName(QString& aName)
+//
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::getManuallyInputtedStationName(QString& aName)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRManuallyInputStationName);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        aName = QTextCodec::codecForName("UTF-16")->toUnicode(value.toByteArray());
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setManuallyInputtedStationName(const QString& aName)
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setManuallyInputtedStationName(const QString& aName)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRManuallyInputStationName);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, QString::fromUtf16(aName.utf16()));
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::getSearchText(QString& aSearchText)
+//
+// ---------------------------------------------------------------------------
+//
+bool IRQSettingsPrivate::getSearchText(QString& aSearchText)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRSearchText);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool br = !value.isNull();
+
+    if (br)
+    {
+        aSearchText = value.toString();
+    }
+
+    return br;
+}
+
+// ---------------------------------------------------------------------------
+// IRQSettingsPrivate::setSearchText(const QString& aSearchText)
+//
+// ---------------------------------------------------------------------------
+//
+void IRQSettingsPrivate::setSearchText(const QString& aSearchText)
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRSearchText);
+
+    Q_ASSERT(mSettingsManager);
+    mSettingsManager->writeItemValue(profileKey, aSearchText.toUtf8());    
+}
+
+int IRQSettingsPrivate::getMinDiskSpaceRequired()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRMinDiskSpaceRequired);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    int retVal = KIRDefaultMinDiskSpace;
+        
+    if (!value.isNull())
+    {
+        retVal = value.toInt();
+    }
+
+    return retVal;
+}
+
+bool IRQSettingsPrivate::getIdentifySongEnabled()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRIdentifySongEnabled);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    bool retVal = false;
+        
+    if (!value.isNull())
+    {
+        retVal = value.toBool();
+    }
+
+    return retVal;
+}
+   
+int IRQSettingsPrivate::getSongRecognitionAppUid()
+{
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRSongRecognitionAppUid);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    int retVal = 0;
+        
+    if (!value.isNull())
+    {
+        retVal = value.toInt();
+    }
+
+    return retVal;
+}
+
+QString IRQSettingsPrivate::getIsdsUrl()
+{
+#ifdef USE_TEST_ISDS_SERVER
+    return KIRTestIsdsUrl;
+#else    
+    XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
+            KCRUidInternetRadio.iUid, KIRIsdsUrl);
+
+    Q_ASSERT(mSettingsManager);
+    QVariant value = mSettingsManager->readItemValue(profileKey);
+
+    QString retVal = KIRDefaultIsdsUrl;
+        
+    if (!value.isNull())
+    {
+        retVal = QTextCodec::codecForName("UTF-16")->toUnicode(value.toByteArray());;
+    }
+
+    return retVal;    
+#endif    
+}