sl@0: /* sl@0: * Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: * All rights reserved. sl@0: * This component and the accompanying materials are made available sl@0: * under the terms of "Eclipse Public License v1.0" sl@0: * which accompanies this distribution, and is available sl@0: * at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: * sl@0: * Initial Contributors: sl@0: * Nokia Corporation - initial contribution. sl@0: * sl@0: * Contributors: sl@0: * sl@0: * Description: sl@0: * sl@0: */ sl@0: sl@0: sl@0: sl@0: #include sl@0: #include sl@0: sl@0: // User Includes sl@0: #include "T_MMUtil.h" sl@0: #include "DataWrapperBase.h" sl@0: sl@0: /*@{*/ sl@0: _LIT(KPriority, "priority"); sl@0: sl@0: _LIT(KMdaPriorityMin, "EMdaPriorityMin"); sl@0: _LIT(KMdaPriorityNormal, "EMdaPriorityNormal"); sl@0: _LIT(KMdaPriorityMax, "EMdaPriorityMax"); sl@0: sl@0: _LIT(KPriorityPreference, "prioritypreference"); sl@0: sl@0: _LIT(KMdaPriorityPreferenceNone, "None"); sl@0: _LIT(KMdaPriorityPreferenceTime, "Time"); sl@0: _LIT(KMdaPriorityPreferenceQuality, "Quality"); sl@0: _LIT(KMdaPriorityPreferenceTimeAndQuality, "TimeAndQuality"); sl@0: sl@0: _LIT(KThreadPriority, "threadpriority"); sl@0: sl@0: _LIT(KEPriorityNull, "EPriorityNull"); sl@0: _LIT(KEPriorityMuchLess, "EPriorityMuchLess"); sl@0: _LIT(KEPriorityLess, "EPriorityLess"); sl@0: _LIT(KEPriorityNormal, "EPriorityNormal"); sl@0: _LIT(KEPriorityMore, "EPriorityMore"); sl@0: _LIT(KEPriorityMuchMore, "EPriorityMuchMore"); sl@0: _LIT(KEPriorityRealTime, "EPriorityRealTime"); sl@0: _LIT(KEPriorityAbsoluteVeryLow, "EPriorityAbsoluteVeryLow"); sl@0: _LIT(KEPriorityAbsoluteLow, "EPriorityAbsoluteLow"); sl@0: _LIT(KEPriorityAbsoluteBackground, "EPriorityAbsoluteBackground"); sl@0: _LIT(KEPriorityAbsoluteForeground, "EPriorityAbsoluteForeground"); sl@0: _LIT(KEPriorityAbsoluteHigh, "EPriorityAbsoluteHigh"); sl@0: sl@0: _LIT(KFourCC, "fourcc"); sl@0: sl@0: _LIT(KDesMMFFourCCCodePCM8, "KMMFFourCCCodePCM8"); sl@0: _LIT(KDesMMFFourCCCodePCMU8, "KMMFFourCCCodePCMU8"); sl@0: _LIT(KDesMMFFourCCCodePCM16, "KMMFFourCCCodePCM16"); sl@0: _LIT(KDesMMFFourCCCodePCMU16, "KMMFFourCCCodePCMU16"); sl@0: _LIT(KDesMMFFourCCCodePCM16B, "KMMFFourCCCodePCM16B"); sl@0: _LIT(KDesMMFFourCCCodePCMU16B, "KMMFFourCCCodePCMU16B"); sl@0: _LIT(KDesMMFFourCCCodeIMAD, "KMMFFourCCCodeIMAD"); sl@0: _LIT(KDesMMFFourCCCodeIMAS, "KMMFFourCCCodeIMAS"); sl@0: _LIT(KDesMMFFourCCCodeALAW, "KMMFFourCCCodeALAW"); sl@0: _LIT(KDesMMFFourCCCodeMuLAW, "KMMFFourCCCodeMuLAW"); sl@0: _LIT(KDesMMFFourCCCodeGSM610, "KMMFFourCCCodeGSM610"); sl@0: _LIT(KDesFourCCCodeNULL, "KMMFFourCCCodeNULL"); sl@0: _LIT(KDesMMFFourCCCodeAMR, "KMMFFourCCCodeAMR"); sl@0: _LIT(KDesMMFFourCCCodeAAC, "KMMFFourCCCodeAAC"); sl@0: _LIT(KDesMMFFourCCCodeAWB, "KMMFFourCCCodeAWB"); sl@0: _LIT(KDesMMFFourCCCodeMP3, "KMMFFourCCCodeMP3"); sl@0: _LIT(KDesMMFFourCCCodeATRAC3, "KMMFFourCCCodeATRAC3"); sl@0: _LIT(KDesMMFFourCCCodeSBC, "KMMFFourCCCodeSBC"); sl@0: _LIT(KDesMMFFourCCCodeAMRW, "KMMFFourCCCodeAMRW"); sl@0: _LIT(KDesMMFFourCCCodeADTS, "KMMFFourCCCodeADTS"); sl@0: _LIT(KDesMMFFourCCCodeUnknown, "KMMFFourCCCodeUnknown"); sl@0: sl@0: _LIT(KImageType, "imagetype"); sl@0: sl@0: _LIT(KImageTypeThumbnail, "EImageTypeThumbnail"); sl@0: _LIT(KImageTypeMain, "EImageTypeMain"); sl@0: sl@0: _LIT(KIntent, "intent"); sl@0: sl@0: _LIT(KIntentPeek, "EPeek"); sl@0: _LIT(KIntentPlay, "EPlay"); sl@0: _LIT(KIntentView, "EView"); sl@0: _LIT(KIntentExecute, "EExecute"); sl@0: _LIT(KIntentPrint, "EPrint"); sl@0: _LIT(KIntentPause, "EPause"); sl@0: _LIT(KIntentContinue, "EContinue"); sl@0: _LIT(KIntentStop, "EStop"); sl@0: _LIT(KIntentUnknown, "EUnknown"); sl@0: _LIT(KIntentInstall, "EInstall"); sl@0: sl@0: _LIT(KMidiStateClosedDisengaged, "EMidiStateClosedDisengaged"); sl@0: _LIT(KMidiStateOpenDisengaged, "EMidiStateOpenDisengaged"); sl@0: _LIT(KMidiStateOpenPlaying, "EMidiStateOpenPlaying"); sl@0: _LIT(KMidiStateClosedEngaged, "EMidiStateClosedEngaged"); sl@0: _LIT(KMidiStateOpenEngaged, "EMidiStateOpenEngaged"); sl@0: sl@0: _LIT(KSampleRateFixed, "SampleRateFixed"); sl@0: _LIT(KSampleRateAnyInRange, "SampleRateAnyInRange"); sl@0: _LIT(KSampleRate8000Hz, "SampleRate8000Hz"); sl@0: _LIT(KSampleRate11025Hz, "SampleRate11025Hz"); sl@0: _LIT(KSampleRate12000Hz, "SampleRate12000Hz"); sl@0: _LIT(KSampleRate16000Hz, "SampleRate16000Hz"); sl@0: _LIT(KSampleRate22050Hz, "SampleRate22050Hz"); sl@0: _LIT(KSampleRate24000Hz, "SampleRate24000Hz"); sl@0: _LIT(KSampleRate32000Hz, "SampleRate32000Hz"); sl@0: _LIT(KSampleRate44100Hz, "SampleRate44100Hz"); sl@0: _LIT(KSampleRate48000Hz, "SampleRate48000Hz"); sl@0: _LIT(KSampleRate96000Hz, "SampleRate96000Hz"); sl@0: _LIT(KSampleRate64000Hz, "SampleRate64000Hz"); sl@0: _LIT(KChannelsMono, "ChannelsMono"); sl@0: _LIT(KChannelsStereo, "ChannelsStereo"); sl@0: _LIT(KRoutingControl, "RoutingControl"); sl@0: _LIT(KRealTime, "RealTime"); sl@0: sl@0: _LIT(KNoLocalRouting, "NoLocalRouting"); sl@0: _LIT(KNoNetworkRouting, "NoNetworkRouting"); sl@0: sl@0: _LIT(KOptionNone, "OptionNone"); sl@0: _LIT(KOptionNoDither, "OptionNoDither"); sl@0: _LIT(KOptionAlwaysThread, "OptionAlwaysThread"); sl@0: _LIT(KOptionAllowZeroFrameOpen, "OptionAllowZeroFrameOpen"); sl@0: _LIT(KAllowGeneratedMask, "AllowGeneratedMask"); sl@0: sl@0: _LIT(KAgentPropertyBufferSize, "AgentPropertyBufferSize"); sl@0: _LIT(KAgentPropertyAgentUI, "AgentPropertyAgentUI"); sl@0: _LIT(KAgentPropertyMultipleSequence, "AgentPropertyMultipleSequence"); sl@0: sl@0: _LIT(KCmdCapabilty, "capabilty%d"); sl@0: _LIT(KCmdChannels, "channels"); sl@0: _LIT(KCmdFlags, "flags"); sl@0: _LIT(KCmdMaxVolume, "maxvolume"); sl@0: _LIT(KCmdSampleRate, "samplerate"); sl@0: _LIT(KCmdVolume, "volume"); sl@0: sl@0: _LIT(KDModeNone, "None"); sl@0: _LIT(KDModeGray2, "Gray2"); sl@0: _LIT(KDModeGray4, "Gray4"); sl@0: _LIT(KDModeGray16, "Gray16"); sl@0: _LIT(KDModeGray256, "Gray256"); sl@0: _LIT(KDModeColor16, "Color16"); sl@0: _LIT(KDModeColor256, "Color256"); sl@0: _LIT(KDModeColor64K, "Color64K"); sl@0: _LIT(KDModeColor16M, "Color16M"); sl@0: _LIT(KDModeRgb, "Rgb"); sl@0: _LIT(KDModeColor4K, "Color4K"); sl@0: _LIT(KDModeColor16MU, "Color16MU"); sl@0: _LIT(KDModeColor16MA, "Color16MA"); sl@0: _LIT(KDModeColorLast, "ColorLast"); sl@0: sl@0: _LIT(KEVideoRotationNone, "None"); sl@0: _LIT(KEVideoRotationClockwise90, "Clockwise90"); sl@0: _LIT(KEVideoRotationClockwise180, "Clockwise180"); sl@0: _LIT(KEVideoRotationClockwise270, "Clockwise270"); sl@0: _LIT(KEVideoRotationUnknown, "Unknown"); sl@0: sl@0: sl@0: sl@0: _LIT(KCount, "count"); sl@0: /*@}*/ sl@0: sl@0: TBool CT_MMUtil::ReadMdaPriority(CDataWrapper& aDataWrapper, const TDesC& aSection, TInt& aPriority) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, KPriority(), str); sl@0: if ( ret ) sl@0: { sl@0: if ( str==KMdaPriorityMin ) sl@0: { sl@0: aPriority=EMdaPriorityMin; sl@0: } sl@0: else if ( str==KMdaPriorityNormal ) sl@0: { sl@0: aPriority=EMdaPriorityNormal; sl@0: } sl@0: else if ( str==KMdaPriorityMax ) sl@0: { sl@0: aPriority=EMdaPriorityMax; sl@0: } sl@0: else sl@0: { sl@0: if ( !aDataWrapper.GetIntFromConfig(aSection, KPriority(), aPriority) ) sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal priority %S"), &KPriority()); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: aDataWrapper.INFO_PRINTF3(_L("ReadMdaPriority %S = %d"), &KPriority(), ret); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadMdaPriorityPreference(CDataWrapper& aDataWrapper, const TDesC& aSection, TMdaPriorityPreference& aPreference) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, KPriorityPreference(), str); sl@0: if ( ret ) sl@0: { sl@0: if ( str==KMdaPriorityPreferenceNone ) sl@0: { sl@0: aPreference=EMdaPriorityPreferenceNone; sl@0: } sl@0: else if ( str==KMdaPriorityPreferenceTime ) sl@0: { sl@0: aPreference=EMdaPriorityPreferenceTime; sl@0: } sl@0: else if ( str==KMdaPriorityPreferenceQuality ) sl@0: { sl@0: aPreference=EMdaPriorityPreferenceQuality; sl@0: } sl@0: else if ( str==KMdaPriorityPreferenceTimeAndQuality ) sl@0: { sl@0: aPreference=EMdaPriorityPreferenceTimeAndQuality; sl@0: } sl@0: else sl@0: { sl@0: TInt intVal; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KPriorityPreference(), intVal) ) sl@0: { sl@0: aPreference=(TMdaPriorityPreference)intVal; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal TMdaPriorityPreference %S"), &KPriorityPreference()); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: aDataWrapper.INFO_PRINTF3(_L("ReadMdaPriorityPreference %S = %d"), &KPriorityPreference(), ret); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadThreadPriority(CDataWrapper& aDataWrapper, const TDesC& aSection, TThreadPriority& aPriority) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, KThreadPriority(), str); sl@0: if ( ret ) sl@0: { sl@0: if ( str==KEPriorityNull ) sl@0: { sl@0: aPriority = EPriorityNull; sl@0: } sl@0: else if ( str==KEPriorityMuchLess ) sl@0: { sl@0: aPriority = EPriorityMuchLess; sl@0: } sl@0: else if ( str==KEPriorityLess ) sl@0: { sl@0: aPriority = EPriorityLess; sl@0: } sl@0: else if ( str==KEPriorityNormal ) sl@0: { sl@0: aPriority = EPriorityNormal; sl@0: } sl@0: else if ( str==KEPriorityMore ) sl@0: { sl@0: aPriority = EPriorityMore; sl@0: } sl@0: else if ( str==KEPriorityMuchMore ) sl@0: { sl@0: aPriority = EPriorityMuchMore; sl@0: } sl@0: else if ( str==KEPriorityRealTime ) sl@0: { sl@0: aPriority = EPriorityRealTime; sl@0: } sl@0: else if ( str==KEPriorityAbsoluteVeryLow ) sl@0: { sl@0: aPriority = EPriorityAbsoluteVeryLow; sl@0: } sl@0: else if ( str==KEPriorityAbsoluteLow ) sl@0: { sl@0: aPriority = EPriorityAbsoluteLow; sl@0: } sl@0: else if ( str==KEPriorityAbsoluteBackground ) sl@0: { sl@0: aPriority = EPriorityAbsoluteBackground; sl@0: } sl@0: else if ( str==KEPriorityAbsoluteForeground ) sl@0: { sl@0: aPriority = EPriorityAbsoluteForeground; sl@0: } sl@0: else if ( str==KEPriorityAbsoluteHigh ) sl@0: { sl@0: aPriority = EPriorityAbsoluteHigh; sl@0: } sl@0: else sl@0: { sl@0: TInt intVal; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KThreadPriority(), intVal) ) sl@0: { sl@0: aPriority=(TThreadPriority)intVal; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal TThreadPriority %S"), &KThreadPriority()); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: aDataWrapper.INFO_PRINTF3(_L("ReadThreadPriority %S = %d"), &KThreadPriority(), ret); sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadFourCC(CDataWrapper& aDataWrapper, const TDesC& aSection, TFourCC& aFourCC) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, KFourCC(), str); sl@0: sl@0: if ( ret ) sl@0: { sl@0: if( str==KDesMMFFourCCCodePCM8 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodePCM8; sl@0: } sl@0: else if( str==KDesMMFFourCCCodePCMU8 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodePCMU8; sl@0: } sl@0: else if( str==KDesMMFFourCCCodePCM16 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodePCM16; sl@0: } sl@0: else if( str==KDesMMFFourCCCodePCMU16 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodePCMU16; sl@0: } sl@0: else if( str==KDesMMFFourCCCodePCM16B ) sl@0: { sl@0: aFourCC=KMMFFourCCCodePCM16B; sl@0: } sl@0: else if( str==KDesMMFFourCCCodePCMU16B ) sl@0: { sl@0: aFourCC=KMMFFourCCCodePCMU16B; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeIMAD ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeIMAD; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeIMAS ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeIMAS; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeALAW ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeALAW; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeMuLAW ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeMuLAW; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeGSM610 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeGSM610; sl@0: } sl@0: else if( str==KDesFourCCCodeNULL ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeNULL; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeAMR ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeAMR; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeAAC ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeAAC; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeAWB ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeAWB; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeMP3 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeMP3; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeATRAC3 ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeATRAC3; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeSBC ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeSBC; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeAMRW ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeAMRW; sl@0: } sl@0: else if( str==KDesMMFFourCCCodeADTS ) sl@0: { sl@0: aFourCC=KMMFFourCCCodeADTS; sl@0: } sl@0: else sl@0: { sl@0: TInt intVal; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KFourCC(), intVal) ) sl@0: { sl@0: aFourCC=intVal; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal TFourCC %S"), &KFourCC()); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadImageType(CDataWrapper& aDataWrapper, const TDesC& aSection, CImageDecoder::TImageType& aImageType) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, KImageType(), str); sl@0: sl@0: if ( ret ) sl@0: { sl@0: if ( str==KImageTypeThumbnail ) sl@0: { sl@0: aImageType=CImageDecoder::EImageTypeThumbnail; sl@0: } sl@0: else if ( str==KImageTypeMain ) sl@0: { sl@0: aImageType=CImageDecoder::EImageTypeMain; sl@0: } sl@0: else sl@0: { sl@0: TInt intVal; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KImageType(), intVal) ) sl@0: { sl@0: aImageType=(CImageDecoder::TImageType)intVal; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal CImageDecoder::TImageType %S"), &KImageType()); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadIntent(CDataWrapper& aDataWrapper, const TDesC& aSection, ContentAccess::TIntent& aIntent) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, KIntent(), str); sl@0: sl@0: if ( ret ) sl@0: { sl@0: if ( str==KIntentPeek ) sl@0: { sl@0: aIntent=ContentAccess::EPeek; sl@0: } sl@0: else if ( str==KIntentPlay ) sl@0: { sl@0: aIntent=ContentAccess::EPlay; sl@0: } sl@0: else if ( str==KIntentView ) sl@0: { sl@0: aIntent=ContentAccess::EView; sl@0: } sl@0: else if ( str==KIntentExecute ) sl@0: { sl@0: aIntent=ContentAccess::EExecute; sl@0: } sl@0: else if ( str==KIntentPrint ) sl@0: { sl@0: aIntent=ContentAccess::EPrint; sl@0: } sl@0: else if ( str==KIntentPause ) sl@0: { sl@0: aIntent=ContentAccess::EPause; sl@0: } sl@0: else if ( str==KIntentContinue ) sl@0: { sl@0: aIntent=ContentAccess::EContinue; sl@0: } sl@0: else if ( str==KIntentStop ) sl@0: { sl@0: aIntent=ContentAccess::EStop; sl@0: } sl@0: else if ( str==KIntentUnknown ) sl@0: { sl@0: aIntent=ContentAccess::EUnknown; sl@0: } sl@0: else if ( str==KIntentInstall ) sl@0: { sl@0: aIntent=ContentAccess::EInstall; sl@0: } sl@0: else sl@0: { sl@0: TInt intVal; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KIntent(), intVal) ) sl@0: { sl@0: aIntent=(ContentAccess::TIntent)intVal; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal ContentAccess::TIntent %S"), &KIntent()); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadMidiState(CDataWrapper& aDataWrapper, const TDesC& aSection, const TDesC& aKeyName, TMidiState& aState) sl@0: { sl@0: TPtrC str; sl@0: TBool ret=aDataWrapper.GetStringFromConfig(aSection, aKeyName, str); sl@0: sl@0: if ( ret ) sl@0: { sl@0: if ( str==KMidiStateClosedDisengaged ) sl@0: { sl@0: aState=EMidiStateClosedDisengaged; sl@0: } sl@0: else if ( str==KMidiStateOpenDisengaged ) sl@0: { sl@0: aState=EMidiStateOpenDisengaged; sl@0: } sl@0: else if ( str==KMidiStateOpenPlaying ) sl@0: { sl@0: aState=EMidiStateOpenPlaying; sl@0: } sl@0: else if ( str==KMidiStateClosedEngaged ) sl@0: { sl@0: aState=EMidiStateClosedEngaged; sl@0: } sl@0: else if ( str==KMidiStateOpenEngaged ) sl@0: { sl@0: aState=EMidiStateOpenEngaged; sl@0: } sl@0: else sl@0: { sl@0: TInt intVal; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, aKeyName, intVal) ) sl@0: { sl@0: aState=(TMidiState)intVal; sl@0: } sl@0: else sl@0: { sl@0: ret=EFalse; sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal TMidiState %S"), &aKeyName); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToAudioCaps(const TDesC& aDesc, TMdaAudioDataSettings::TAudioCaps& aAudioCaps) sl@0: { sl@0: TBool ret=ETrue; sl@0: sl@0: if ( aDesc==KSampleRateFixed ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRateFixed; sl@0: } sl@0: else if ( aDesc==KSampleRateAnyInRange ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRateAnyInRange; sl@0: } sl@0: else if ( aDesc==KSampleRate8000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate8000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate11025Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate11025Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate12000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate12000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate16000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate16000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate22050Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate22050Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate24000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate24000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate32000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate32000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate44100Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate44100Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate48000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate48000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate96000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate96000Hz; sl@0: } sl@0: else if ( aDesc==KSampleRate64000Hz ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ESampleRate64000Hz; sl@0: } sl@0: else if ( aDesc==KChannelsMono ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::EChannelsMono; sl@0: } sl@0: else if ( aDesc==KChannelsStereo ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::EChannelsStereo; sl@0: } sl@0: else if ( aDesc==KRoutingControl ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ERoutingControl; sl@0: } sl@0: else if ( aDesc==KRealTime ) sl@0: { sl@0: aAudioCaps=TMdaAudioDataSettings::ERealTime; sl@0: } sl@0: else sl@0: { sl@0: ret=EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToAudioFlags(const TDesC& aDesc, TMdaAudioDataSettings::TAudioFlags& aAudioFlags) sl@0: { sl@0: TBool ret=ETrue; sl@0: sl@0: if ( aDesc==KNoLocalRouting ) sl@0: { sl@0: aAudioFlags=TMdaAudioDataSettings::ENoLocalRouting; sl@0: } sl@0: else if ( aDesc==KNoNetworkRouting ) sl@0: { sl@0: aAudioFlags=TMdaAudioDataSettings::ENoNetworkRouting; sl@0: } sl@0: else sl@0: { sl@0: ret=EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToOption(const TDesC& aDesc, CImageDecoder::TOptions& aOption) sl@0: { sl@0: TBool ret=ETrue; sl@0: sl@0: if ( aDesc==KOptionNone ) sl@0: { sl@0: aOption=CImageDecoder::EOptionNone; sl@0: } sl@0: else if ( aDesc==KOptionNoDither ) sl@0: { sl@0: aOption=CImageDecoder::EOptionNoDither; sl@0: } sl@0: else if ( aDesc==KOptionAlwaysThread ) sl@0: { sl@0: aOption=CImageDecoder::EOptionAlwaysThread; sl@0: } sl@0: else if ( aDesc==KOptionAllowZeroFrameOpen ) sl@0: { sl@0: aOption=CImageDecoder::EOptionAllowZeroFrameOpen; sl@0: } sl@0: else if ( aDesc==KAllowGeneratedMask ) sl@0: { sl@0: aOption=CImageDecoder::EAllowGeneratedMask; sl@0: } sl@0: else sl@0: { sl@0: ret=EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToOption(const TDesC& aDesc, CImageEncoder::TOptions& aOption) sl@0: { sl@0: TBool ret=ETrue; sl@0: sl@0: if ( aDesc==KOptionNone ) sl@0: { sl@0: aOption=CImageEncoder::EOptionNone; sl@0: } sl@0: else if ( aDesc==KOptionAlwaysThread ) sl@0: { sl@0: aOption=CImageEncoder::EOptionAlwaysThread; sl@0: } sl@0: else sl@0: { sl@0: ret=EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToAgentProperty(const TDesC& aDesc, ContentAccess::TAgentProperty& aAgentProperty) sl@0: { sl@0: TBool ret=ETrue; sl@0: sl@0: if ( aDesc==KAgentPropertyBufferSize ) sl@0: { sl@0: aAgentProperty=ContentAccess::EAgentPropertyBufferSize; sl@0: } sl@0: else if ( aDesc==KAgentPropertyAgentUI ) sl@0: { sl@0: aAgentProperty=ContentAccess::EAgentPropertyAgentUI; sl@0: } sl@0: else if ( aDesc==KAgentPropertyMultipleSequence ) sl@0: { sl@0: aAgentProperty=ContentAccess::EAgentPropertyMultipleSequence; sl@0: } sl@0: else sl@0: { sl@0: ret=EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: const TDesC& CT_MMUtil::GetFourCCString(TUint32 aValue) sl@0: { sl@0: switch(aValue) sl@0: { sl@0: case KMMFFourCCCodePCM8: sl@0: return KDesMMFFourCCCodePCM8; sl@0: case KMMFFourCCCodePCMU8: sl@0: return KDesMMFFourCCCodePCMU8; sl@0: case KMMFFourCCCodePCM16: sl@0: return KDesMMFFourCCCodePCM16; sl@0: case KMMFFourCCCodePCMU16: sl@0: return KDesMMFFourCCCodePCMU16; sl@0: case KMMFFourCCCodePCM16B: sl@0: return KDesMMFFourCCCodePCM16B; sl@0: case KMMFFourCCCodePCMU16B: sl@0: return KDesMMFFourCCCodePCMU16B; sl@0: case KMMFFourCCCodeIMAD: sl@0: return KDesMMFFourCCCodeIMAD; sl@0: case KMMFFourCCCodeIMAS: sl@0: return KDesMMFFourCCCodeIMAS; sl@0: case KMMFFourCCCodeALAW: sl@0: return KDesMMFFourCCCodeALAW; sl@0: case KMMFFourCCCodeMuLAW: sl@0: return KDesMMFFourCCCodeMuLAW; sl@0: case KMMFFourCCCodeGSM610: sl@0: return KDesMMFFourCCCodeGSM610; sl@0: case KMMFFourCCCodeNULL: sl@0: return KDesFourCCCodeNULL; sl@0: case KMMFFourCCCodeAMR: sl@0: return KDesMMFFourCCCodeAMR; sl@0: case KMMFFourCCCodeAAC: sl@0: return KDesMMFFourCCCodeAAC; sl@0: case KMMFFourCCCodeAWB: sl@0: return KDesMMFFourCCCodeAWB; sl@0: case KMMFFourCCCodeMP3: sl@0: return KDesMMFFourCCCodeMP3; sl@0: case KMMFFourCCCodeATRAC3: sl@0: return KDesMMFFourCCCodeATRAC3; sl@0: case KMMFFourCCCodeSBC: sl@0: return KDesMMFFourCCCodeSBC; sl@0: case KMMFFourCCCodeAMRW: sl@0: return KDesMMFFourCCCodeAMRW; sl@0: case KMMFFourCCCodeADTS: sl@0: return KDesMMFFourCCCodeADTS; sl@0: default: sl@0: break; sl@0: }; sl@0: return KDesMMFFourCCCodeUnknown; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ReadAudioDataSettings(CDataWrapper& aDataWrapper, TMdaAudioDataSettings& aSettings, const TDesC& aSection) sl@0: { sl@0: TBool ret=EFalse; sl@0: TBool callQuery=ETrue; sl@0: sl@0: // Read capabilities sl@0: TInt index=0; sl@0: TBool moreData=ETrue; sl@0: TPtrC capabilityString; sl@0: TInt capability=0; sl@0: TBool hasCapabilty=EFalse; sl@0: while ( moreData ) sl@0: { sl@0: TBuf capabilityTemp; sl@0: capabilityTemp.Format(KCmdCapabilty(), ++index); sl@0: if ( aDataWrapper.GetStringFromConfig(aSection, capabilityTemp, capabilityString) ) sl@0: { sl@0: TMdaAudioDataSettings::TAudioCaps audioCap; sl@0: if ( ConvertToAudioCaps(capabilityString, audioCap) ) sl@0: { sl@0: capability |= audioCap; sl@0: hasCapabilty=ETrue; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal capability %S"), &capabilityString); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: else sl@0: { sl@0: moreData=EFalse; sl@0: } sl@0: } sl@0: if ( hasCapabilty ) sl@0: { sl@0: aSettings.iCaps=capability; sl@0: ret=ETrue; sl@0: } sl@0: sl@0: // Read channels sl@0: TInt channels=0; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KCmdChannels(), channels) ) sl@0: { sl@0: aSettings.iChannels=channels; sl@0: callQuery=EFalse; sl@0: ret=ETrue; sl@0: } sl@0: sl@0: // Read flags sl@0: TMdaAudioDataSettings::TAudioFlags flags; sl@0: TPtrC flagsString; sl@0: if ( aDataWrapper.GetStringFromConfig(aSection, KCmdFlags(), flagsString) ) sl@0: { sl@0: if ( ConvertToAudioFlags(flagsString, flags) ) sl@0: { sl@0: aSettings.iFlags=flags; sl@0: ret=ETrue; sl@0: } sl@0: else sl@0: { sl@0: aDataWrapper.ERR_PRINTF2(_L("Illegal flags %S"), &flagsString); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: sl@0: // Read max volume sl@0: TInt maxVolume=0; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KCmdMaxVolume(), maxVolume) ) sl@0: { sl@0: aSettings.iMaxVolume=maxVolume; sl@0: ret=ETrue; sl@0: } sl@0: sl@0: // Read sample rate sl@0: TInt sampleRate=0; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KCmdSampleRate(), sampleRate) ) sl@0: { sl@0: aSettings.iSampleRate=sampleRate; sl@0: callQuery=EFalse; sl@0: ret=ETrue; sl@0: } sl@0: sl@0: // Read volume sl@0: TInt volume=0; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KCmdVolume(), volume) ) sl@0: { sl@0: aSettings.iVolume=volume; sl@0: callQuery=EFalse; sl@0: ret=ETrue; sl@0: } sl@0: sl@0: if ( callQuery ) sl@0: { sl@0: aSettings.Query(); sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToDisplayMode(const TDesC& aDisplayModeStr, TDisplayMode& aDisplayMode) sl@0: { sl@0: TBool ret = ETrue; sl@0: sl@0: if (aDisplayModeStr == KDModeNone) sl@0: { sl@0: aDisplayMode = ENone; sl@0: } sl@0: else if (aDisplayModeStr == KDModeGray2) sl@0: { sl@0: aDisplayMode = EGray2; sl@0: } sl@0: else if (aDisplayModeStr == KDModeGray4) sl@0: { sl@0: aDisplayMode = EGray4; sl@0: } sl@0: else if (aDisplayModeStr == KDModeGray16) sl@0: { sl@0: aDisplayMode = EGray16; sl@0: } sl@0: else if (aDisplayModeStr == KDModeGray256) sl@0: { sl@0: aDisplayMode = EGray256; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor16) sl@0: { sl@0: aDisplayMode = EColor16; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor256) sl@0: { sl@0: aDisplayMode = EColor256; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor64K) sl@0: { sl@0: aDisplayMode = EColor64K; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor16M) sl@0: { sl@0: aDisplayMode = EColor16M; sl@0: } sl@0: else if (aDisplayModeStr == KDModeRgb) sl@0: { sl@0: aDisplayMode = ERgb; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor4K) sl@0: { sl@0: aDisplayMode = EColor4K; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor16MU) sl@0: { sl@0: aDisplayMode = EColor16MU; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColor16MA) sl@0: { sl@0: aDisplayMode = EColor16MA; sl@0: } sl@0: else if (aDisplayModeStr == KDModeColorLast) sl@0: { sl@0: aDisplayMode = EColorLast; sl@0: } sl@0: else sl@0: { sl@0: ret = EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: TBool CT_MMUtil::ConvertToVideoRotation(const TDesC& aVideoRotationStr, TVideoRotation& aVideoRotation) sl@0: { sl@0: TBool ret = ETrue; sl@0: sl@0: if (aVideoRotationStr == KEVideoRotationNone) sl@0: { sl@0: aVideoRotation = EVideoRotationNone; sl@0: } sl@0: else if (aVideoRotationStr == KEVideoRotationClockwise90) sl@0: { sl@0: aVideoRotation = EVideoRotationClockwise90; sl@0: } sl@0: else if (aVideoRotationStr == KEVideoRotationClockwise180) sl@0: { sl@0: aVideoRotation = EVideoRotationClockwise180; sl@0: } sl@0: else if (aVideoRotationStr == KEVideoRotationClockwise270) sl@0: { sl@0: aVideoRotation = EVideoRotationClockwise270; sl@0: } sl@0: else sl@0: { sl@0: ret = EFalse; sl@0: } sl@0: sl@0: return ret; sl@0: } sl@0: sl@0: const TDesC& CT_MMUtil::GetVideoRotationString(TVideoRotation& aVideoRotation) sl@0: { sl@0: switch(aVideoRotation) sl@0: { sl@0: case EVideoRotationNone: sl@0: return KEVideoRotationNone; sl@0: case EVideoRotationClockwise90: sl@0: return KEVideoRotationClockwise90; sl@0: case EVideoRotationClockwise180: sl@0: return KEVideoRotationClockwise180; sl@0: case EVideoRotationClockwise270: sl@0: return KEVideoRotationClockwise270; sl@0: default: sl@0: break; sl@0: }; sl@0: return KEVideoRotationUnknown; sl@0: } sl@0: sl@0: sl@0: void CT_MMUtil::VerifyMIMETypeArrayL(CDataWrapper& aDataWrapper, const TDesC& aSection, const RFileExtensionMIMETypeArray& aFileExtensionArray) sl@0: { sl@0: sl@0: sl@0: TInt count=aFileExtensionArray.Count(); sl@0: for ( TInt index=0; indexDisplayName(); sl@0: const TDesC& fileExtension=data->FileExtension(); sl@0: TUid imageSubType=data->ImageSubType(); sl@0: TUid imageType=data->ImageType(); sl@0: TUid implementationUid=data->ImplementationUid(); sl@0: const TDesC8& mimeType8=data->MIMEType(); sl@0: HBufC* mimeType=HBufC::NewLC(mimeType8.Length()); sl@0: TPtr mimeDes=mimeType->Des(); sl@0: mimeDes.Copy(mimeType8); sl@0: aDataWrapper.INFO_PRINTF3(_L("DisplayName[%d] =%S"), index, &displayName); sl@0: aDataWrapper.INFO_PRINTF3(_L("FileExtension[%d] =%S"), index, &fileExtension); sl@0: aDataWrapper.INFO_PRINTF3(_L("ImageSubType[%d] =0x%X"), index, imageSubType.iUid); sl@0: aDataWrapper.INFO_PRINTF3(_L("ImageType[%d] =0x%X"), index, imageType.iUid); sl@0: aDataWrapper.INFO_PRINTF3(_L("ImplementationUid[%d]=0x%X"), index, implementationUid.iUid); sl@0: aDataWrapper.INFO_PRINTF3(_L("MIMEType[%d] =%S"), index, &mimeDes); sl@0: CleanupStack::PopAndDestroy(mimeType); sl@0: sl@0: // Verify that it is unique in the array sl@0: for ( TInt index2=index+1; index2FileExtension())==0) && sl@0: (imageSubType==data2->ImageSubType()) && sl@0: (imageType==data2->ImageType()) && sl@0: (implementationUid==data2->ImplementationUid()) && sl@0: (mimeType8.Compare(data2->MIMEType())==0) sl@0: ) sl@0: { sl@0: aDataWrapper.ERR_PRINTF3(_L("Duplicate Types in entries %d and %d"), index, index2); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: TInt expectedCount=0; sl@0: if ( aDataWrapper.GetIntFromConfig(aSection, KCount(), expectedCount) ) sl@0: { sl@0: if ( count != expectedCount ) sl@0: { sl@0: aDataWrapper.ERR_PRINTF3(_L("count (%d) != expectedCount (%d)"), count, expectedCount); sl@0: aDataWrapper.SetBlockResult(EFail); sl@0: } sl@0: } sl@0: } sl@0: sl@0: void CT_MMUtil::GetControllerAndFormatUidL(CDataWrapper& aDataWrapper, const TDesC& aFileName, TUid aMediaId, TBool aRecord, TUid& aControllerUid, TUid& aFormatUid) sl@0: { sl@0: RFs fs; sl@0: User::LeaveIfError(fs.Connect()); sl@0: CleanupClosePushL(fs); sl@0: sl@0: TParse parse; sl@0: fs.Parse(aFileName, parse); sl@0: TPtrC extension=parse.Ext(); sl@0: sl@0: CMMFControllerPluginSelectionParameters* controllerSelection = CMMFControllerPluginSelectionParameters::NewLC(); sl@0: CMMFFormatSelectionParameters* formatSelection = CMMFFormatSelectionParameters::NewLC(); sl@0: sl@0: // Set the play and record format selection parameters to be blank. sl@0: // Format support is only retrieved if requested. sl@0: controllerSelection->SetRequiredPlayFormatSupportL(*formatSelection); sl@0: controllerSelection->SetRequiredRecordFormatSupportL(*formatSelection); sl@0: sl@0: // Set the media ids sl@0: RArray mediaIds; sl@0: CleanupClosePushL(mediaIds); sl@0: User::LeaveIfError(mediaIds.Append(aMediaId)); sl@0: sl@0: // Get plugins that support at least audio sl@0: controllerSelection->SetMediaIdsL(mediaIds, CMMFPluginSelectionParameters::EAllowOtherMediaIds); sl@0: controllerSelection->SetPreferredSupplierL(KNullDesC, CMMFPluginSelectionParameters::EPreferredSupplierPluginsFirstInList); sl@0: sl@0: // Array to hold all the controllers support the match data sl@0: RMMFControllerImplInfoArray controllers; sl@0: CleanupResetAndDestroyPushL(controllers); sl@0: controllerSelection->ListImplementationsL(controllers); sl@0: sl@0: // Find the first controller with at least one record format available sl@0: aControllerUid=TUid::Null(); sl@0: aFormatUid=TUid::Null(); sl@0: sl@0: TBool set = EFalse; sl@0: TBool stillNull = ETrue; sl@0: for( TInt controllerIndex=0; (controllerIndexRecordFormats(); sl@0: sl@0: for( TInt formatIndex=0; (formatIndexSupportedFileExtensions(); sl@0: sl@0: for ( TInt extensionsIndex=0; (extensionsIndexDes(); sl@0: bufferPtr.Copy(extensions[extensionsIndex]); // Create a 16 bit copy of the 8 bit original sl@0: sl@0: if ( stillNull ) sl@0: { sl@0: aControllerUid = controller->Uid(); sl@0: aFormatUid = formats[0]->Uid(); sl@0: stillNull = EFalse; sl@0: } sl@0: if ( bufferPtr == extension ) sl@0: { sl@0: aControllerUid = controller->Uid(); sl@0: aFormatUid = formats[0]->Uid(); sl@0: set = ETrue; sl@0: } sl@0: CleanupStack::PopAndDestroy(buffer); sl@0: } sl@0: } sl@0: } sl@0: else sl@0: { sl@0: const RMMFFormatImplInfoArray& formats=controller->PlayFormats(); sl@0: sl@0: for( TInt formatIndex=0; (formatIndexSupportedFileExtensions(); sl@0: sl@0: for ( TInt extensionsIndex=0; (extensionsIndexDes(); sl@0: bufferPtr.Copy(extensions[extensionsIndex]); // Create a 16 bit copy of the 8 bit original sl@0: sl@0: if ( stillNull ) sl@0: { sl@0: aControllerUid = controller->Uid(); sl@0: aFormatUid = formats[0]->Uid(); sl@0: stillNull = EFalse; sl@0: } sl@0: if ( bufferPtr == extension ) sl@0: { sl@0: aControllerUid = controller->Uid(); sl@0: aFormatUid = formats[0]->Uid(); sl@0: set = ETrue; sl@0: } sl@0: CleanupStack::PopAndDestroy(buffer); sl@0: } sl@0: } sl@0: } sl@0: } sl@0: sl@0: CleanupStack::PopAndDestroy(5, &fs); sl@0: } sl@0: sl@0: void CT_MMUtil::LogL(CDataWrapper& aDataWrapper, const CMMFControllerImplementationInformation& aControllerInfo) sl@0: { sl@0: aDataWrapper.INFO_PRINTF2(_L("Controller DisplayName = %S"), &(aControllerInfo.DisplayName())); sl@0: aDataWrapper.INFO_PRINTF2(_L("Controller Supplier = %S"), &(aControllerInfo.Supplier())); sl@0: aDataWrapper.INFO_PRINTF2(_L("Controller Format Uid = 0x%X"), aControllerInfo.Uid().iUid); sl@0: sl@0: // Print out Play Formats information sl@0: TInt index; sl@0: sl@0: const RMMFFormatImplInfoArray& playFormatArray = aControllerInfo.PlayFormats(); sl@0: for ( index=0; indexDes(); sl@0: bufferPtr.Copy(fileext[index]); // Create a 16 bit copy of the 8 bit original sl@0: aDataWrapper.INFO_PRINTF3(_L(" Supported file extension [%d]: %S"), index, &bufferPtr); sl@0: CleanupStack::PopAndDestroy(buffer); sl@0: } sl@0: sl@0: const CDesC8Array& mimetypes=aFormatInfo.SupportedMimeTypes(); sl@0: for ( index=0; indexDes(); sl@0: bufferPtr.Copy(mimetypes[index]); // Create a 16 bit copy of the 8 bit original sl@0: aDataWrapper.INFO_PRINTF3(_L(" Supported mime type [%d]: %S"), index, &bufferPtr); sl@0: CleanupStack::PopAndDestroy(buffer); sl@0: } sl@0: sl@0: const CDesC8Array& headerdata=aFormatInfo.SupportedHeaderData(); sl@0: for ( index=0; indexDes(); sl@0: bufferPtr.Copy(headerdata[index]); // Create a 16 bit copy of the 8 bit original sl@0: aDataWrapper.INFO_PRINTF3(_L(" Supported header data [%d]: %S"), index, &bufferPtr); sl@0: CleanupStack::PopAndDestroy(buffer); sl@0: } sl@0: }