qtinternetradio/irhswidgetplugin/src/irappinspector.cpp
changeset 11 f683e24efca3
child 15 065198191975
equal deleted inserted replaced
8:3b03c28289e6 11:f683e24efca3
       
     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: Internet Radio App Insecptor
       
    15 *
       
    16 */
       
    17 
       
    18 // System includes
       
    19 #include <QVariant>
       
    20 #include <xqsettingsmanager.h>
       
    21 #include <xqpublishandsubscribeutils.h>
       
    22 
       
    23 // User includes
       
    24 #include "irappinspector.h"
       
    25 #include "irservicedef.h"
       
    26 
       
    27 // Constructor
       
    28 IrAppInspector::IrAppInspector(QObject *aParent) :
       
    29     QObject(aParent),
       
    30     mSettingsManager(new XQSettingsManager(this)),
       
    31     mIrRunningStatusKey(XQSettingsKey::TargetPublishAndSubscribe,
       
    32                         KInternetRadioPSUid,
       
    33                         KInternetRadioStartupKey)   
       
    34 {   
       
    35     QObject::connect(mSettingsManager, SIGNAL(itemDeleted(XQSettingsKey)),
       
    36         this, SLOT(handleIrExit(XQSettingsKey)));
       
    37     QObject::connect(mSettingsManager, SIGNAL(valueChanged(XQSettingsKey, QVariant)),
       
    38         this, SLOT(handleIrRunningStatusChanged(XQSettingsKey, QVariant)));
       
    39 }
       
    40 
       
    41 // Destructor 
       
    42 IrAppInspector::~IrAppInspector()
       
    43 {
       
    44     stopInspectingIrRunningStatus();
       
    45 }
       
    46 
       
    47 
       
    48 /*!
       
    49  Handling of deletion of listened P&S key.
       
    50  \param aKey Deleted key.
       
    51  */
       
    52 void IrAppInspector::handleIrExit(const XQSettingsKey &aKey)
       
    53 {
       
    54     if (KInternetRadioPSUid == aKey.uid()
       
    55          && KInternetRadioStartupKey == aKey.key())
       
    56     {
       
    57         emit irRunningStatusChanged(Exiting);
       
    58         
       
    59         // since the P&S key has been deleted, should re-start the inspecting
       
    60         startInspectingIrRunningStatus();
       
    61     }
       
    62 }
       
    63 
       
    64 
       
    65 void IrAppInspector::handleIrRunningStatusChanged(const XQSettingsKey &aKey,
       
    66                                                  const QVariant &aValue)
       
    67 {
       
    68     if (KInternetRadioPSUid == aKey.uid()
       
    69          && KInternetRadioStartupKey == aKey.key())
       
    70     {
       
    71         if (aValue.isValid())
       
    72         {
       
    73             if (aValue.canConvert(QVariant::Int))
       
    74             {
       
    75                 emit irRunningStatusChanged(StartingUp);
       
    76             }
       
    77         }
       
    78     }
       
    79 }
       
    80 
       
    81 bool IrAppInspector::startInspectingIrRunningStatus()
       
    82 {
       
    83     return mSettingsManager->startMonitoring(mIrRunningStatusKey);
       
    84 }
       
    85 
       
    86 void IrAppInspector::stopInspectingIrRunningStatus()
       
    87 {
       
    88     mSettingsManager->stopMonitoring(mIrRunningStatusKey);
       
    89 }
       
    90 
       
    91 bool IrAppInspector::isIrRunning()
       
    92 {
       
    93     QVariant value = mSettingsManager->readItemValue(mIrRunningStatusKey);
       
    94     if (value.isValid())
       
    95     {
       
    96         if (value.canConvert(QVariant::Int))
       
    97         {
       
    98             return true;
       
    99         }
       
   100     }
       
   101     return false;  
       
   102 }
       
   103