utilities/mpsettingsmanager/src/mpsettingsmanager.cpp
changeset 19 4e84c994a771
child 20 82baf59ce8dd
equal deleted inserted replaced
5:2a40e88564c8 19:4e84c994a771
       
     1 /*
       
     2 * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description: Music Player Settings Manager.
       
    15 *
       
    16 */
       
    17 
       
    18 #include <xqsettingsmanager.h>
       
    19 
       
    20 #include "mpsettingsmanager.h"
       
    21 #include "mpsettingsmanagerdefs.h"
       
    22 #include "mptrace.h"
       
    23 
       
    24 /*!
       
    25     \fn void shuffleChanged(bool shuffle)
       
    26 
       
    27     This signal is emitted when the \a shuffle setting was changed.
       
    28  */
       
    29 
       
    30 /*!
       
    31     \fn void repeatChanged(bool repeat)
       
    32 
       
    33     This signal is emitted when the \a repeat setting was changed.
       
    34  */
       
    35  
       
    36 /*!
       
    37     \class MpSettingsManager
       
    38     \brief Music Player Settings manager is the singleton responsible to
       
    39      store persistent Music Player settings.
       
    40 
       
    41     Music Player Settings Manager is a class that provides access to Music 
       
    42     player settings trough static getters and settes as well as singnals 
       
    43     and slots via the singleton instance.
       
    44 */
       
    45 
       
    46 
       
    47 /*!
       
    48  Constructs the MP Settings Manager.
       
    49  */
       
    50 MpSettingsManager::MpSettingsManager():
       
    51     mSettingsManager (new XQSettingsManager(this))
       
    52 {
       
    53     TX_ENTRY
       
    54     connect(mSettingsManager, 
       
    55             SIGNAL(valueChanged(XQSettingsKey, QVariant)), 
       
    56             this, 
       
    57             SLOT(valueChanged(XQSettingsKey, QVariant)));
       
    58     //first read from CenRep
       
    59     XQSettingsKey firstStartupProfileKey(XQSettingsKey::TargetCentralRepository,
       
    60             KMPCenRepSettingsFeature,
       
    61             KMPCenRepSettingFirstStartupKey);
       
    62     mFirstStartup = mSettingsManager->readItemValue(firstStartupProfileKey).toInt();
       
    63     if ( mFirstStartup ) {
       
    64         mSettingsManager->writeItemValue(firstStartupProfileKey, 0);
       
    65     }
       
    66 
       
    67     XQSettingsKey suffleProfileKey(XQSettingsKey::TargetCentralRepository,
       
    68             KMPCenRepSettingsFeature,
       
    69             KMPCenRepSettingShuffleKey);
       
    70     mShuffle = mSettingsManager->readItemValue(suffleProfileKey).toInt();
       
    71     mSettingsManager->startMonitoring(suffleProfileKey);
       
    72 
       
    73     XQSettingsKey repeatProfileKey(XQSettingsKey::TargetCentralRepository, 
       
    74             KMPCenRepSettingsFeature, 
       
    75             KMPCenRepSettingRepeatKey);
       
    76     mRepeat = mSettingsManager->readItemValue(repeatProfileKey).toInt();
       
    77     mSettingsManager->startMonitoring(repeatProfileKey);
       
    78     
       
    79     TX_EXIT
       
    80 }
       
    81 
       
    82 /*!
       
    83  Destructs the settings manager.
       
    84  */
       
    85 MpSettingsManager::~MpSettingsManager()
       
    86 {
       
    87     delete mSettingsManager;
       
    88 }
       
    89 
       
    90 /*!
       
    91  Returns the singleton instance to the settings manager.
       
    92  */
       
    93 MpSettingsManager * MpSettingsManager::instance()
       
    94 {
       
    95     static MpSettingsManager instance;
       
    96     return &instance;
       
    97 }
       
    98 
       
    99 /*!
       
   100  Returns whether this is first startup or not.
       
   101  */
       
   102 bool MpSettingsManager::firstStartup()
       
   103 {
       
   104     return instance()->mFirstStartup;
       
   105 }
       
   106 
       
   107 /*!
       
   108  Returns the shuffle setting.
       
   109  */
       
   110 bool MpSettingsManager::shuffle()
       
   111 {
       
   112     return instance()->mShuffle;
       
   113 }
       
   114 
       
   115 /*!
       
   116  Returns the repeat setting.
       
   117  */
       
   118 bool MpSettingsManager::repeat()
       
   119 {
       
   120     return instance()->mRepeat;
       
   121 }
       
   122 
       
   123 
       
   124 /*!
       
   125  Slot to be called when a setting is changed.
       
   126  */
       
   127 void MpSettingsManager::valueChanged(const XQSettingsKey& key, 
       
   128         const QVariant& value)
       
   129 {
       
   130     TX_ENTRY
       
   131     switch ( key.key() ) {
       
   132         case KMPCenRepSettingShuffleKey:
       
   133             mShuffle = value.toInt();
       
   134             TX_LOG_ARGS("shuffle changed to "<< mShuffle);
       
   135             emit shuffleChanged( mShuffle );
       
   136             break;
       
   137         case KMPCenRepSettingRepeatKey:
       
   138             mRepeat = value.toInt();
       
   139             TX_LOG_ARGS("Repeat changed to "<< mRepeat);
       
   140             emit repeatChanged( mRepeat );
       
   141             break;
       
   142         default :
       
   143             TX_LOG_ARGS(" unhandled cenrep key: " << key.key() << 
       
   144                     "; should never get here.");
       
   145             break;
       
   146     }
       
   147     TX_EXIT
       
   148 }
       
   149 
       
   150 /*!
       
   151  Slot to be called to request an update on the \a shuffle setting.
       
   152  */
       
   153 void MpSettingsManager::setShuffle(bool shuffle)
       
   154 {
       
   155     TX_STATIC_ENTRY_ARGS("shuffle=" << shuffle);
       
   156     XQSettingsKey suffleProfileKey(XQSettingsKey::TargetCentralRepository, 
       
   157             KMPCenRepSettingsFeature, 
       
   158             KMPCenRepSettingShuffleKey);
       
   159     instance()->mSettingsManager->writeItemValue(
       
   160             suffleProfileKey, 
       
   161             shuffle ? 1 : 0);
       
   162     TX_EXIT
       
   163 }
       
   164 
       
   165 /*!
       
   166  Slot to be called to request an update on the \a repeat setting.
       
   167  */
       
   168 void MpSettingsManager::setRepeat(bool repeat)
       
   169 {
       
   170     TX_STATIC_ENTRY_ARGS("repeat=" << repeat);
       
   171     XQSettingsKey repeatProfileKey(XQSettingsKey::TargetCentralRepository, 
       
   172             KMPCenRepSettingsFeature, 
       
   173             KMPCenRepSettingRepeatKey);
       
   174     instance()->mSettingsManager->writeItemValue(
       
   175             repeatProfileKey, 
       
   176             repeat ? 1 : 0);
       
   177     TX_EXIT
       
   178 }
       
   179