hswidgetplugin/fmradiohswidgetplugin/src/fmradiohswidgetprofilereader.cpp
branchGCC_SURGE
changeset 37 451b2e1545b2
parent 26 6bcf277166c1
parent 33 11b6825f0862
equal deleted inserted replaced
26:6bcf277166c1 37:451b2e1545b2
     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: FM Radio widget process handler
       
    15 *
       
    16 */
       
    17 
       
    18 // System includes
       
    19 #include <ProfileEngineSDKCRKeys.h>
       
    20 #include "xqsettingsmanager.h"
       
    21 #include "xqsettingskey.h"
       
    22 #include "xqpublishandsubscribeutils.h"
       
    23 #include <QDateTime>
       
    24 
       
    25 // User includes
       
    26 #include "fmradiohswidgetprofilereader.h"
       
    27 #include "fmradiohswidget.h"
       
    28 #include "radioservicedef.h"
       
    29 
       
    30 /*!
       
    31  Constructor
       
    32  */
       
    33 FmRadioHsWidgetProfileReader::FmRadioHsWidgetProfileReader(QObject *parent) :
       
    34     QObject(parent),
       
    35     mSettingsManager(new XQSettingsManager(this)),
       
    36     mRadioStatus(-1)
       
    37 {
       
    38 /*
       
    39     // Monitors devices profile.
       
    40     XQSettingsKey profileKey(XQSettingsKey::TargetCentralRepository,
       
    41         KCRUidProfileEngine.iUid, KProEngActiveProfile);
       
    42     mSettingsManager->startMonitoring(profileKey);
       
    43     currentProfileStatus(mSettingsManager->readItemValue(profileKey));
       
    44     
       
    45     connect(mSettingsManager, SIGNAL(itemDeleted(XQSettingsKey)), this,
       
    46         SLOT(itemDeleted(XQSettingsKey)));
       
    47     connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
       
    48         this, SLOT(handleChanges(XQSettingsKey, QVariant)));
       
    49 */
       
    50     startMonitoringRadioRunningStatus();
       
    51     bool d = connect(mSettingsManager, SIGNAL(itemDeleted(XQSettingsKey)), this,
       
    52         SLOT(itemDeleted(XQSettingsKey)));
       
    53     bool h = connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
       
    54         this, SLOT(handleRadioRunningChanges(XQSettingsKey, QVariant)));
       
    55 }
       
    56 
       
    57 /*!
       
    58  Destructor 
       
    59  */
       
    60 FmRadioHsWidgetProfileReader::~FmRadioHsWidgetProfileReader()
       
    61 {
       
    62 }
       
    63 
       
    64 
       
    65 /*!
       
    66  Handling of deletion of listened P&S key.
       
    67  
       
    68  \param key Deleted key.
       
    69  */
       
    70 void FmRadioHsWidgetProfileReader::itemDeleted(const XQSettingsKey& key)
       
    71 {
       
    72 /*
       
    73     if (key.uid() == KCRUidProfileEngine.iUid && key.key()
       
    74         == KProEngActiveProfile) {
       
    75     }
       
    76 */
       
    77     if (key.uid() == KRadioPSUid && key.key() == KRadioStartupKey) {
       
    78         startMonitoringRadioRunningStatus();
       
    79     }
       
    80 }
       
    81 
       
    82 /*!
       
    83  Notifications from settings manager are handled and routed to appropriate
       
    84  private slots.
       
    85 
       
    86  \param key Changed key.
       
    87  \param value Value of changed key.
       
    88  */
       
    89 /*
       
    90 void FmRadioHsWidgetProfileReader::handleChanges(const XQSettingsKey& key,
       
    91     const QVariant& value)
       
    92 { 
       
    93     if (key.uid() == KCRUidProfileEngine.iUid && key.key()
       
    94         == KProEngActiveProfile) {
       
    95         currentProfileStatus(value);
       
    96     }
       
    97 }
       
    98 */
       
    99 
       
   100 /*!
       
   101  Handling changes in profile information.
       
   102  
       
   103  \param value Originally information is of int type. Valid values after
       
   104  conversion are described by KProEngActiveProfile in ProfileEngineSDKCRKeys.h.
       
   105  */
       
   106 void FmRadioHsWidgetProfileReader::currentProfileStatus(QVariant value)
       
   107 {
       
   108     if (value.canConvert(QVariant::Int)) {
       
   109         emit profileChanged(value.toInt());
       
   110     }
       
   111 }
       
   112 
       
   113 /*!
       
   114  Notifications from settings manager are handled and routed to appropriate
       
   115  private slots.
       
   116 
       
   117  \param key Changed key.
       
   118  \param value Value of changed key.
       
   119  */
       
   120 void FmRadioHsWidgetProfileReader::handleRadioRunningChanges(const XQSettingsKey& key,
       
   121     const QVariant& value)
       
   122 {
       
   123     if (key.uid() == KRadioPSUid && key.key()
       
   124         == KRadioStartupKey) {
       
   125         currentRadioRunningStatus(value);
       
   126     }
       
   127 }
       
   128 
       
   129 /*!
       
   130  Handling changes in profile information.
       
   131  
       
   132  \param value Originally information is of int type. Valid values after
       
   133  conversion are described by KProEngActiveProfile in ProfileEngineSDKCRKeys.h.
       
   134  */
       
   135 void FmRadioHsWidgetProfileReader::currentRadioRunningStatus(QVariant value)
       
   136 {
       
   137     if (value.isValid()) {
       
   138         if (value.canConvert(QVariant::Int)) {
       
   139             mRadioStatus = value.toInt();
       
   140             QVariant state(FmRadioHsWidget::Running);
       
   141             emit radioRunning(state);
       
   142         }
       
   143     } else {
       
   144         mRadioStatus = -1;
       
   145         QVariant state(FmRadioHsWidget::NotRunning);
       
   146         emit radioRunning(state);
       
   147     }
       
   148 }
       
   149 
       
   150 QVariant FmRadioHsWidgetProfileReader::radioStatus()
       
   151 {
       
   152     QVariant state;
       
   153     if (mRadioStatus != -1) {
       
   154         state = QVariant(FmRadioHsWidget::Running);
       
   155         return state;
       
   156     } else {
       
   157         state = QVariant(FmRadioHsWidget::NotRunning);
       
   158         return state;
       
   159     }
       
   160 }
       
   161 
       
   162 void FmRadioHsWidgetProfileReader::startMonitoringRadioRunningStatus()
       
   163 {
       
   164     XQSettingsKey radioRunningKey(XQSettingsKey::TargetPublishAndSubscribe, KRadioPSUid,
       
   165         KRadioStartupKey);
       
   166     bool a = mSettingsManager->startMonitoring(radioRunningKey);
       
   167     currentRadioRunningStatus(mSettingsManager->readItemValue(radioRunningKey));
       
   168 }