diff -r 000000000000 -r 09774dfdd46b qtinternetradio/irqisdsclient/inc/irqisdsclient.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/qtinternetradio/irqisdsclient/inc/irqisdsclient.h Mon Apr 19 14:01:53 2010 +0300 @@ -0,0 +1,303 @@ +/* +* Copyright (c) 2006-2007 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: a new wrapper class in QT + * +*/ + +#ifndef IRQISDSCLIENT_H +#define IRQISDSCLIENT_H + +#include +#include +#include +#include +#include "irqenums.h" + +class IRQIsdsClientImpl; +class IRQFavoritesDB; +class IRQPreset; +class IRQBrowseCategoryItem; +class IRQChannelItem; + +enum IRQSycPresetStatus +{ + EIRQIsdsSycPresetNoChange, + EIRQIsdsSycPresetRemoved, + EIRQIsdsSycPresetChanged +}; + +/** + *This class is being used by the UI to send request and get data from low layer + *All interfaces are QT-supported + */ +class IRQIsdsClient : public QObject +{ +Q_OBJECT + +public: + + /** + *IRQIsdsClient::IRQIsdsClientInterfaceIDs() + *enum to indicate which the type of category + */ + enum IRQIsdsClientInterfaceIDs + { + EGenre, ELanguages, ECountries, Ehotpicks + }; + + /** + *IRQIsdsClient::openInstance() + *to get an instance of the IRQIsdsClient. + *@return IRQIsdsClient * + */ + IMPORT_C static IRQIsdsClient *openInstance(IRQFavoritesDB *aFavPresets); + + /** + *IRQIsdsClient::CloseInstance() + *close the instance. + *@return IRQIsdsClient * + */ + IMPORT_C void closeInstance(); + + /** + *IRQIsdsClient::IsdsSearchRequestL() + *Issue a search request to the isds server + *@param QString, the requested search string + **/ + IMPORT_C void isdsSearchRequest(const QString& aIsdsSearchString); + + /** + *IRQIsdsClient::IsdsCategoryRequest() + *Send the category request by the category type + *@param IRQIsdsClientInterfaceIDs, the requested category type + **/ + IMPORT_C void isdsCategoryRequest( + IRQIsdsClient::IRQIsdsClientInterfaceIDs aIDType, bool& aCache); + + /** + *IRQIsdsClient::isdsIsCategoryCached() + *to check wether the request data is cached. Different from the above + *function, this function will not send the http request if the data is + *not cached in DB. Normally, we call this function to check the cache. + **/ + IMPORT_C bool isdsIsCategoryCached(IRQIsdsClient::IRQIsdsClientInterfaceIDs aIDType); + + /** + *IRQIsdsClient::isdsIsChannelCached() + *to check wether the request data is cached. Different from the followed + *function, this function will not send the http request if the data is + *not cached in DB. Normally, we call this function to check the cache. + **/ + IMPORT_C bool isdsIsChannelCached(int aIndex); + + /** + *IRQIsdsClient::IsdsChannelRequestL() + *Send the channels request by the channel index in the specify category + *@param int, the requested index from UI view + **/ + IMPORT_C void isdsChannelRequest(int aIndex, bool& aCache); + + /** + *IRQIsdsClient::IsdsListenRequestL() + *issue a listen request to the isds client. + *@param int,bool, the current index of channel, the history tag + **/ + IMPORT_C void isdsListenRequest(int aCurrentIndex, bool aHistoryBool = + false); + + /** + *IRQIsdsClient::IsdsListenRequestL() + *to syncronize presets + *@param int,QString, the preset id and the last modified tag for the preset + **/ + IMPORT_C int isdsSyncPreset(int aPresetId, const QString& aIfModifySince); + + /** + *IRQIsdsClient::IsdsCancelRequest() + *Cacel the request sent by the UI. + *@param None + **/ + IMPORT_C void isdsCancelRequest(); + + /** + *IRQIsdsClient::IsdsGetCurrentPlayingIndex() + *get the playing song's index + *@param None + **/ + IMPORT_C int isdsGetCurrentPlayingIndex(); + + /** + *IRQIsdsClient::IsdsIsCategoryBanner() + *to see wether category view has a banner. + *@param None + **/ + IMPORT_C bool isdsIsCategoryBanner(); + + /** + *IRQIsdsClient::IsdsIsChannelBanner() + *to see wether channel view has a banner. + *@param None + **/ + IMPORT_C bool isdsIsChannelBanner(); + + /** + *IRQIsdsClient::IsdsLogoDownSendRequestL() + *the api is called from the UI(nowplaying view) to download logo. + *@param None + **/ + IMPORT_C void isdsLogoDownSendRequest(IRQPreset* aPreset, int aNPVReq = 1, + int aXValue = 0, int aYValue = 0); + + /** + *IRQIsdsClient::isdsIsLogoCached() + *to check wether the preset's logo is cached or not. + **/ + IMPORT_C bool isdsIsLogoCached(IRQPreset* aPreset, int aXValue = 0, int aYValue = 0); + /** + *IRQIsdsClient::isdsLogoDownCancelTransaction() + *the api is called to cancel the current transaction + *@param None + **/ + IMPORT_C void isdsLogoDownCancelTransaction(); + + /** + * IRQIsdsClient::isdsLogoDownIsRunning() + * To know the status of downloading logo + */ + IMPORT_C bool isdsLogoDownIsRunning() const; + + /** + * IRQIsdsClient::IsdsLogoDownCheckCacheLogoL() + * takes the url as a parameter and the return value indicates wether the + * logo is in the cache. If the logo is in the cache, the logo data will + * be saved in an internal member of the logodown engine and we can use + * the next function to get it from the engine. + * this API is called form the search results view. + * @param QString: the url of the img, int: the status for getting + */ + IMPORT_C void isdsLogoDownCheckCacheLogo(const QString& aURL, int& aStatus); + + /** + * IRQIsdsClient::IsdsLogoDownSendCacheLogo() + * get the cache logo from the logodown engine. The return value should + * be changed to be QT value in future + * @param None + */ + IMPORT_C TDesC8& isdsLogoDownSendCacheLogo(); + + /** + * IRQIsdsClient::isdsPostLog() + * send the log file to the isds server + * @param None + */ + IMPORT_C void isdsPostLog(const QString& aFileName); + + /* + * IRQIsdsClient::isdsGetIRID() + * get the irid of the application + */ + IMPORT_C void isdsGetIRID(); + + /* + * IRQIsdsClient::isdsGetBrowseBanner() + * get the browse advertisement url and clickthrough url + */ + IMPORT_C void isdsGetBrowseBanner(QString& aBannerUrl, QString& aClickThroughUrl); + + /* + * IRQIsdsClient::isdsMultiSearch() + * the new interface of multi search + */ + IMPORT_C void isdsMultSearch(QString aGenreID, QString aCountryID, QString aLanguageID, QString aSearchText); + + IMPORT_C bool isdsIsConstructSucceed() const; + + signals: + /** + *IRQIsdsClient::categoryItemsChanged() + *A signal to notify UI that the category items data is changed + *@param QList, the data list sent to UI model + **/ + void categoryItemsChanged(QList *aPushItemsList); + /** + *IRQIsdsClient::channelItemsChanged() + *A signal to notify UI that the channel items data is changed + *@param QList, the data list sent to UI model + **/ + void channelItemsChanged(QList *aPushItemsList); + /** + *IRQIsdsClient::operationException() + *A signal to notify UI that some inner error occurs + *@param IRQError, the error type notified + **/ + void operationException(IRQError aError); + + /** + *IRQIsdsClient::presetResponse() + *A signal to notify UI that the preset data is changed * + *@param QIRPreset*, the data sent to UI model + **/ + void presetResponse(IRQPreset *aPreset); + + /** + *IRQIsdsClient::presetResponse() + *A signal to notify UI that the preset data is changed * + *@param QIRPreset* IRQSycPresetStatus, the data sent to UI model + **/ + void syncPresetResult(IRQSycPresetStatus aStatus, IRQPreset *aPreset); + + /** + *IRQIsdsClient::presetLogoDownloaded() + *A signal to notify UI that the preset logo requested is downloaded from server + *@param None + **/ + void presetLogoDownloaded(IRQPreset* aPreset); + + /** + *IRQIsdsClient::presetLogoDownloadError() + *A signal to notify UI that the preset logo downloading is error + *@param None + **/ + void presetLogoDownloadError(); + + /* + * IRQIsdsClient::iridReceived() + * A signal to notify UI that the irid is received + */ + void iridReceived(QString aIRID); + + + +private: + + /* + * the IRQIsdsClientImpl of the IRQIsdsClient + */ + IRQIsdsClientImpl *iImpl; + + /** + *iSingletonInstances + * the count of reference of the object + */ + int iSingletonInstances; + + IRQIsdsClient(IRQFavoritesDB *aFavPresets); + /** + *IRQIsdsClient::~IRQIsdsClient() + *default c++ function + **/ + ~IRQIsdsClient(); +}; + +#endif