--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/internetradio2.0/datastructuresinc/irisdspreset.h Mon Apr 19 14:01:53 2010 +0300
@@ -0,0 +1,595 @@
+/*
+* Copyright (c) 2006-2008 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: iSDS preset structure.
+*
+*/
+
+
+#ifndef IRISDSPRESET_H
+#define IRISDSPRESET_H
+
+#include <badesca.h>
+
+class CIRChannelServerUrl;
+class RReadStream;
+class RWriteStream;
+
+/**
+ * This class provides the basic structure to hold the preset
+ *information that come from the isds server.
+ *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
+ *CIRIsdsPreset* preset = CIRIsdsPreset::NewL()
+ *preset->SetXXX();
+ *preset->GetXXX()
+ * *preset1 = *preset2
+ * @endcode
+ *
+ */
+
+class CIRIsdsPreset:public CBase
+ {
+
+ public:
+
+ /**
+ *CIRIsdsPreset::NewL()
+ *Static function
+ *standard two phased constructor
+ *@return *CIRIsdsPreset
+ */
+ IMPORT_C static CIRIsdsPreset* NewL();
+
+
+ /**
+ *CIRIsdsPreset::NewLC()
+ *Static function
+ *standard two phased constructor
+ *@return *CIRIsdsPreset
+ */
+ IMPORT_C static CIRIsdsPreset* NewLC();
+
+
+ /**
+ *CIRIsdsPreset::~CIRIsdsPreset()
+ *standard C++ destructor
+ */
+ ~CIRIsdsPreset();
+
+
+ /**
+ *CIRIsdsPreset::CIRIsdsPreset()
+ *standard C++ constructor
+ */
+ IMPORT_C CIRIsdsPreset();
+
+
+ protected:
+
+ /**
+ *CIRIsdsPreset::ConstructL()
+ *standard second phase constructor(Leaveable)
+ */
+ void ConstructL();
+
+
+ public:
+
+
+ //setter functions
+
+ /**
+ *CIRIsdsPreset::SetId()
+ *sets id
+ *@param TDesC,supplied by xml parser
+ */
+ IMPORT_C void SetId(const TDesC &aId);
+
+ /**
+ *CIRIsdsPreset::SetId()
+ *sets id
+ *@param TInt,provided to manipulate the id number
+ */
+ IMPORT_C void SetId(TInt aId);
+
+ /**
+ *CIRIsdsPreset::SetName()
+ *sets the preset name
+ *@param TdesC aname,the name to be set
+ */
+ IMPORT_C void SetName(const TDesC &aName);
+
+ /**
+ *CIRIsdsPreset::SetLangInfo()
+ *sets the preset language name and the code
+ *@param TdesC,TdesC language id and name to be set
+ */
+ IMPORT_C void SetLangInfo(const TDesC &aLangId,const TDesC& aLangName);
+
+ /**
+ *CIRIsdsPreset::SetCountryInfo()
+ *sets the preset country name and the code
+ *@param TdesC,TdesC country id and country name to be set
+ */
+ IMPORT_C void SetCountryInfo(const TDesC& aCountryId,
+ const TDesC& aCountryName);
+
+ /**
+ *CIRIsdsPreset::SetLangCode()
+ *sets the language code
+ *@param TdesC language code
+ */
+ IMPORT_C void SetLangCode(const TDesC &aLangId);
+
+ /**
+ *CIRIsdsPreset::SetLang()
+ *sets the language
+ *@param TdesC language
+ */
+ IMPORT_C void SetLang(const TDesC& aLangName);
+
+ /**
+ *CIRIsdsPreset::SetCountryCode()
+ *sets the language code
+ *@param TdesC language code
+ */
+ IMPORT_C void SetCountryCode(const TDesC &aCountryId);
+
+ /**
+ *CIRIsdsPreset::SetCountryName()
+ *sets the language name
+ *@param TdesC language name
+ */
+ IMPORT_C void SetCountryName(const TDesC& aCountryName);
+
+ /**
+ *CIRIsdsPreset::SetLastModifiedTime()
+ *sets the lastmodified time stamp
+ *@param TdesC lastmodified time stamp
+ */
+ IMPORT_C void SetLastModifiedTime(const TDesC &aLastModified);
+
+ /**
+ *CIRIsdsPreset::SetGenreInfo()
+ *sets the genreid and name
+ *@param aGenreId
+ *@param aGenreName
+ */
+ IMPORT_C void SetGenreInfo(const TDesC& aGenreId,const TDesC& aGenreName);
+
+ /**
+ *CIRIsdsPreset::SetImgUrl()
+ *sets the image url
+ *@param aImgUrl
+ */
+ IMPORT_C void SetImgUrl(const TDesC& aImgUrl);
+
+ /**
+ *CIRIsdsPreset::SetLogoDataL()
+ *sets the Logo Data
+ *@param aData
+ *@param aSize
+ */
+ IMPORT_C void SetLogoData( const TDesC8& aData );
+
+ /**
+ *CIRIsdsPreset::SetAdvertisementInUse()
+ *sets the advertisementinuse url
+ *@param aAdvertisementInUse
+ */
+ IMPORT_C void SetAdvertisementInUse(const TDesC& aAdvertisementInUse);
+
+ /**
+ *CIRIsdsPreset::SetDescription()
+ *sets the description for the channel
+ *@param aDescription
+ */
+ IMPORT_C void SetDescription(const TDesC& aDescription);
+
+ /**
+ *CIRIsdsPreset::SetAdvertisementUrl()
+ *sets the advertisement url
+ *@param aAdvertisementUrl
+ */
+ IMPORT_C void SetAdvertisementUrl(const TDesC& aAdvertisementUrl);
+
+ /**
+ *CIRIsdsPreset::SetUrlCount()
+ *sets the count of the number of urls
+ */
+ IMPORT_C void SetUrlCount();
+
+ /**
+ *CIRIsdsPreset::SetShortDesc()
+ *sets the short description
+ *@param aShortDesc
+ */
+ IMPORT_C void SetShortDesc(const TDesC& aShortDesc);
+
+ /**
+ * Sets the genre name
+ * @param aGenreName
+ */
+ IMPORT_C void SetGenreName(const TDesC& aGenreName);
+
+ /**
+ * Sets the genre id
+ * @param aGenreId
+ */
+ IMPORT_C void SetGenreId(const TDesC& aGenreId);
+
+ /**
+ *CIRIsdsPreset::SetUrlCount()
+ *sets the count of the number of urls
+ *@param aCnt ,count
+ */
+ IMPORT_C void SetUrlCount(TInt aCnt);
+
+ /**
+ *CIRIsdsPreset::SetIndex()
+ *sets the index for the preset.used only for presets in the fav list
+ *@param aInt
+ */
+ IMPORT_C void SetIndex(TInt aInt);
+
+ /**
+ *CIRIsdsPreset::SetUrlL()
+ *sets the channel server url
+ *@param aServerName ,server name
+ *@param aUrl ,server url
+ *@param aBitrate .server bitrate
+ */
+ IMPORT_C void SetUrlL(const TDesC &aServerName,const TDesC &aUrl,const TDesC &aBitrate);
+
+ /**
+ *CIRIsdsPreset::SetUrlL()
+ *sets the channel server url
+ *@param aServerName ,server name
+ *@param aUrl ,server url
+ *@param aBitrate ,server bitrate
+ */
+ IMPORT_C void SetUrlL(const TDesC &aServerName,const TDesC &aUrl,TInt aBitrate);
+
+ /**
+ *CIRIsdsPreset::SetChannelType()
+ *sets the channel type
+ *@param aChannelType userdefined,isds,adhoc
+ */
+ IMPORT_C void SetChannelType(TInt aChannelType);
+
+ /**
+ *CIRIsdsPreset::SetUrlL()
+ *sets the url for a channel server
+ *@param aUrl
+ */
+ IMPORT_C void SetUrlL(const TDesC &aUrl);
+
+
+ /**
+ *CIRIsdsPreset::SetMusicStoreStatus()
+ *sets the musicStoreEnabled
+ *@param aMusicStoreStatus
+ */
+ IMPORT_C void SetMusicStoreStatus(const TDesC& aMusicStoreStatus);
+
+
+
+
+
+ //for serialization
+ /**
+ *CIRIsdsPreset::ExternalizeL()
+ *serializes the preset data into a stream
+ *@param aWriteStream
+ */
+ IMPORT_C void ExternalizeL(RWriteStream& aWriteStream);
+
+ /**
+ *CIRIsdsPreset::InternalizeL()
+ *serializes the preset data from a stream to a structure
+ *@param aReadStream
+ */
+ IMPORT_C void InternalizeL(RReadStream& aReadStream);
+
+ //getter functions
+ /**
+ *CIRIsdsPreset::GetId()
+ *gets the channel id
+ *@return TInt
+ */
+ IMPORT_C TInt GetId() const;
+
+ /**
+ *CIRIsdsPreset::GetName()
+ *gets the channel name
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetName() const;
+
+ /**
+ *CIRIsdsPreset::GetLangId()
+ *gets the channel channelid
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetLangId() const;
+
+ /**
+ *CIRIsdsPreset::GetLangName()
+ *gets the channel language name
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetLangName() const;
+
+ /**
+ *CIRIsdsPreset::GetCountryId()
+ *gets the channel countryid
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetCountryId() const;
+
+ /**
+ *CIRIsdsPreset::GetCountryName()
+ *gets the channel country name
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetCountryName() const;
+
+ /**
+ *CIRIsdsPreset::GetLastModifiedTime()
+ *gets the channel last modified time stamp
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetLastModifiedTime() const;
+
+ /**
+ *CIRIsdsPreset::GetDescription()
+ *gets the channel description
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetDescription() const;
+
+ /**
+ *CIRIsdsPreset::GetShortDescription()
+ *gets the channel short description
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetShortDescription() const;
+
+ /**
+ *CIRIsdsPreset::GetChannelType()
+ *gets the channel Type
+ *@return TInt
+ */
+ IMPORT_C TInt GetChannelType() const;
+
+ /**
+ *CIRIsdsPreset::GetIndex()
+ *gets the channel index
+ *@return TInt
+ */
+ IMPORT_C TInt GetIndex() const;
+
+ /**
+ *CIRIsdsPreset::GetGenreId()
+ *gets the channel genreid
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetGenreId() const;
+
+ /**
+ *CIRIsdsPreset::GetGenreName()
+ *gets the channel genre name
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetGenreName() const;
+
+ /**
+ *CIRIsdsPreset::GetAdvertisementUrl()
+ *gets the channel advertisement url
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetAdvertisementUrl() const;
+
+ /**
+ * Gets the channel advertisement in use
+ * @return TDesC
+ */
+ IMPORT_C const TDesC& GetAdvertisementInUse() const;
+
+ /**
+ * Gets the image url
+ * @return TDesC
+ */
+ IMPORT_C const TDesC& GetImgUrl() const;
+
+ /**
+ *CIRIsdsPreset::GetUrlCount()
+ *gets the channel url count
+ *@return TDesC
+ */
+ IMPORT_C TInt GetUrlCount() const;
+
+ /*
+ *CIRIsdsPreset::GetLogoData()
+ *gets the Logo Data
+ *@return TDesC&
+ */
+ IMPORT_C const TDesC8& GetLogoData() const;
+
+ /*
+ *CIRIsdsPreset::GetLogoSize()
+ *gets the Logo Size
+ *@return TSize&
+ */
+ IMPORT_C const TSize& GetLogoSize() const;
+
+ /**
+ *CIRIsdsPreset::SGetUrl()
+ *gets the channel url from zeroth position
+ *@return TInt
+ */
+ IMPORT_C TInt GetUrl() const;
+
+ /**
+ *CIRIsdsPreset::GetMusicStoreStatus()
+ *gets the musicStoreEnabled
+ *@return TDesC&
+ */
+ IMPORT_C const TDesC& GetMusicStoreStatus() const;
+
+
+ /**
+ *CIRIsdsPreset::SetLastModifiedTime()
+ *gets the channel url at a particular index
+ *@param aindex
+ *@return CIRChannelServerUrl
+ */
+ IMPORT_C CIRChannelServerUrl& GetUrl(TInt aInt);
+
+ /**
+ *CIRIsdsPreset::operator=()
+ *assignment operator
+ *@param CIRIsdsPreset& aPreset
+ *@return CIRIsdsPreset
+ */
+ IMPORT_C CIRIsdsPreset& operator=(const CIRIsdsPreset& aPreset);
+
+ /**
+ *CIRIsdsPreset::GetAvailableBitrates()
+ *gets the bitrate array
+ *@return RArray<TInt>
+ */
+ IMPORT_C TInt GetAvailableBitrates(RArray<TInt>& aBitrates) const;
+
+ /**
+ *CIRIsdsPreset::GetUrlForBitrateL()
+ *gets the array of bitrates for a particular bitrate
+ *@param aBitrate
+ *@return CDesCArrayFlat
+ */
+ IMPORT_C CDesCArrayFlat* GetUrlForBitrateL(TInt aBitrate);
+
+ /**
+ *CIRIsdsPreset::GetExactUrlForBitrateL()
+ *Urls exactly matching a given bitrate for display purpose
+ *@param aBitrate
+ *@return CDesCArrayFlat
+ */
+ IMPORT_C CDesCArrayFlat* GetExactUrlForBitrateL(TInt aBitrate);
+
+ /**
+ *CIRIsdsPreset::UniqId()
+ *gets the unique id
+ *@return TUint32
+ */
+ IMPORT_C TUint32 UniqId() const;
+
+ /**
+ *CIRIsdsPreset::SetUniqId()
+ *sets the unique id for the preset
+ *@param aId
+ */
+ IMPORT_C void SetUniqId( TUint32 aId);
+
+ /**
+ *CIRIsdsPreset::GetChannelUrlAtL()
+ *sets the lastmodified time stamp
+ *returns the url at the urlarray by index
+ *@param aIndex
+ *@return TDesC
+ */
+ IMPORT_C const TDesC& GetChannelUrlAtL(TInt aIndex) const;
+ /**
+ *CIRIsdsPreset::GetChannelUrlAtL()
+ *sets the lastmodified time stamp
+ *returns the url at the urlarray by index
+ *@param aIndex
+ *@return TDesC
+ */
+ IMPORT_C TInt GetChannelBitrateL(TInt aIndex);
+
+private:
+
+ /**
+ *CIRIsdsPreset::SortInOrderL()
+ *sorts the urls in bitrate order desc.
+ */
+ void SortInOrderL();
+
+public:
+
+ //url array
+ CArrayPtrFlat<CIRChannelServerUrl>*iUrlArray;
+
+ /**type of presets(source)*/
+ enum TChannelType
+ {
+ EUserDefined,/**added by user*/
+ EIsdsPreset,/**fetched from isds*/
+ EAdhoc /**not in use currently*/
+ };
+
+private:
+ //unique id generated for the preset saved at favourite
+ TUint32 iUniqId;
+ //no of channel urls
+ TInt iChannelUrlCount;
+ //0 for user defined 1 for isds type.
+ TInt iType;
+ //index in the preset table
+ TInt iIndex;
+ //isds generated preset id
+ TInt iPresetId;
+ //preset name
+ RBuf iName;
+ //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;
+ //musicStoreEnabled value
+ RBuf iMusicStoreStatus;
+ //not in use
+ RBuf iAdvertisementUrl;
+ //not in use
+ RBuf iAdvertisementInUse;
+ //not in use
+ RBuf iImgUrl;
+ //Logo Data
+ RBuf8 iLogoData;
+ //channel description
+ RBuf iDescription;
+ //channel short desription
+ RBuf iShortDesc;
+ //channel genre name
+ RBuf iGenereName;
+ //channel genre id
+ RBuf iGenereId;
+ //channel bitrate
+ TInt iBitrate;
+
+ };
+
+#endif //IRISDSPRESET_H