diff -r f23c07ec56e2 -r 85f623e1ef41 harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesteraudioplaylistparser.cpp --- a/harvester/harvesterplugins/AudioPlaylistPlugin/src/harvesteraudioplaylistparser.cpp Tue Aug 31 15:37:30 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,382 +0,0 @@ -/* -* 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: -* -*/ - - -#include -#include -#include -#include -#include -#include - -#include "harvesteraudioplaylistparser.h" - -#include "mdsutils.h" -#include "harvesterlog.h" - -_LIT( KMimeTypeM3U, "audio/x-mpegurl" ); -_LIT( KExtensionM3U, "m3u" ); - -_LIT( KMDSPlaylistCharacterSetRscFile, "mdsplaylisttopcharacterset.rsc" ); - -const TInt KMDSArrayGranularity = 12; - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::NewL -// ----------------------------------------------------------------------------- -// -CHarvesterAudioPlaylistParser* CHarvesterAudioPlaylistParser::NewL() - { - CHarvesterAudioPlaylistParser* self = new ( ELeave ) CHarvesterAudioPlaylistParser(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CHarvesterAudioPlaylistParser::~CHarvesterAudioPlaylistParser() - { - delete iTopCharacterSet; - - delete iAvailableCharacterSet; - - iFs.Close(); - } - - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::CHarvesterAudioPlaylistParser -// ----------------------------------------------------------------------------- -// -CHarvesterAudioPlaylistParser::CHarvesterAudioPlaylistParser() - { - } - - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::ConstructL -// ----------------------------------------------------------------------------- -// -void CHarvesterAudioPlaylistParser::ConstructL() - { - User::LeaveIfError( iFs.Connect() ); - iAvailableCharacterSet = CCnvCharacterSetConverter::CreateArrayOfCharacterSetsAvailableL( iFs ); - iTopCharacterSet = - new (ELeave) CArrayFixFlat( KMDSArrayGranularity ); - GenerateTopCharacterSetsL(); - iM3UParser = CHarvesterM3UPlaylistParser::NewL( iFs, iAvailableCharacterSet, iTopCharacterSet ); - } - - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::ParseMimeType -// ----------------------------------------------------------------------------- -// -TBool CHarvesterAudioPlaylistParser::ParseMimeType( - const TDesC& aFileName, TDes& aMimeType ) - { - TPtrC ext; - if( MdsUtils::GetExt( aFileName, ext ) ) - { - if( ext == KExtensionM3U ) - { - aMimeType = KMimeTypeM3U; - return ETrue; - } - } - - aMimeType = KNullDesC; - return EFalse; - } - - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CHarvesterAudioPlaylistParser::ParseL( const TDesC& aFileName, - RPointerArray& aUriArray, TPtrC aMimeType ) - { - if( aMimeType == KMimeTypeM3U ) - { - return iM3UParser->ParseL( aFileName, aUriArray ); - } - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::ResetL -// ----------------------------------------------------------------------------- -// -void CHarvesterAudioPlaylistParser::Reset() - { - iM3UParser->Reset(); - } - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::GenerateTopCharacterSetsL -// ----------------------------------------------------------------------------- -// -void CHarvesterAudioPlaylistParser::GenerateTopCharacterSetsL() - { - CArrayFixFlat* installedLanguages = NULL; - SysLangUtil::GetInstalledLanguages( installedLanguages ); - CleanupStack::PushL( installedLanguages ); - - TFileName fileName; - - TParsePtrC memory( PathInfo::RomRootPath() ); - fileName.Copy( memory.Drive() ); - fileName.Append( KDC_RESOURCE_FILES_DIR ); - fileName.Append( KMDSPlaylistCharacterSetRscFile ); - - TRAPD( err, iRscFile.OpenL( iFs, fileName ) ); - - // if there is no resource file, then there is no top character set list - if( err ) - { - CleanupStack::PopAndDestroy( installedLanguages ); - return; - } - - const TInt count( installedLanguages->Count() ); - for( TInt i=0; i < count; i++ ) - { - SelectCharacterSetsForLanguageL( (*installedLanguages)[i] ); - } - iTopCharacterSet->Compress(); - installedLanguages->Reset(); - CleanupStack::PopAndDestroy( installedLanguages ); - iRscFile.Close(); - } - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::SelectCharacterSetsForLanguageL -// ----------------------------------------------------------------------------- -// -void CHarvesterAudioPlaylistParser::SelectCharacterSetsForLanguageL( TInt aLanguage ) - { - switch( aLanguage ) - { - case ELangEnglish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ENGLISH_CHAR_SET ); - break; - case ELangFrench: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_FRENCH_CHAR_SET ); - break; - case ELangGerman: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_GERMAN_CHAR_SET ); - break; - case ELangTurkish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_TURKISH_CHAR_SET ); - break; - case ELangFinnish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_FINNISH_CHAR_SET ); - break; - case ELangSwedish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_SWEDISH_CHAR_SET ); - break; - case ELangRussian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_RUSSIAN_CHAR_SET ); - break; - case ELangArabic: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ARABIC_CHAR_SET ); - break; - case ELangHebrew: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_HEBREW_CHAR_SET ); - break; - case ELangFarsi: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_FARSI_CHAR_SET ); - break; - case ELangItalian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ITALIAN_CHAR_SET ); - break; - case ELangPolish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_POLISH_CHAR_SET ); - break; - case ELangHungarian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_HUNGARIAN_CHAR_SET ); - break; - case ELangSpanish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_SPANISH_CHAR_SET ); - break; - case ELangDutch: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_DUTCH_CHAR_SET ); - break; - case ELangPortuguese: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_PORTUGUESE_CHAR_SET ); - break; - case ELangAmerican: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ENGLISH_CHAR_SET ); - break; - case ELangCanadianFrench: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_FRENCH_CHAR_SET ); - break; - case ELangBrazilianPortuguese: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_PORTUGUESE_CHAR_SET ); - break; - case ELangLatinAmericanSpanish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_SPANISH_CHAR_SET ); - break; - case ELangLatvian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_LATVIAN_CHAR_SET ); - break; - case ELangGreek: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_GREEK_CHAR_SET ); - break; - case ELangEstonian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ESTONIAN_CHAR_SET ); - break; - case ELangLithuanian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_LITHUANIAN_CHAR_SET ); - break; - case ELangRomanian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ROMANIAN_CHAR_SET ); - break; - case ELangUkrainian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_UKRAINIAN_CHAR_SET ); - break; - case ELangBulgarian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_BULGARIAN_CHAR_SET ); - break; - case ELangCroatian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_CROATIAN_CHAR_SET ); - break; - case ELangSerbian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_SERBIAN_CHAR_SET ); - break; - case ELangIndonesian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_INDONESIAN_CHAR_SET ); - break; - case ELangMalay: - case ELangTagalog: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_MALAY_CHAR_SET ); - break; - case ELangIcelandic: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ICELANDIC_CHAR_SET ); - break; - case ELangDanish: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_DANISH_CHAR_SET ); - break; - case ELangNorwegian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_NORWEGIAN_CHAR_SET ); - break; - case ELangHindi: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_INDIAN_CHAR_SET ); - break; - case ELangUrdu: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_URDU_CHAR_SET ); - break; - case ELangCzech: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_CZECH_CHAR_SET ); - break; - case ELangSlovak: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_SLOVAK_CHAR_SET ); - break; - case ELangSlovenian: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_SLOVENIAN_CHAR_SET ); - break; - case ELangTaiwanChinese: - case ELangHongKongChinese: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_TAIWAN_HK_CHINESE_CHAR_SET ); - break; - case ELangPrcChinese: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_CHINESE_CHAR_SET ); - break; - case ELangEnglish_Taiwan: - case ELangEnglish_Prc: - case ELangEnglish_Japan: - case ELangEnglish_Thailand: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_ENGLISH_CHAR_SET ); - break; - case ELangJapanese: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_JAPANESE_CHAR_SET ); - break; - case ELangThai: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_THAI_CHAR_SET ); - break; - case ELangVietnamese: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_VIETNAMESE_CHAR_SET ); - break; - case ELangMalay_Apac: - ReadCharacterSetResourceL( R_MDS_PLAYLIST_MALAY_CHAR_SET ); - break; - default: - break; - } - } - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::ReadCharacterSetResourceL -// ----------------------------------------------------------------------------- -// -void CHarvesterAudioPlaylistParser::ReadCharacterSetResourceL( TInt aResourceId ) - { - TResourceReader rscReader; // Resource reader - HBufC8* rscBuf; // Buffer where resource is read - - rscBuf = iRscFile.AllocReadL( aResourceId ); - rscReader.SetBuffer( rscBuf ); - CleanupStack::PushL( rscBuf ); - - TUint characterSetElementId; - TInt numCharacterSetElements = rscReader.ReadInt16(); - TUint elemId; - CCnvCharacterSetConverter::SCharacterSet elem; - - for( TInt i = 0; i < numCharacterSetElements; i++ ) - { - characterSetElementId = rscReader.ReadInt32(); - const TInt count( iAvailableCharacterSet->Count() ); - for( TInt j = 0; j < count; j++ ) - { - elem = (*iAvailableCharacterSet)[j]; - elemId = elem.Identifier(); - if ( elemId == characterSetElementId && !IsInTopCharacterSet(characterSetElementId) ) - { - iTopCharacterSet->AppendL( elem ); - } - } - } - - CleanupStack::PopAndDestroy( rscBuf ); - } - -// ----------------------------------------------------------------------------- -// CHarvesterAudioPlaylistParser::IsInTopCharacterSet -// ----------------------------------------------------------------------------- -// -TBool CHarvesterAudioPlaylistParser::IsInTopCharacterSet( TUint aCharacterSetId ) - { - const TInt count( iTopCharacterSet->Count() ); - for( TInt i = 0; i < count; i++ ) - { - if( (*iTopCharacterSet)[i].Identifier() == aCharacterSetId ) - { - return ETrue; - } - } - return EFalse; - } - -// End of file