diff -r 608f67c22514 -r 896e9dbc5f19 internetradio2.0/ircommon/src/irisdspreset.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/internetradio2.0/ircommon/src/irisdspreset.cpp Wed Aug 18 09:40:26 2010 +0300 @@ -0,0 +1,1157 @@ +/* +* 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. + * + */ + +#include + +#include "irchannelserverurl.h" +#include "irdebug.h" +#include "irisdspreset.h" + +const TInt KUrlArrayMaxLength = 128; +const TInt KUrlForBitrateMaxLength = 128; + +_LIT( KComma, "," ); + +// ======== LOCAL FUNCTIONS ======== + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::NewL() +// Static function +// standard two phased constructor +// --------------------------------------------------------------------------- +// +EXPORT_C CIRIsdsPreset* CIRIsdsPreset::NewL() + { + IRLOG_DEBUG( "CIRIsdsPreset::NewL - Entering" ); + CIRIsdsPreset* self = CIRIsdsPreset::NewLC(); + CleanupStack::Pop( self ); + IRLOG_DEBUG( "CIRIsdsPreset::NewL - Exiting." ); + return self; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::NewLC() +// Static function +// standard two phased constructor +// --------------------------------------------------------------------------- +// +EXPORT_C CIRIsdsPreset* CIRIsdsPreset::NewLC() + { + IRLOG_DEBUG( "CIRIsdsPreset::NewLC - Entering" ); + CIRIsdsPreset* self = new( ELeave )CIRIsdsPreset; + CleanupStack::PushL( self ); + self->ConstructL(); + IRLOG_DEBUG( "CIRIsdsPreset::NewLC - Exiting." ); + return self; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::~CIRIsdsPreset() +// standard C++ destructor +// --------------------------------------------------------------------------- +// +CIRIsdsPreset::~CIRIsdsPreset() + { + IRLOG_DEBUG( "CIRIsdsPreset::~CIRIsdsPreset - Entering" ); + iName.Close(); + iLanguageCode.Close(); + iLanguage.Close(); + iCountryCode.Close(); + iCountry.Close(); + iLastModified.Close(); + iMusicStoreStatus.Close(); + iAdvertisementUrl.Close(); + iAdvertisementInUse.Close(); + iImgUrl.Close(); + iLogoData.Close(); + iDescription.Close(); + iShortDesc.Close(); + iGenereName.Close(); + iGenereId.Close(); + + if ( iUrlArray ) + { + iUrlArray->ResetAndDestroy(); + } + + delete iUrlArray; + IRLOG_DEBUG( "CIRIsdsPreset::~CIRIsdsPreset - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::CIRIsdsPreset() +// default C++ constructor +// standard two phased constructor +// --------------------------------------------------------------------------- +// +CIRIsdsPreset::CIRIsdsPreset() + { + IRLOG_DEBUG( "CIRIsdsPreset::CIRIsdsPreset" ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::ConstructL() +// standard second phase constructor +// --------------------------------------------------------------------------- +// +void CIRIsdsPreset::ConstructL() + { + IRLOG_DEBUG( "CIRIsdsPreset::ConstructL - Entering" ); + iUrlArray = new( ELeave )CArrayPtrFlat( + KUrlArrayMaxLength ); + IRLOG_DEBUG( "CIRIsdsPreset::ConstructL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetId() +// Function to set iPresetId from a TDesC +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetId( const TDesC& aId ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetId - Entering" ); + TLex conv( aId ); + conv.Val( iPresetId ); + IRLOG_DEBUG( "CIRIsdsPreset::SetId - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetId() +// Function to set iPresetId +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetId( TInt aId ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetId(TInt) - Entering" ); + iPresetId = aId; + IRLOG_DEBUG( "CIRIsdsPreset::SetId(TInt) - Exiting." ); + } + + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetNameL() +//Function to set iName from a TDesC +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetNameL( const TDesC& aName ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetNameL - Entering" ); + iName.Close(); + iName.CreateL( aName ); + IRLOG_DEBUG( "CIRIsdsPreset::SetNameL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetLangInfoL() +//Function to set iLanguageCode, iLanguage +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetLangInfoL( const TDesC& aLangId, + const TDesC& aLangName ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetLangInfoL - Entering" ); + SetLangCodeL( aLangId ); + SetLangL( aLangName ); + IRLOG_DEBUG( "CIRIsdsPreset::SetLangInfoL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetLangCodeL() +// Function to set iLanguageCode from a TDesC +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetLangCodeL( const TDesC& aLangId ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetLangCodeL - Entering" ); + iLanguageCode.Close(); + iLanguageCode.CreateL( aLangId ); + IRLOG_DEBUG( "CIRIsdsPreset::SetLangCodeL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetLangL() +// Function to set iLanguage from a TDesC +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetLangL( const TDesC& aLangName ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetLangL - Entering" ); + iLanguage.Close(); + iLanguage.CreateL( aLangName ); + IRLOG_DEBUG( "CIRIsdsPreset::SetLangL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetCountryCodeL() +// Function to set iCountryCode from a TDesC +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetCountryCodeL( const TDesC& aCountryId ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetCountryCodeL - Entering" ); + iCountryCode.Close(); + iCountryCode.CreateL( aCountryId ); + IRLOG_DEBUG( "CIRIsdsPreset::SetCountryCodeL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetCountryNameL() +//Function to set iCountry from a TDesC +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetCountryNameL( const TDesC& aCountryName ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetCountryNameL - Entering" ); + iCountry.Close(); + iCountry.CreateL( aCountryName ); + IRLOG_DEBUG( "CIRIsdsPreset::SetCountryNameL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetLangInfoL() +// Function to set iCountryCode, iCountry +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetCountryInfoL( const TDesC& aCountryId, + const TDesC& aCountryName ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetCountryInfoL - Entering" ); + SetCountryCodeL( aCountryId ); + SetCountryNameL( aCountryName ); + IRLOG_DEBUG( "CIRIsdsPreset::SetCountryInfoL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetLastModifiedTimeL() +// Function to set iLastModified +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetLastModifiedTimeL( const TDesC& aLastModified ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetLastModifiedTimeL - Entering" ); + iLastModified.Close(); + iLastModified.CreateL( aLastModified ); + IRLOG_DEBUG( "CIRIsdsPreset::SetLastModifiedTimeL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetGenreInfoL() +//Function to set iGenereName, iGenereId +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetGenreInfoL( const TDesC& aGenreId, + const TDesC& aGenreName ) + { + IRLOG_DEBUG( "CIRIsdsPresetL::SetGenreInfoL - Entering" ); + + if ( iGenereName.Length() ) + { + RBuf newBuf; + newBuf.CreateL( + iGenereName.Length() + aGenreName.Length() + KComma().Length() ); + newBuf.Append( iGenereName ); + newBuf.Append( KComma ); + newBuf.Append( aGenreName ); + iGenereName.Close(); + iGenereName.CreateL( newBuf ); + newBuf.Close(); + } + + if ( iGenereId.Length() ) + { + RBuf newBuf; + newBuf.CreateL( + iGenereId.Length() + aGenreId.Length() + KComma().Length() ); + newBuf.Append( iGenereId ); + newBuf.Append( KComma ); + newBuf.Append( aGenreId ); + iGenereId.Close(); + iGenereId.CreateL( newBuf ); + newBuf.Close(); + } + + if ( !iGenereName.Length() ) + { + iGenereName.Close(); + iGenereName.CreateL( aGenreName ); + } + + if ( !iGenereId.Length() ) + { + iGenereId.Close(); + iGenereId.CreateL( aGenreId ); + } + + IRLOG_DEBUG( "CIRIsdsPreset::SetGenreInfoL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetImgUrlL() +// Function to set iImgUrl +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetImgUrlL( const TDesC& aImgUrl ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetImgUrlL - Entering" ); + iImgUrl.Close(); + iImgUrl.CreateL( aImgUrl ); + IRLOG_DEBUG( "CIRIsdsPreset::SetImgUrlL - Exiting." ); + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetLogoDataL() +// Function to set LogoData +// --------------------------------------------------------------------------- +// + +EXPORT_C void CIRIsdsPreset::SetLogoDataL( const TDesC8& aData ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetLogoDataL - Entering" ); + + iLogoData.Close(); + iLogoData.CreateL( aData ); + + IRLOG_DEBUG( "CIRIsdsPreset::SetLogoDataL - Exiting." ); + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetAdvertisementInUseL() +// Function to set iAdvertisementInUse +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetAdvertisementInUseL( + const TDesC& aAdvertisementInUse ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetAdvertisementInUseL - Entering" ); + iAdvertisementInUse.Close(); + iAdvertisementInUse.CreateL( aAdvertisementInUse ); + IRLOG_DEBUG( "CIRIsdsPreset::SetAdvertisementInUseL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetDescriptionL() +// Function to set iDescription +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset:: SetDescriptionL( const TDesC& aDescription ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetDescriptionL - Entering" ); + iDescription.Close(); + iDescription.CreateL( aDescription ); + IRLOG_DEBUG( "CIRIsdsPreset::SetDescriptionL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetAdvertisementUrlL() +// Function to set iAdvertisementUrl +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetAdvertisementUrlL( + const TDesC& aAdvertisementUrl ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetAdvertisementUrlL - Entering" ); + iAdvertisementUrl.Close(); + iAdvertisementUrl.CreateL( aAdvertisementUrl ); + IRLOG_DEBUG( "CIRIsdsPreset::SetAdvertisementUrlL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetUrlCount() +//Function to set iChannelUrlCount +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetUrlCount() + { + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlCount - Entering" ); + iChannelUrlCount = iUrlArray->Count(); + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlCount - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetShortDescL() +// Function to set iShortDesc +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetShortDescL( const TDesC& aShortDesc ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetShortDescL - Entering" ); + iShortDesc.Close(); + iShortDesc.CreateL( aShortDesc ); + IRLOG_DEBUG( "CIRIsdsPreset::SetShortDescL - Exiting." ); + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetGenreNameL() +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetGenreNameL( const TDesC& aGenreName ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetGenreNameL - Entering" ); + iGenereName.Close(); + iGenereName.CreateL( aGenreName ); + IRLOG_DEBUG( "CIRIsdsPreset::SetGenreNameL - Exiting" ); + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetGenreIdL() +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetGenreIdL( const TDesC& aGenreId ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetGenreIdL - Entering" ); + iGenereId.Close(); + iGenereId.CreateL( aGenreId ); + IRLOG_DEBUG( "CIRIsdsPreset::SetGenreIdL - Exiting" ); + } + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetUrlCount() +//Function to set iChannelUrlCount +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetUrlCount( TInt aCnt ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlCount - Entering" ); + iChannelUrlCount = aCnt; + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlCount - Exiting." ); + } + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetUrl() +//Function to set Url parameter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetUrlL( const TDesC& aServerName, + const TDesC& aUrl, const TDesC& aBitrate ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlL(..., const TDesC) - Entering" ); + CIRChannelServerUrl * hold = CIRChannelServerUrl::NewL(); + hold->SetServerName( aServerName ); + hold->SetServerUrl( aUrl ); + TLex conv( aBitrate ); + TInt conVal = 0; + conv.Val( conVal ); + //if a negative value comes,set the bitrate to 0,so that it is accessable + //to all the setting combination + if ( conVal < 0) + { + conVal = 0; + } + + hold->SetBitRate( conVal ); + iUrlArray->AppendL( hold ); + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlL(..., const TDesC) - Exiting." ); + } + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetUrl() +//Function to set Url parameter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetUrlL( const TDesC& aServerName, + const TDesC& aUrl, TInt aBitrate ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlL(..., TInt) - Entering" ); + CIRChannelServerUrl * hold = CIRChannelServerUrl::NewL(); + hold->SetServerName( aServerName ); + hold->SetServerUrl( aUrl ); + + //if a negative value comes,set the bitrate to 0,so that it is accessable + //to all the setting combination + if ( aBitrate < 0) + { + aBitrate = 0; + } + + hold->SetBitRate( aBitrate ); + iUrlArray->AppendL( hold ); + IRLOG_DEBUG( "CIRIsdsPreset::SetUrlL(..., TInt) - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::SetChannelType() +// Function to set iType +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetChannelType( TInt aType ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetChannelType - Entering" ); + + if ( aType != EUserDefined && aType != EIsdsPreset && aType != EAdhoc ) + { + aType = EUserDefined; + } + + iType = aType; + IRLOG_DEBUG( "CIRIsdsPreset::SetChannelType - Exiting." ); + } + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::SetMusicStoreStatusL() +//Function to set iMusicStoreStatus parameter +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::SetMusicStoreStatusL( const TDesC& aMusicStoreStatus ) + { + IRLOG_DEBUG( "CIRIsdsPreset::SetMusicStoreStatusL - Entering" ); + iMusicStoreStatus.Close(); + iMusicStoreStatus.CreateL( aMusicStoreStatus ); + IRLOG_DEBUG( "CIRIsdsPreset::SetMusicStoreStatusL - Exiting" ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::ExternalizeL() +// externalizes the data +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::ExternalizeL( RWriteStream& aWriteStream ) + { + IRLOG_DEBUG( "CIRIsdsPreset::ExternalizeL - Entering" ); +//! externalize TInts s + aWriteStream.WriteInt32L(iPresetId); + aWriteStream.WriteInt32L(iType); + aWriteStream.WriteInt32L(iChannelUrlCount); + + // Externalize RBufs + aWriteStream << iLanguageCode; + aWriteStream << iLanguage; + aWriteStream << iCountryCode; + aWriteStream << iCountry; + aWriteStream << iGenereName; + aWriteStream << iGenereId; + aWriteStream << iName; + aWriteStream << iLastModified; + aWriteStream << iAdvertisementUrl; + aWriteStream << iAdvertisementInUse; + aWriteStream << iImgUrl; + aWriteStream << iDescription; + aWriteStream << iShortDesc; + aWriteStream << iMusicStoreStatus; + aWriteStream << iLogoData; + + for ( TInt cnt=0; cnt < iChannelUrlCount; ++cnt ) + { + GetUrl( cnt ).ExternalizeL( aWriteStream ); + } + + IRLOG_DEBUG( "CIRIsdsPreset::ExternalizeL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::InternalizeL() +// internalizes the data +// --------------------------------------------------------------------------- +// +EXPORT_C void CIRIsdsPreset::InternalizeL( RReadStream& aReadStream ) + { + IRLOG_DEBUG( "CIRIsdsPreset::InternalizeL - Entering" ); + //! Internalize TInts s + iPresetId=aReadStream.ReadInt32L(); + iType=aReadStream.ReadInt32L(); + iChannelUrlCount=aReadStream.ReadInt32L(); + + // Internalize RBufs + iLanguageCode.Close(); + iLanguageCode.CreateL( aReadStream, KMaxTInt ); + + iLanguage.Close(); + iLanguage.CreateL( aReadStream, KMaxTInt ); + + iCountryCode.Close(); + iCountryCode.CreateL( aReadStream, KMaxTInt ); + + iCountry.Close(); + iCountry.CreateL( aReadStream, KMaxTInt ); + + iGenereName.Close(); + iGenereName.CreateL( aReadStream, KMaxTInt ); + + iGenereId.Close(); + iGenereId.CreateL( aReadStream, KMaxTInt ); + + iName.Close(); + iName.CreateL( aReadStream, KMaxTInt ); + + iLastModified.Close(); + iLastModified.CreateL( aReadStream, KMaxTInt ); + + iAdvertisementUrl.Close(); + iAdvertisementUrl.CreateL( aReadStream, KMaxTInt ); + + iAdvertisementInUse.Close(); + iAdvertisementInUse.CreateL( aReadStream, KMaxTInt ); + + iImgUrl.Close(); + iImgUrl.CreateL( aReadStream, KMaxTInt ); + + iDescription.Close(); + iDescription.CreateL( aReadStream, KMaxTInt ); + + iShortDesc.Close(); + iShortDesc.CreateL( aReadStream, KMaxTInt ); + + iMusicStoreStatus.Close(); + iMusicStoreStatus.CreateL( aReadStream, KMaxTInt ); + + + iUrlArray->ResetAndDestroy(); + + iLogoData.Close(); + iLogoData.CreateL(aReadStream, KMaxTInt); + + CIRChannelServerUrl* url = NULL; + for ( TInt cnt = 0; cnt < iChannelUrlCount; ++cnt ) + { + url = CIRChannelServerUrl::NewLC(); + url->InternalizeL( aReadStream ); + iUrlArray->AppendL( url ); + CleanupStack::Pop( url ); + } + + IRLOG_DEBUG( "CIRIsdsPreset::InternalizeL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetId() +// Function to get iPresetId +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIRIsdsPreset::GetId() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetId" ); + return iPresetId; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetId() +// Function to get iName +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetName() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetName" ); + return iName; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetLangId() +// Function to get iLanguageCode +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetLangId() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetLangId" ); + return iLanguageCode; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetLangName() +// Function to get iLanguage +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetLangName() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetLangName" ); + return iLanguage; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetCountryId() +// Function to get iCountryCode +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetCountryId() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetCountryId" ); + return iCountryCode; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetCountryName() +// Function to get iCountry +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetCountryName() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetCountryName" ); + return iCountry; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetLastModifiedTime() +// Function to get iLastModified +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetLastModifiedTime() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetLastModifiedTime" ); + return iLastModified; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetDescription() +// Function to get iDescription +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetDescription() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetDescription" ); + return iDescription; + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetShortDescription() +// Function to get iDescription +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetShortDescription() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetShortDescription" ); + return iShortDesc; + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetChannelType() +// Function to get iType +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIRIsdsPreset::GetChannelType() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetChannelType" ); + return iType; + } + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::GetGenreId() +//Function to get iGenereId +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetGenreId() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetGenreId" ); + return iGenereId; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetGenreName() +// Function to get iGenereName +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetGenreName() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetGenreName" ); + return iGenereName; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetAdvertisementUrl() +// Function to get iAdvertisementUrl +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetAdvertisementUrl() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetAdvertisementUrl" ); + return iAdvertisementUrl; + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetAdvertisementInUse() +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetAdvertisementInUse() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetAdvertisementInUse" ); + return iAdvertisementInUse; + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetImgUrl() +// Function to get iImgUrl +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetImgUrl() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetImgUrl" ); + return iImgUrl; + } + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetUrlCount() +// Function to get iChannelUrlCount +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIRIsdsPreset::GetUrlCount() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetUrlCount" ); + return iChannelUrlCount; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetUrl() +// Function to get iLanguageCode +// --------------------------------------------------------------------------- +// +EXPORT_C CIRChannelServerUrl& CIRIsdsPreset::GetUrl( TInt aInt ) + { + IRLOG_DEBUG( "CIRIsdsPreset::GetUrl" ); + ASSERT( aInt >= 0 && aInt < iUrlArray->Count() ); + return ( ( *iUrlArray->At( aInt ) ) ); + } + + +EXPORT_C const TDesC& CIRIsdsPreset::GetMusicStoreStatus() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetMusicStoreStatus" ); + return iMusicStoreStatus; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetLogoData() +// Function to get LogoData +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC8& CIRIsdsPreset::GetLogoData() const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetLogoData" ); + return iLogoData; + } + + +// --------------------------------------------------------------------------- +//CIRIsdsPreset::=() +//standard C++ copy constructor(deep copy) +// --------------------------------------------------------------------------- +// +EXPORT_C CIRIsdsPreset& CIRIsdsPreset::operator=( const CIRIsdsPreset& aPreset ) + { + IRLOG_DEBUG( "CIRIsdsPreset::operator= - Entering" ); + + if ( &aPreset == this) + { + return *this; + } + + iName.Close(); + iName.Create( aPreset.iName ); + + iLanguageCode.Close(); + iLanguageCode.Create( aPreset.iLanguageCode ); + + iLanguage.Close(); + iLanguage.Create( aPreset.iLanguage ); + + iCountryCode.Close(); + iCountryCode.Create( aPreset.iCountryCode ); + + iCountry.Close(); + iCountry.Create( aPreset.iCountry ); + + iLastModified.Close(); + iLastModified.Create( aPreset.iLastModified ); + + iAdvertisementUrl.Close(); + iAdvertisementUrl.Create( aPreset.iAdvertisementUrl ); + + iAdvertisementInUse.Close(); + iAdvertisementInUse.Create( aPreset.iAdvertisementInUse ); + + iImgUrl.Close(); + iImgUrl.Create( aPreset.iImgUrl ); + + iLogoData.Close(); + iLogoData.Create( aPreset.iLogoData ); + + iDescription.Close(); + iDescription.Create( aPreset.iDescription ); + + iShortDesc.Close(); + iShortDesc.Create( aPreset.iShortDesc ); + + iMusicStoreStatus.Close(); + iMusicStoreStatus.Create( aPreset.iMusicStoreStatus ); + + iGenereName.Close(); + iGenereName.Create( aPreset.iGenereName ); + + iGenereId.Close(); + iGenereId.Create( aPreset.iGenereId ); + + + iUrlArray->ResetAndDestroy(); + + for(TInt cnt=0;cnt= 0 && cnt < aPreset.iUrlArray->Count() ); + TRAPD( errUrl, SetUrlL( aPreset.iUrlArray->At( cnt )->GetServerName(), + aPreset.iUrlArray->At( cnt )->GetServerUrl(), + aPreset.iUrlArray->At( cnt )->GetBitRate()) ) + + if ( errUrl != KErrNone ) + { + return *this ; + } + } + iChannelUrlCount=aPreset.iChannelUrlCount; + iType=aPreset.iType; //0 for user defined 1 for isds type. + iPresetId = aPreset.iPresetId; + IRLOG_DEBUG( "CIRIsdsPreset::operator= - Exiting." ); + return *this; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetAvailableBitrates() +// Function to get available bitrates +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIRIsdsPreset::GetAvailableBitrates( RArray& aBitrates ) const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetAvailableBitrates - Entering." ); + aBitrates.Reset(); + TInt err = KErrNone; + for ( TInt loop = 0; loop < iUrlArray->Count() && !err; ++loop ) + { + err = aBitrates.InsertInOrder( iUrlArray->At( loop )->GetBitRate() ); + if ( err == KErrAlreadyExists ) + { + // Do not allow duplicates, but strip them away. + err = KErrNone; + } + } + + if ( err ) + { + aBitrates.Reset(); + } + + IRLOG_DEBUG( "CIRIsdsPreset::GetAvailableBitrates - Exiting." ); + return err; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetUrlForBitrateL() +// Function to get Url for a given bitrate +// --------------------------------------------------------------------------- +// +EXPORT_C CDesCArrayFlat* CIRIsdsPreset::GetUrlForBitrateL( TInt aBitrate ) + { + IRLOG_DEBUG( "CIRIsdsPreset::GetUrlForBitrateL - Entering." ); + CDesCArrayFlat* urlForBitrate = new( ELeave )CDesCArrayFlat( KUrlForBitrateMaxLength ); + CleanupStack::PushL( urlForBitrate ); + iBitrate = aBitrate; + SortInOrderL(); + //appending the urls with bit rate less than or + //equal to given bit rate limit + for ( TInt loop = 0; loop < iUrlArray->Count(); ++loop ) + { + if ( aBitrate >= iUrlArray->At( loop )->GetBitRate()) + { + urlForBitrate->AppendL( iUrlArray->At( loop )->GetServerUrl() ); + } + } + + //appending the url with bit rate greater than given + //bit rate limit + for ( TInt loop = ( iUrlArray->Count()-1 ); loop >= 0; --loop) + { + if ( aBitrateAt( loop )->GetBitRate() ) + { + urlForBitrate->AppendL( iUrlArray->At( loop )->GetServerUrl() ); + } + } + if ( urlForBitrate->MdcaCount()==0 && iUrlArray->Count() > 0 ) + { + urlForBitrate->AppendL( iUrlArray->At( 0 )->GetServerUrl() ); + } + + CleanupStack::Pop( urlForBitrate ); + IRLOG_DEBUG( "CIRIsdsPreset::GetUrlForBitrateL - Exiting." ); + return urlForBitrate; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetExactUrlForBitrateL() +// Function to get Urls exactly matching a given bitrate for display purpose +// --------------------------------------------------------------------------- +// +EXPORT_C CDesCArrayFlat* CIRIsdsPreset::GetExactUrlForBitrateL( TInt aBitrate ) + { + IRLOG_DEBUG( "CIRIsdsPreset::GetUrlForBitrateL - Entering." ); + CDesCArrayFlat* urlForBitrate = + new( ELeave )CDesCArrayFlat( KUrlForBitrateMaxLength ); + + CleanupStack::PushL(urlForBitrate); + + SortInOrderL(); + //appending the urls with bit rate less than or + //equal to given bit rate limit + for ( TInt loop = 0; loop < iUrlArray->Count(); ++loop ) + { + if ( aBitrate == iUrlArray->At( loop )->GetBitRate() ) + { + urlForBitrate->AppendL( iUrlArray->At( loop )->GetServerUrl() ); + } + } + + CleanupStack::Pop( urlForBitrate ); + IRLOG_DEBUG( "CIRIsdsPreset::GetUrlForBitrateL - Exiting." ); + return urlForBitrate; + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetChannelUrlAtL() +// Function to get channel Url for a given index +// --------------------------------------------------------------------------- +// +EXPORT_C const TDesC& CIRIsdsPreset::GetChannelUrlAtL( TInt aIndex ) const + { + IRLOG_DEBUG( "CIRIsdsPreset::GetChannelUrlAtL - Entering." ); + __ASSERT_ALWAYS( aIndex < iUrlArray->Count(), User::Leave( KErrArgument ) ); + IRLOG_DEBUG( "CIRIsdsPreset::GetChannelUrlAtL - Exiting." ); + return iUrlArray->At( aIndex )->GetServerUrl(); + } + + +// --------------------------------------------------------------------------- +// CIRIsdsPreset::GetChannelBitrateL() +// Function to get channel Url for a given index +// --------------------------------------------------------------------------- +// +EXPORT_C TInt CIRIsdsPreset::GetChannelBitrateL( TInt aIndex ) + { + IRLOG_DEBUG( "CIRIsdsPreset::GetChannelUrlAtL - Entering." ); + __ASSERT_ALWAYS( aIndex < iUrlArray->Count(), User::Leave( KErrArgument ) ); + CDesCArrayFlat* urlForBitrate = + new( ELeave )CDesCArrayFlat( KUrlForBitrateMaxLength ); + + CleanupStack::PushL( urlForBitrate ); + SortInOrderL(); + //appending the urls with bit rate less than or + //equal to given bit rate limit + for ( TInt loop = 0; loop < iUrlArray->Count(); ++loop ) + { + if ( iBitrate >= iUrlArray->At( loop )->GetBitRate()) + { + urlForBitrate->AppendL( iUrlArray->At( loop )->GetServerUrl() ); + } + } + + //appending the url with bit rate greater than given + //bit rate limit + for ( TInt loop = ( iUrlArray->Count() - 1 );loop >= 0; --loop ) + { + if ( iBitrateAt( loop )->GetBitRate() ) + { + urlForBitrate->AppendL( iUrlArray->At( loop )->GetServerUrl() ); + } + } + + if ( urlForBitrate->MdcaCount() == 0 && iUrlArray->Count() > 0 ) + { + urlForBitrate->AppendL( iUrlArray->At( 0 )->GetServerUrl() ); + } + + for ( TInt i = 0; i < iUrlArray->Count(); ++i ) + { + if ( iUrlArray->At( i )->GetServerUrl().Compare + ( urlForBitrate->MdcaPoint( aIndex ) ) == 0 ) + { + IRRDEBUG2( "CIRIsdsPreset:: - GetChannelBitrateL", KNullDesC ); + CleanupStack::Pop( urlForBitrate ); + return iUrlArray->At( i )->GetBitRate(); + } + } + + CleanupStack::Pop( urlForBitrate ); + IRRDEBUG2( "CIRIsdsPreset:: - GetChannelUrlAtL Exiting", KNullDesC ); + IRLOG_DEBUG( "CIRIsdsPreset::GetChannelUrlAtL - Exiting." ); + return 0; + } + + +//---------------------------------------------------------------------------- +// CIRIsdsPreset::SortInOrderL() +// simple bubble shot +// to sort the bitrates in desc order +//---------------------------------------------------------------------------- +// +void CIRIsdsPreset::SortInOrderL() + { + IRLOG_DEBUG( "CIRIsdsPreset::SortInOrderL - Exiting." ); + //temporary holder for pointer + CIRChannelServerUrl* holdTemp = NULL; + TInt urlcount = iUrlArray->Count(); + //sorts the array pointers [of urls] in the descending order of bit rate + //bubble sort algorithm is used for this + for ( TInt sortcount = ( urlcount - 1 ); sortcount >= 0; --sortcount ) + { + for ( TInt index = 1; index <= sortcount; index++ ) + { + if ( iUrlArray->At( index - 1 )->GetBitRate() < + iUrlArray->At( index )->GetBitRate()) + { + holdTemp = iUrlArray->At( index-1 ); + iUrlArray->At( index - 1 ) = iUrlArray->At( index ); + iUrlArray->At( index ) = holdTemp; + } + } + } + + IRLOG_DEBUG( "CIRIsdsPreset::SortInOrderL - Exiting." ); + return; + }