diff -r f683e24efca3 -r 608f67c22514 qtinternetradio/ui/inc/irmonitorservice.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/ui/inc/irmonitorservice.h Tue Jul 06 14:07:20 2010 +0300 @@ -0,0 +1,92 @@ +/* +* 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: +* +*/ + +#ifndef IRMONITORSERVICE_H +#define IRMONITORSERVICE_H + +// System includes +#include +#include +#include + +// User includes +#include "irservicedef.h" +#include "irservicedata.h" + +// Forward declarations +class IRApplication; +class IRPlayController; +class IRQMetaData; + +class IrMonitorService : public XQServiceProvider +{ + Q_OBJECT + +public: + explicit IrMonitorService(IRApplication *aIrApp, QObject *aParent = 0); + virtual ~IrMonitorService(); + +public slots: + void registerNotifications(); // service interface, called via Qt Highway + void refreshAllData(); // service interface, called via Qt Highway + +private slots: + // slots for station logo update + void handleStationLogoUpdated(bool aLogoAvailable); + + // slots for play controller + void handleLoadingStarted(const QString &aStationName); + void handleLoadingCancelled(const QString &aStationName); + void handlePlayStarted(); + void handlePlayStopped(); + void updateMetaData(IRQMetaData* aMetaData); + +public: + enum ReadyItem + { + StationName = 0x01, + StationLogo = 0x02, + MetaData = 0x04, + IrState = 0x08 + }; + Q_DECLARE_FLAGS(ReadyItems, ReadyItem) + +private: + void setupConnection(); + + void notifyAll(); + bool notifyList(const IrServiceDataList &aDataList); + +private: + ReadyItems mReadyItems; + QString mStationName; + bool mStationLogoAvailable; // true if station has its own logo + QString mMetaData; + IrAppState::Type mIrState; + + IRApplication *mIrApp; + IRPlayController *mPlayController; + + QList mRequestList; // used to maintain the async request + + Q_DISABLE_COPY(IrMonitorService) + +}; + +Q_DECLARE_OPERATORS_FOR_FLAGS(IrMonitorService::ReadyItems) + +#endif // IRMONITORSERVICE_H