diff -r 02682e02e51f -r 92cfb77afb61 serviceproviders/sapi_sysinfo/sysinfoservice/src/sysinfoservice.cpp --- a/serviceproviders/sapi_sysinfo/sysinfoservice/src/sysinfoservice.cpp Mon Jan 18 21:02:57 2010 +0200 +++ b/serviceproviders/sapi_sysinfo/sysinfoservice/src/sysinfoservice.cpp Tue Feb 02 00:45:40 2010 +0200 @@ -444,7 +444,7 @@ User::LeaveIfError(RProperty::Get(KPSUidNetworkInfo, KNWRegistrationStatus,status)); } - else if( !aKey.CompareF(KNetworkMode) ) + else if( !aKey.CompareF(SysInfo::KNetworkMode) ) { User::LeaveIfError(RProperty::Get(KPSUidNetworkInfo, KNWTelephonyNetworkMode,status)); @@ -579,6 +579,28 @@ featureID = KFeatureIdSideVolumeKeys; else if( !aKey.CompareF(KVibra) ) featureID = KFeatureIdVibra; + else if( !aKey.CompareF(KVideoDecoder) ) + { + MMMFDevVideoPlayObserverImpl obsImpl; + RArray aDecoders; + CMMFDevVideoPlay *videoPlay=CMMFDevVideoPlay::NewL(obsImpl); + //place object on cleanupstack. + CleanupStack::PushL(videoPlay); + + videoPlay->GetDecoderListL(aDecoders); + CVideoDecDataList *decDataList=CVideoDecDataList::NewL(); + for(int i=0;iVideoDecoderInfoLC(aDecoders[i]); + CVideoDecDataList::CVideoDecData *data=new CVideoDecDataList::CVideoDecData(decoderInfo->Manufacturer(),decoderInfo->Identifier(),decoderInfo->MaxBitrate(),decoderInfo->Accelerated(),decoderInfo->Version().Name()); + decDataList->AppendL(data); + CleanupStack::PopAndDestroy(decoderInfo); + } + + aSysData = decDataList; + CleanupStack::PopAndDestroy(videoPlay); + return; + } else User::Leave(KErrNotFound); @@ -667,6 +689,48 @@ } aSysData = CStringData::NewL(FormatedMacAddress); } + else if( !aKey.CompareF(KWirelessConnSupport) ) + { + CDesCArray* connTypesDesArray; + connTypesDesArray = new (ELeave) CDesCArrayFlat(4); + CleanupStack::PushL(connTypesDesArray); + + //Initialize the feature manager if not already done. + if (!iFeatureManagerInitialized) + { + FeatureManager::InitializeLibL(); + iFeatureManagerInitialized = ETrue; + } + + if(FeatureManager::FeatureSupported(KFeatureIdBt)) + { + connTypesDesArray->AppendL(KBT); + } + if(FeatureManager::FeatureSupported(KFeatureIdIrda)) + { + connTypesDesArray->AppendL(KIrda); + } + if(FeatureManager::FeatureSupported(KFeatureIdProtocolWlan)) + { + connTypesDesArray->AppendL(KWlan); + } + if(FeatureManager::FeatureSupported(KFeatureIdProtocolGsm)) + { + connTypesDesArray->AppendL(KGsm); + } + if(FeatureManager::FeatureSupported(KFeatureIdProtocolWcdma)) + { + connTypesDesArray->AppendL(KWcdma); + } + if(FeatureManager::FeatureSupported(KFeatureIdProtocolCdma)) + { + connTypesDesArray->AppendL(KCdma); + } + + //connTypesDesArray ownership passed to CStringList. + aSysData = CStringList::NewL(connTypesDesArray); + CleanupStack::Pop(connTypesDesArray); + } else User::Leave(KErrNotFound); }