diff -r 608f67c22514 -r 896e9dbc5f19 internetradio2.0/irpresetplugin/inc/irpresetimpl.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/internetradio2.0/irpresetplugin/inc/irpresetimpl.h Wed Aug 18 09:40:26 2010 +0300 @@ -0,0 +1,557 @@ +/* +* Copyright (c) 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: +* +*/ + + +#ifndef C_IRPRESETIMPL_H +#define C_IRPRESETIMPL_H + +#include "irpreset.h" + +class CIRChannelServerUrlImpl; + + +/** + * This class provides the basic structure to hold the preset + *information that is saved in the favourites database + *It also provides the basic getter and setter functions to + *manage the preset information. + *for url selection for a particular bitrate some functionality + *has been provided + *copy constructor and assignment operator has been provided to + *override the default ones + * + * @code + *CIRPresetImpl* preset = CIRPresetImpl::NewL() + *preset->SetXXX(); + *preset->GetXXX() + * *preset1 = *preset2 + * @endcode + * + */ + +class CIRPresetImpl : public CIRPreset + { +public: + + /** + * CIRPresetImpl::NewL() + * Static function + * standard two phased constructor + * @param void + * @return *CIRPresetImpl + */ + static CIRPresetImpl* NewL( TAny* aParams ); + + /** + * CIRPresetImpl::NewLC() + * Static function + * standard two phased constructor + * @param void + * @return *CIRPresetImpl + */ + static CIRPresetImpl* NewLC( TAny* aParams ); + + /** + * CIRPresetImpl::~CIRIsdsPreset() + * standard C++ destructor + * @param NA + * @return NA + */ + ~CIRPresetImpl(); + + /** + * CIRPresetImpl::SetId() + * sets id + * @param TDesC,supplied by xml parser + */ + void SetId( const TDesC &aId ); + + /** + * CIRPresetImpl::SetId() + * sets id + * @param TInt,provided to manipulate the id number + */ + void SetId( TInt aId ); + + /** + * CIRPresetImpl::SetLangInfoL() + * sets the preset language name and the code + * @param TdesC,TdesC language id and name to be set + */ + void SetLangInfoL( const TDesC &aLangId, + const TDesC& aLangName ); + + /** + * CIRPresetImpl::SetCountryInfoL() + * sets the preset country name and the code + * @param TdesC,TdesC country id and country name to be set + */ + void SetCountryInfoL( const TDesC &aCountryId, + const TDesC& aCountryName ); + + /** + * CIRPresetImpl::SetLangCodeL() + * sets the language code + * @param TdesC language code + */ + void SetLangCodeL( const TDesC &aLangId ); + + /** + * CIRPresetImpl::SetLangL() + * sets the language + * @param TdesC language + */ + void SetLangL( const TDesC& aLangName ); + + /** + * CIRPresetImpl::SetCountryCodeL() + * sets the language code + * @param TdesC language code + */ + void SetCountryCodeL( const TDesC &aCountryId ); + + /** + * CIRPresetImpl::SetCountryNameL() + * sets the language name + * @param TdesC language name + */ + void SetCountryNameL( const TDesC& aCountryName ); + + /** + * CIRPresetImpl::SetLastModifiedTimeL() + * gets the channel url at a particular index + * @param TDesC,time stamp + */ + void SetLastModifiedTimeL( const TDesC &aLastModified ); + + /** + * CIRPresetImpl::SetGenreInfoL() + * sets the genreid and name + * @param aGenreId + * @param aGenreName + */ + void SetGenreInfoL( const TDesC& aGenreId, + const TDesC& aGenreName ); + + /** + * CIRPresetImpl::SetImgUrlL() + * sets the image url + * @param aImgUrl + */ + void SetImgUrlL( const TDesC& aImgUrl ); + + /** + * CIRPresetImpl::SetLogoDataL() + * sets the Logo Data + * @param aData + * @param aSize + */ + void SetLogoDataL( const TDesC8& aData ); + + /** + * CIRPresetImpl::SetAdvertisementInUseL() + * sets the advertisementinuse url + * @param aAdvertisementInUse + */ + void SetAdvertisementInUseL( const TDesC& aAdvertisementInUse ); + + /** + * CIRPresetImpl::SetDescriptionL() + * sets the description for the channel + * @param aDescription + */ + void SetDescriptionL( const TDesC& aDescription ); + + /** + * CIRPresetImpl::SetAdvertisementUrlL() + * sets the advertisement url + * @param aAdvertisementUrl + */ + void SetAdvertisementUrlL( const TDesC& aAdvertisementUrl ); + + /** + * CIRPresetImpl::SetUrlCount() + * sets the count of the number of urls + */ + void SetUrlCount(); + + /** + * CIRPresetImpl::SetShortDescL() + * sets the short description + * @param aShortDesc + */ + void SetShortDescL( const TDesC& aShortDesc ); + + /** + * CIRPresetImpl::SetUrlCount() + * sets the count of the number of urls + * @param aCnt ,count + */ + void SetUrlCount( TInt aCnt ); + + /** + * CIRPresetImpl::SetUrlL() + * sets the channel server url + * @param aServerName ,server name + * @param aUrl ,server url + * @param aBitrate .server bitrate + */ + void SetUrlL( const TDesC &aServerName, + const TDesC &aUrl, + const TDesC &aBitrate ); + + /** + * CIRPresetImpl::SetUrlL() + * sets the channel server url + * @param aServerName ,server name + * @param aUrl ,server url + * @param aBitrate ,server bitrate + */ + void SetUrlL( const TDesC &aServerName, + const TDesC &aUrl, + TInt aBitrate ); + + /** + * CIRPresetImpl::SetChannelType() + * sets the channel type + * @param aChannelType userdefined,isds,adhoc + */ + void SetChannelType( TInt aChannelType ); + + /** + * CIRPresetImpl::SetMusicStoreStatusL() + * sets the musicStoreEnabled + * @param aMusicStoreStatus + */ + void SetMusicStoreStatusL( const TDesC& aMusicStoreStatus ); + +//getter functions + /** + * CIRPresetImpl::GetId() + * gets the channel id + * @return TInt + */ + TInt GetId() const; + + /** + * CIRPresetImpl::GetLangId() + * gets the channel channelangid + * @return TDesC + */ + const TDesC& GetLangId() const; + + /** + * CIRPresetImpl::GetLangName() + * gets the channel language name + * @return TDesC + */ + const TDesC& GetLangName() const; + + /** + * CIRPresetImpl::GetCountryId() + * gets the channel countryid + * @return TDesC + */ + const TDesC& GetCountryId() const; + + /** + * CIRPresetImpl::GetCountryName() + * gets the channel country name + * @return TDesC + */ + const TDesC& GetCountryName() const; + + /** + * CIRPresetImpl::GetLastModifiedTime() + * gets the channel last modified time stamp + * @return TDesC + */ + const TDesC& GetLastModifiedTime() const; + + /** + * CIRPresetImpl::GetDescription() + * gets the channel description + * @return TDesC + */ + const TDesC& GetDescription() const; + + /** + * CIRPresetImpl::GetShortDescription() + * gets the channel short description + * @return TDesC + */ + const TDesC& GetShortDescription() const; + + /** + * CIRPresetImpl::GetChannelType() + * gets the channel Type + * @return TInt + */ + TInt GetChannelType() const; + + /** + * CIRPresetImpl::GetGenreId() + * gets the channel genreid + * @return TDesC + */ + const TDesC& GetGenreId() const; + + /** + * CIRPresetImpl::GetGenreName() + * gets the channel genre name + * @return TDesC + */ + const TDesC& GetGenreName() const; + + /** + * CIRPresetImpl::GetAdvertisementUrl() + * gets the channel advertisement url + * @return TDesC + */ + const TDesC& GetAdvertisementUrl() const; + + const TDesC& GetAdvertisementInUse() const; + /** + * CIRPresetImpl::GetImgUrl() + * gets the channel image url + * @return TDesC + */ + const TDesC& GetImgUrl() const; + + /** + * CIRPresetImpl::GetUrlCount() + * gets the channel url count + * @return TDesC + */ + TInt GetUrlCount() const; + + CIRChannelServerUrl& GetUrl(TInt aIndex) const; + /* + *CIRPresetImpl::GetLogoData() + *gets the Logo Data + *@return TDesC8& + */ + const TDesC8& GetLogoData() const; + + /* + * get the channel url at specified position + * + */ + const TDesC& GetChannelUrlAt(TInt aIndex) const; + + /** + * CIRPresetImpl::GetMusicStoreStatus() + * gets the musicStoreEnabled + * @return TDesC& + */ + const TDesC& GetMusicStoreStatus() const; + + /** + * CIRPresetImpl::operator=() + * assignment operator + * @param CIRIsdsPreset& aPreset + * @return CIRIsdsPreset + */ + CIRPresetImpl& operator=( const CIRPresetImpl& aPreset ); + + /** + * CIRPresetImpl::CIRIsdsPresetToCIRPresetImplL() + * used to convert the isdspresets to plugnized presets. + * Does a deep copy for all the member variables + * @param CIRIsdsPreset&,the preset to be copied from + */ + void CIRIsdsPresetToCIRPresetImplL( const CIRIsdsPreset& aIsdsPreset ); + + /** + * CIRPresetImpl::CopyPresetDataL() + * copy data to CIRIsdsPreset + * @param CIRIsdsPreset&,the preset to be copied into + */ + void CopyPresetDataL( CIRIsdsPreset& aIsdsPreset ) const; + + /** + * CIRPresetImpl::GetAvailableBitrates() + * gets the bitrate array + * @return RArray + */ + RArray& GetAvailableBitrates(); + + /* + * Returns the played times of the channel + */ + TInt GetPlayedTimes() const; + + /** + * CIRPresetImpl::SetPlayedTimes() + * Set the played times of the channel + */ + void SetPlayedTimes( TInt aPlayedTimes ); + + /* + * Get Rename status + */ + TBool GetRenamed() const; + + /* + * Set Rename status + */ + void SetRenamed(); + +protected: + + /** + * CIRPresetImpl::CIRIsdsPreset() + * standard C++ constructor + * @param void + * @return NA + */ + CIRPresetImpl(); + + /** + * CIRPresetImpl::ConstructL(TAny* aParams) + * standard second phase constructor(Leaveable) + * @param void + * @return void + */ + void ConstructL( TAny* aParams ); + +//for serialization + /** + * CIRPresetImpl::ExternalizeL() + * serializes the preset data into a stream + * @param aWriteStream + */ + void ExternalizeL( RWriteStream& aWriteStream ) const; + + /** + * CIRPresetImpl::InternalizeL() + * serializes the preset data from a stream to a structure + * @param aReadStream + */ + void InternalizeL( RReadStream& aReadStream ); + +private: + + /** + * no of channel urls + */ + TInt iChannelUrlCount; + + /** + * 0 for user defined 1 for isds type. + */ + TInt iType; + + /** + * isds generated preset id + */ + TInt iPresetId; + + /** + * preset language code + */ + RBuf iLanguageCode; + + /** + * preset language + */ + RBuf iLanguage; + + /** + * preset country of origin code + */ + RBuf iCountryCode; + + /** + * preset country of origin + */ + RBuf iCountry; + + /** + * preset last modified + */ + RBuf iLastModified; + + /** + * not in use + */ + RBuf iAdvertisementUrl; + + /** + * not in use + */ + RBuf iAdvertisementInUse; + + /** + * Logo URL + */ + RBuf iImgUrl; + + /** + * Raw image data for the logo. + * Owned. + */ + RBuf8 iLogoData; + + /** + * channel description + */ + RBuf iDescription; + + /** + * channel short desription + */ + RBuf iShortDesc; + + /** + * channel genre name + */ + RBuf iGenereName; + + /** + * channel genre id + */ + RBuf iGenereId; + + /** + * musicStoreEnabled value + */ + RBuf iMusicStoreStatus; + + /** + * url array + */ + CArrayPtrFlat* iUrlArray; + + /** + * bitrate array + */ + RArray iBitrateArray; + + /** + * iPlayedTimes + */ + TInt iPlayedTimes; + + /** + *if the station is renamed after it's added into favorites + */ + TBool iRenamed; + + }; + +#endif // C_IRPRESETIMPL_H