diff -r 608f67c22514 -r 896e9dbc5f19 internetradio2.0/irxmlparser/src/irxmlelements.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/internetradio2.0/irxmlparser/src/irxmlelements.cpp Wed Aug 18 09:40:26 2010 +0300 @@ -0,0 +1,176 @@ +/* +* 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: The implementation for presentation elements. +* +*/ + + +#include + +#include "irdebug.h" +#include "irxmlelements.h" + +//Ignores PC Lint Warning 618. + +//! Literals for the StringPool + +//! Literals for List of genres,languages,countries + _STLIT8( KName, "name" ); + _STLIT8( KID, "id" ); + _STLIT8( KSize, "size" ); + +//!Literals for the List of Channels + _STLIT8( KShortDesC, "shortDesc" ); + + _STLIT8( KBitrate, "bitrate" ); + _STLIT8( KValue, "value" ); +//! Literals for the channel + +_STLIT8( KSdsid, "sdsid" ); +_STLIT8( KLangCode, "langCode" ); +_STLIT8( KLang, "lang" ); +_STLIT8( KCountryCode, "countryCode" ); +_STLIT8( KLastUpdated, "lastUpdated" ); +_STLIT8( KDescription, "description" ); +_STLIT8( KImgURL, "imgUrl" ); +_STLIT8( KAdvUrl, "advertiseImgUrl" ); +_STLIT8( KAdvUse, "advertiseInUse" ); +_STLIT8( KGenreId, "genreid" ); +_STLIT8( KURL, "url" ); +_STLIT8( KMusicStoreEnabled, "musicStoreEnabled" ); +//!Literals for the log Usage + +_STLIT8( KIRId, "irid" ); +//! Literals for the OTA Update + +_STLIT8( KVersion, "version" ); +_STLIT8( KUpdateInterval, "updateInterval" ); +_STLIT8( KUpdateMethod, "updateMethod" ); + + //! Literals for Advertisement +_STLIT8( KInUse, "inUse" ); +_STLIT8( KUsageVisibleTimes, "usageVisibleTimes" ); +_STLIT8( KVisibleTime, "visibleTime" ); + +const TInt KNoOfElementInTable = 27; + + //! PoolTable + const TAny* const IRXMLPoolContent[] = + { + (const TAny*) &KGetOp, + (const TAny*) &KName, + (const TAny*) &KID, + (const TAny*) &KSize, + (const TAny*) &KShortDesC, + (const TAny*) &KValue, + (const TAny*) &KSdsid, + (const TAny*) &KLangCode, + (const TAny*) &KLang, + (const TAny*) &KCountryCode, + (const TAny*) &KCountry, + (const TAny*) &KLastUpdated, + (const TAny*) &KDescription, + (const TAny*) &KImgURL, + (const TAny*) &KAdvUrl, + (const TAny*) &KAdvUse, + (const TAny*) &KGenreId, + (const TAny*) &KURL, + (const TAny*) &KMusicStoreEnabled, + (const TAny*) &KBitrate, + (const TAny*) &KIRId, + (const TAny*) &KVersion, + (const TAny*) &KUpdateInterval, + (const TAny*) &KUpdateMethod, + (const TAny*) &KInUse, + (const TAny*) &KUsageVisibleTimes, + (const TAny*) &KVisibleTime + }; + +//! Pointer to a StringTable +const static TStringTable IRPoolTable = + { + KNoOfElementInTable, + &IRXMLPoolContent[0], + EFalse + }; + + +// --------------------------------------------------------------------------- +// Creates an initialised string pool with no pre-loaded string tables. +// --------------------------------------------------------------------------- +// +void TIRXMLElementFormat::OpenStringPoolL( RStringPool& aStringPool ) + { + IRLOG_DEBUG( "CIRXMLContentHandler::OpenStringPoolL" ); + aStringPool.OpenL( IRPoolTable ); + IRLOG_DEBUG( "CIRXMLContentHandler::OpenStringPoolL - Exiting." ); + } + + +// --------------------------------------------------------------------------- +// TIRXMLElementFormat :: GetElementIdL +// The ElementId of the element from the StringPool +// --------------------------------------------------------------------------- +// +TIRXMLElement TIRXMLElementFormat::GetElementIdL( const TDesC8& aElement, + const RStringPool& aStringPool ) + { + IRLOG_DEBUG( "TIRXMLElementFormat::GetElementIdL" ); + TBool validElement = EFalse; + TInt tableEntries; + TInt pos(0); + tableEntries = IRPoolTable.iCount; + while( pos < tableEntries && validElement == EFalse ) + { + RStringF tableEntry; + tableEntry = aStringPool.StringF( pos, IRPoolTable ); + HBufC8* ElementName = HBufC8::NewLC( tableEntry.DesC().Length() ); + ElementName->Des().Copy( tableEntry.DesC() ); + TLex8 string( *ElementName ); + TPtrC8 token = string.NextToken(); + TInt CompareResult = aElement.Compare( token ); + if ( CompareResult == 0 ) + { + validElement = ETrue; + } + if ( validElement == EFalse ) + { + pos++; + } + tableEntry.Close(); + CleanupStack::PopAndDestroy( ElementName ); + } + if ( validElement ) + { + IRLOG_DEBUG( "CIRXMLContentHandler::GetElementIdL - Exiting (1)." ); + return static_cast( pos ); + } + IRLOG_DEBUG( "CIRXMLContentHandler::GetElementIdL - Exiting (2)." ); + return(EElementIDUnknown); + } + +// --------------------------------------------------------------------------- +// TIRXMLElementFormat::CloseStringPoolL +// Closes the StringPool +// --------------------------------------------------------------------------- +// +void TIRXMLElementFormat::CloseStringPoolL( RStringPool& aStringPool ) + { + IRLOG_DEBUG( "TIRXMLElementFormat::CloseStringPoolL" ); + aStringPool.Close(); + IRLOG_DEBUG( "TIRXMLElementFormat::CloseStringPoolL - Exiting." ); + return; + } + +