# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1284494348 -10800 # Node ID 5146369cfdc95d5ea722ce5aadbfcb6667fa8bac # Parent a9c0808a10954079cd8b519a4ed97d7f75cf7ad8 Revision: 201033 Kit: 201035 diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/appmanagerservice/group/appmanagerservice.mmp --- a/serviceproviders/sapi_applicationmanager/appmanagerservice/group/appmanagerservice.mmp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/appmanagerservice/group/appmanagerservice.mmp Tue Sep 14 22:59:08 2010 +0300 @@ -72,7 +72,7 @@ LIBRARY sisregistryclient.lib LIBRARY ws32.lib LIBRARY cone.lib -LIBRARY efsrv.lib +LIBRARY efsrv.lib commonui.lib paged diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/appmanagerservice/inc/appmanagercommon.h --- a/serviceproviders/sapi_applicationmanager/appmanagerservice/inc/appmanagercommon.h Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/appmanagerservice/inc/appmanagercommon.h Tue Sep 14 22:59:08 2010 +0300 @@ -32,6 +32,7 @@ _LIT(KForeground ,"Foreground"); _LIT(KStandalone,"Standalone"); +_LIT(KChained,"Chained"); /** * This is an interface class which provides the information about the installed application or package as per * content type. @@ -291,4 +292,4 @@ EAppCancel = 0x1 }; -#endif \ No newline at end of file +#endif diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/appmanagerservice/inc/launcher.h --- a/serviceproviders/sapi_applicationmanager/appmanagerservice/inc/launcher.h Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/appmanagerservice/inc/launcher.h Tue Sep 14 22:59:08 2010 +0300 @@ -24,7 +24,7 @@ class RApaLsSession; class CLauncherObserver; class TDocument; - +class CDocumentHandler; /** * This Class provides the core functionality of launching @@ -73,7 +73,17 @@ const TDesC8& aMimeType, const TOptions& aProperties , TDesC& aFileName ); - + + /** + * This function Launch the Given Document. This function is written to support the requirement of webtv widget . + * This is applicable only to synchronous chained mode version of launchdocument. + * succeed. + * @since Series60 v3.2 + * @param aCriteria Document to be launch + * + */ + + void LaunchDocumentL( TDocument& aCriteria ); /** * Destructor @@ -128,7 +138,8 @@ */ RApaLsSession& iApaLsSession; - + CDocumentHandler* iDocHandler; // this handler wiil be created only in the chained mode and destroyed in dtor. + }; -#endif __LAUNCHER_H \ No newline at end of file +#endif __LAUNCHER_H diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/appmanagerservice/src/appmanagerservice.cpp --- a/serviceproviders/sapi_applicationmanager/appmanagerservice/src/appmanagerservice.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/appmanagerservice/src/appmanagerservice.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -121,7 +121,14 @@ { //Synchronous call __UHEAP_MARK; - iLauncher->LaunchDocumentL( aCriteria, aMimeType, aOptions, aFileName); + if( 0 == aOptions.iMode.CompareF( KChained ) ) + { + iLauncher->LaunchDocumentL( aCriteria ); + } + else + { + iLauncher->LaunchDocumentL( aCriteria, aMimeType, aOptions, aFileName); + } __UHEAP_MARKEND; } else diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/appmanagerservice/src/launcher.cpp --- a/serviceproviders/sapi_applicationmanager/appmanagerservice/src/launcher.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/appmanagerservice/src/launcher.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -25,14 +25,15 @@ #include #include #include -//#include +#include #include "launcher.h" #include "launcherobserver.h" #include "appmanagerservice.h" + _LIT(KBackground ,"Background"); -_LIT(KChained,"Chained"); +//_LIT(KChained,"Chained"); _LIT(KScheme,"s60uid://0x"); const TInt KDocMaxDigitsInHexString = 8; // 32 bits. @@ -151,7 +152,19 @@ return threadNotUsed; } - + // ----------------------------------------------------------------------------- + // CLauncher::LaunchDocumentL + // This function Launch the Given Document in synchronous chained mode + // ----------------------------------------------------------------------------- + void CLauncher::LaunchDocumentL( TDocument& aCriteria ) + { + if( !iDocHandler ) + { + iDocHandler = CDocumentHandler::NewL(); + } + TDataType dataType; + User::LeaveIfError(iDocHandler->OpenFileEmbeddedL(aCriteria.iPath, dataType)); + } // ----------------------------------------------------------------------------- // CLauncher::LaunchDocumentL // This function Launch the Given Document @@ -400,7 +413,10 @@ CLauncher::~CLauncher( ) { - + if( iDocHandler ) + { + delete iDocHandler; + } } diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/group/appmanagerprovider.mmp --- a/serviceproviders/sapi_applicationmanager/group/appmanagerprovider.mmp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/group/appmanagerprovider.mmp Tue Sep 14 22:59:08 2010 +0300 @@ -70,6 +70,7 @@ LIBRARY platformenv.lib LIBRARY ecom.lib -LIBRARY appmanagerservice.lib +LIBRARY appmanagerservice.lib bafl.lib + paged diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_applicationmanager/src/appmanagerinterface.cpp --- a/serviceproviders/sapi_applicationmanager/src/appmanagerinterface.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_applicationmanager/src/appmanagerinterface.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -22,7 +22,7 @@ #include #include #include - +#include #include "appmanagerinterface.h" #include "appmanagerservice.h" #include "appitemslist.h" @@ -74,6 +74,11 @@ _LIT8(KTransactionID,"TransactionID"); +_LIT(KRtspPrefix,"rtsp://"); +_LIT(KTempFile, "c:\\system\\temp\\tempvideo.ram"); +_LIT(KTempPath, "c:\\system\\temp\\"); +_LIT8(KRamMime, "application/ram"); + // ----------------------------------------------------------------------------- // CAppManagerInterface::NewLC @@ -96,6 +101,13 @@ // ----------------------------------------------------------------------------- CAppManagerInterface::~CAppManagerInterface() { + RFs fs; + User::LeaveIfError(fs.Connect()); + if( BaflUtils::FileExists(fs,KTempFile) ) + { + BaflUtils::DeleteFile(fs,KTempFile); + } + fs.Close() ; //Release the instance of core class delete iCoreClass; iCoreClass = NULL; @@ -980,6 +992,27 @@ TPtr8 mimetype8( heapBuffer->Des() ); mimetype8.Copy( mimetype ); TPtrC filename; + // RTSP handling + if( ! document.iPath.Left(KRtspPrefix().Length()).CompareF(KRtspPrefix) ) + { + RFs fs; + User::LeaveIfError(fs.Connect()); + RFile file; + fs.MkDir( KTempPath ); + file.Replace( fs, KTempFile, EFileWrite | EFileStreamText ); + HBufC8 *tempPath = HBufC8::NewLC( document.iPath.Length() ); + tempPath->Des().Copy( document.iPath ); + file.Write( *tempPath ); + document.iPath.Set( KTempFile ); + file.Close(); + fs.Close(); + HBufC8 *tempMime; + tempMime = KRamMime().AllocLC(); + mimetype8.Set( tempMime->Des() ); + CleanupStack::PopAndDestroy( tempMime ); + CleanupStack::PopAndDestroy( tempPath ); + } + if( aCallBack ) { diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_sysinfo/src/sysinfointerface.cpp --- a/serviceproviders/sapi_sysinfo/src/sysinfointerface.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_sysinfo/src/sysinfointerface.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -668,250 +668,253 @@ aOutMapParam = CLiwDefaultMap::NewL(); CleanupClosePushL(*aOutMapParam); TInt count = 0; - switch (aInSysData->DataType()) + if(aInSysData) { - case CSysData::EStatus: - { - TInt32 status = ((CStatus*) aInSysData)->Status(); - aOutMapParam->InsertL(KStatus,(TInt32)status); - } - break; - case CSysData::EVersion: - { - TBuf majortxt(KNullDesC); - TBuf minortxt(KNullDesC); - majortxt.FillZ(0); - minortxt.FillZ(0); - const CVersion* version = (CVersion*) aInSysData; - NumberConversion::AppendFormatNumber (majortxt, - version->MajorVersion(),EDigitTypeWestern); - aOutMapParam->InsertL(KMajorVersion,majortxt); - NumberConversion::AppendFormatNumber (minortxt, - version->MinorVersion(),EDigitTypeWestern); - aOutMapParam->InsertL(KMinorVersion,minortxt); - } - break; - case CSysData::EConnectionList: - { - CConnectionList* dataconnections = (CConnectionList*) aInSysData; - CSysInfoConnList* connlist = CSysInfoConnList::NewL(dataconnections); - CleanupClosePushL(*connlist); - aOutMapParam->InsertL(KConnectionList,connlist); - CleanupStack::PopAndDestroy(connlist); - } - break; - case CSysData::ENetworkInfo: - { - const CNetworkInfo* networkinfo = (CNetworkInfo*) aInSysData; - aOutMapParam->InsertL(KNetworkName,networkinfo->NetworkName()); - aOutMapParam->InsertL(KNetworkStatus, - (TInt32)networkinfo->NetworkStatus()); - aOutMapParam->InsertL(KNetworkMode,(TInt32)networkinfo->NetworkMode()); - aOutMapParam->InsertL(KCountryCode,networkinfo->CountryCode()); - aOutMapParam->InsertL(KNetworkCode,networkinfo->NetworkCode()); - aOutMapParam->InsertL(KLocationStatus, - networkinfo->ValidLocationAreaCode()); - aOutMapParam->InsertL(KAreaCode,(TInt32)networkinfo->LocationAreaCode()); - aOutMapParam->InsertL(KCellId,(TInt32)networkinfo->CellId()); - } - break; - case CSysData::EConnectionInfo: - { - const CConnectionInfo* connectioninfo = - ((CConnectionInfo*) aInSysData); - aOutMapParam->InsertL(KIAPID,(TInt32)connectioninfo->IAPId()); - aOutMapParam->InsertL(KIAPName,connectioninfo->IAPName()); - aOutMapParam->InsertL(KIAPConnectionName, - connectioninfo->ConnectionName()); - aOutMapParam->InsertL(KNetworkName,connectioninfo->NetworkName()); - aOutMapParam->InsertL(KConnectionType, - (TInt32)connectioninfo->BearerType()); - aOutMapParam->InsertL(KConnectionStatus, - (TInt32)connectioninfo->ConnectionState()); - } - break; - case CSysData::EDriveInfo: + switch (aInSysData->DataType()) { - const CDriveInfo* driveinfo = (CDriveInfo*) aInSysData; - - TBuf drive; - drive.FillZ(); - drive.Append('A'+driveinfo->DriveNumber()); - drive.Append(KDriveSeperator); - - aOutMapParam->InsertL(KDriveNo,drive); - aOutMapParam->InsertL(KCriticalSpace, - (TInt32)driveinfo->CriticalSpace()); - aOutMapParam->InsertL(KMediaType,(TInt32)driveinfo->MediaType()); - //totalspace and freespace converted to string . - TBuf string64bitnum(KNullDesC); - string64bitnum.FillZ(0); - string64bitnum.Num(driveinfo->TotalSpace()); - aOutMapParam->InsertL(KTotalSpace,string64bitnum); - string64bitnum.FillZ(0); - string64bitnum.Num(driveinfo->FreeSpace()); - aOutMapParam->InsertL(KFreeSpace,string64bitnum); - TPtrC drvname; - driveinfo->DriveName(drvname); - aOutMapParam->InsertL(KDriveName,drvname); - aOutMapParam->InsertL(KBatteryState,(TInt32)driveinfo->BatteryState()); - } - break; - - case CSysData::EAccessoryInfo: - { - const CAccessoryInfo* accessoryinfo = ((CAccessoryInfo*) aInSysData); - aOutMapParam->InsertL(KAccessoryType, - (TInt32)accessoryinfo->AccessoryType()); - aOutMapParam->InsertL(KAccessoryState, - (TInt32)accessoryinfo->ConnectionState()); - } - break; - case CSysData::EResolution: - { - const CResolution* resolution = ((CResolution*) aInSysData); - aOutMapParam->InsertL(KXPixels,(TInt32)resolution->XPixels()); - aOutMapParam->InsertL(KYPixels,(TInt32)resolution->YPixels()); - } - break; - case CSysData::EStringData: - { - const CStringData* stringdata = ((CStringData*) aInSysData); - TPtrC string; - stringdata->StringData(string); - aOutMapParam->InsertL(KStringData,string); - } - break; - case CSysData::EAccessoryList: - { - CAccList* accessories = (CAccList*) aInSysData; - CSysInfoAccList* accessorylist = CSysInfoAccList::NewL(accessories); - CleanupClosePushL(*accessorylist); - aOutMapParam->InsertL(KAccessoryList,accessorylist); - CleanupStack::PopAndDestroy(accessorylist); - } - break; - case CSysData::ELanguageList: - { - CLiwList* langlist = CLiwDefaultList::NewL(); - CleanupClosePushL(*langlist); - const CLanguageList* languages = ((CLanguageList*) aInSysData); - count= languages->Count(); - for(int index=0; indexStatus(); + aOutMapParam->InsertL(KStatus,(TInt32)status); + } + break; + case CSysData::EVersion: + { + TBuf majortxt(KNullDesC); + TBuf minortxt(KNullDesC); + majortxt.FillZ(0); + minortxt.FillZ(0); + const CVersion* version = (CVersion*) aInSysData; + NumberConversion::AppendFormatNumber (majortxt, + version->MajorVersion(),EDigitTypeWestern); + aOutMapParam->InsertL(KMajorVersion,majortxt); + NumberConversion::AppendFormatNumber (minortxt, + version->MinorVersion(),EDigitTypeWestern); + aOutMapParam->InsertL(KMinorVersion,minortxt); + } + break; + case CSysData::EConnectionList: + { + CConnectionList* dataconnections = (CConnectionList*) aInSysData; + CSysInfoConnList* connlist = CSysInfoConnList::NewL(dataconnections); + CleanupClosePushL(*connlist); + aOutMapParam->InsertL(KConnectionList,connlist); + CleanupStack::PopAndDestroy(connlist); + } + break; + case CSysData::ENetworkInfo: { - TInt language = 0; - languages->At(index,language); - langlist->AppendL(TLiwVariant(((TInt32)language))); + const CNetworkInfo* networkinfo = (CNetworkInfo*) aInSysData; + aOutMapParam->InsertL(KNetworkName,networkinfo->NetworkName()); + aOutMapParam->InsertL(KNetworkStatus, + (TInt32)networkinfo->NetworkStatus()); + aOutMapParam->InsertL(KNetworkMode,(TInt32)networkinfo->NetworkMode()); + aOutMapParam->InsertL(KCountryCode,networkinfo->CountryCode()); + aOutMapParam->InsertL(KNetworkCode,networkinfo->NetworkCode()); + aOutMapParam->InsertL(KLocationStatus, + networkinfo->ValidLocationAreaCode()); + aOutMapParam->InsertL(KAreaCode,(TInt32)networkinfo->LocationAreaCode()); + aOutMapParam->InsertL(KCellId,(TInt32)networkinfo->CellId()); } - aOutMapParam->InsertL(KLanguageList,langlist); - CleanupStack::PopAndDestroy(langlist); - } - break; - - case CSysData::EDriveList: - { - CLiwList* drivelist = CLiwDefaultList::NewL(); - CleanupClosePushL(*drivelist); - const CDriveList* drives = ((CDriveList*) aInSysData); - count = drives->Count(); - for(int index=0; indexAt(index,driveVal); + const CConnectionInfo* connectioninfo = + ((CConnectionInfo*) aInSysData); + aOutMapParam->InsertL(KIAPID,(TInt32)connectioninfo->IAPId()); + aOutMapParam->InsertL(KIAPName,connectioninfo->IAPName()); + aOutMapParam->InsertL(KIAPConnectionName, + connectioninfo->ConnectionName()); + aOutMapParam->InsertL(KNetworkName,connectioninfo->NetworkName()); + aOutMapParam->InsertL(KConnectionType, + (TInt32)connectioninfo->BearerType()); + aOutMapParam->InsertL(KConnectionStatus, + (TInt32)connectioninfo->ConnectionState()); + } + break; + case CSysData::EDriveInfo: + { + const CDriveInfo* driveinfo = (CDriveInfo*) aInSysData; + TBuf drive; drive.FillZ(); - drive.Append('A'+driveVal); + drive.Append('A'+driveinfo->DriveNumber()); drive.Append(KDriveSeperator); - drivelist->AppendL(TLiwVariant(drive)); + + aOutMapParam->InsertL(KDriveNo,drive); + aOutMapParam->InsertL(KCriticalSpace, + (TInt32)driveinfo->CriticalSpace()); + aOutMapParam->InsertL(KMediaType,(TInt32)driveinfo->MediaType()); + //totalspace and freespace converted to string . + TBuf string64bitnum(KNullDesC); + string64bitnum.FillZ(0); + string64bitnum.Num(driveinfo->TotalSpace()); + aOutMapParam->InsertL(KTotalSpace,string64bitnum); + string64bitnum.FillZ(0); + string64bitnum.Num(driveinfo->FreeSpace()); + aOutMapParam->InsertL(KFreeSpace,string64bitnum); + TPtrC drvname; + driveinfo->DriveName(drvname); + aOutMapParam->InsertL(KDriveName,drvname); + aOutMapParam->InsertL(KBatteryState,(TInt32)driveinfo->BatteryState()); } - aOutMapParam->InsertL(KDriveList,drivelist); - CleanupStack::PopAndDestroy(drivelist); - } - break; - - case CSysData::EStringList: - { - CLiwList* stringlist = CLiwDefaultList::NewL(); - CleanupClosePushL(*stringlist); - CStringList* strings = ((CStringList*) aInSysData); - count = strings->Count(); - for(int index=0; indexInsertL(KAccessoryType, + (TInt32)accessoryinfo->AccessoryType()); + aOutMapParam->InsertL(KAccessoryState, + (TInt32)accessoryinfo->ConnectionState()); + } + break; + case CSysData::EResolution: + { + const CResolution* resolution = ((CResolution*) aInSysData); + aOutMapParam->InsertL(KXPixels,(TInt32)resolution->XPixels()); + aOutMapParam->InsertL(KYPixels,(TInt32)resolution->YPixels()); + } + break; + case CSysData::EStringData: + { + const CStringData* stringdata = ((CStringData*) aInSysData); TPtrC string; - strings->At(index,string); - stringlist->AppendL(TLiwVariant(string)); + stringdata->StringData(string); + aOutMapParam->InsertL(KStringData,string); + } + break; + case CSysData::EAccessoryList: + { + CAccList* accessories = (CAccList*) aInSysData; + CSysInfoAccList* accessorylist = CSysInfoAccList::NewL(accessories); + CleanupClosePushL(*accessorylist); + aOutMapParam->InsertL(KAccessoryList,accessorylist); + CleanupStack::PopAndDestroy(accessorylist); } - aOutMapParam->InsertL(KStringList,stringlist); - CleanupStack::PopAndDestroy(stringlist); - } - break; - case CSysData::ECameraInfo: - { - CLiwList* camResList = CLiwDefaultList::NewL(); - CleanupClosePushL( *camResList ); - CLiwList* camMimeTypesList = CLiwDefaultList::NewL(); - CleanupClosePushL( *camMimeTypesList ); - const CCameraInfo* camInfo = ((CCameraInfo*) aInSysData); - count = camInfo->ResolutionList()->Count(); - - for ( int index=0; indexCount(); + for(int index=0; indexAt(index,language); + langlist->AppendL(TLiwVariant(((TInt32)language))); + } + aOutMapParam->InsertL(KLanguageList,langlist); + CleanupStack::PopAndDestroy(langlist); + } + break; + + case CSysData::EDriveList: { - TInt val = 0; - CLiwMap* resMap = CLiwDefaultMap::NewL(); - CleanupStack::PushL( resMap ); - camInfo->ResolutionList()->At( index, 0, val ); - resMap->InsertL( KXPixels, (TInt32)val ); - camInfo->ResolutionList()->At( index, 1, val ); - resMap->InsertL( KYPixels, (TInt32)val ); - camResList->AppendL( resMap ); - CleanupStack::Pop( resMap ); - resMap->Close(); - TPtrC string; - camInfo->MimeTypesList()->At( index, string ); - camMimeTypesList->AppendL( string ); + CLiwList* drivelist = CLiwDefaultList::NewL(); + CleanupClosePushL(*drivelist); + const CDriveList* drives = ((CDriveList*) aInSysData); + count = drives->Count(); + for(int index=0; indexAt(index,driveVal); + TBuf drive; + drive.FillZ(); + drive.Append('A'+driveVal); + drive.Append(KDriveSeperator); + drivelist->AppendL(TLiwVariant(drive)); + } + aOutMapParam->InsertL(KDriveList,drivelist); + CleanupStack::PopAndDestroy(drivelist); + } + break; + + case CSysData::EStringList: + { + CLiwList* stringlist = CLiwDefaultList::NewL(); + CleanupClosePushL(*stringlist); + CStringList* strings = ((CStringList*) aInSysData); + count = strings->Count(); + for(int index=0; indexAt(index,string); + stringlist->AppendL(TLiwVariant(string)); + } + aOutMapParam->InsertL(KStringList,stringlist); + CleanupStack::PopAndDestroy(stringlist); } - aOutMapParam->InsertL( KCamResList, camResList ); - aOutMapParam->InsertL( KCamMimeTypesList, camMimeTypesList ); - CleanupStack::PopAndDestroy( camMimeTypesList ); - CleanupStack::PopAndDestroy( camResList ); + break; + case CSysData::ECameraInfo: + { + CLiwList* camResList = CLiwDefaultList::NewL(); + CleanupClosePushL( *camResList ); + CLiwList* camMimeTypesList = CLiwDefaultList::NewL(); + CleanupClosePushL( *camMimeTypesList ); + const CCameraInfo* camInfo = ((CCameraInfo*) aInSysData); + count = camInfo->ResolutionList()->Count(); + + for ( int index=0; indexResolutionList()->At( index, 0, val ); + resMap->InsertL( KXPixels, (TInt32)val ); + camInfo->ResolutionList()->At( index, 1, val ); + resMap->InsertL( KYPixels, (TInt32)val ); + camResList->AppendL( resMap ); + CleanupStack::Pop( resMap ); + resMap->Close(); + TPtrC string; + camInfo->MimeTypesList()->At( index, string ); + camMimeTypesList->AppendL( string ); + } + aOutMapParam->InsertL( KCamResList, camResList ); + aOutMapParam->InsertL( KCamMimeTypesList, camMimeTypesList ); + CleanupStack::PopAndDestroy( camMimeTypesList ); + CleanupStack::PopAndDestroy( camResList ); + } + break; + case CSysData::EVideoDecList: + { + CLiwList* decResList = CLiwDefaultList::NewL(); + CleanupClosePushL( *decResList ); + const CVideoDecDataList* declist = ((CVideoDecDataList*) aInSysData); + count = declist->Count(); + CVideoDecDataList::CVideoDecData * decinfo = NULL; + + for ( int index=0; indexManufacturer)); + TPtrC temp1; + temp1.Set(*(decinfo->Identifier)); + + resMap->InsertL( KDecManufacturer, temp ); + resMap->InsertL( KIdentifier, temp1 ); + resMap->InsertL( KMaxBitrate, (TInt32)decinfo->MaxBitrate ); + resMap->InsertL( KAccelerated, (TBool)decinfo->Accelerated ); + resMap->InsertL( KVersion, decinfo->Version ); + + decResList->AppendL( resMap ); + CleanupStack::Pop( resMap ); + resMap->Close(); + } + aOutMapParam->InsertL( KCapability, decResList ); + CleanupStack::PopAndDestroy( decResList ); + //aOutMapParam->InsertL( KCapability, 1 ); + } + break; + default: + User::Leave(KErrArgument); } - break; - case CSysData::EVideoDecList: - { - CLiwList* decResList = CLiwDefaultList::NewL(); - CleanupClosePushL( *decResList ); - const CVideoDecDataList* declist = ((CVideoDecDataList*) aInSysData); - count = declist->Count(); - CVideoDecDataList::CVideoDecData * decinfo = NULL; - - for ( int index=0; indexManufacturer)); - TPtrC temp1; - temp1.Set(*(decinfo->Identifier)); - - resMap->InsertL( KDecManufacturer, temp ); - resMap->InsertL( KIdentifier, temp1 ); - resMap->InsertL( KMaxBitrate, (TInt32)decinfo->MaxBitrate ); - resMap->InsertL( KAccelerated, (TBool)decinfo->Accelerated ); - resMap->InsertL( KVersion, decinfo->Version ); - - decResList->AppendL( resMap ); - CleanupStack::Pop( resMap ); - resMap->Close(); - } - aOutMapParam->InsertL( KCapability, decResList ); - CleanupStack::PopAndDestroy( decResList ); - //aOutMapParam->InsertL( KCapability, 1 ); - } - break; - default: - User::Leave(KErrArgument); } CleanupStack::Pop(aOutMapParam); } diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_sysinfo/src/sysinfoobserver.cpp --- a/serviceproviders/sapi_sysinfo/src/sysinfoobserver.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_sysinfo/src/sysinfoobserver.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -96,10 +96,12 @@ eventParamList->AppendL(TLiwGenericParam(KErrorCode,TLiwVariant((TInt32)SapiErr))); CLiwMap* outparam=NULL; - if( (aOutput->DataType() == CSysData::EAccessoryList) || - (aOutput->DataType() == CSysData::EConnectionList) ) - ownership = ETrue; - + if(aOutput) + { + if( (aOutput->DataType() == CSysData::EAccessoryList) || + (aOutput->DataType() == CSysData::EConnectionList) ) + ownership = ETrue; + } CSysInfoInterface::ConvertSysData2AiwParamL(aOutput,outparam); //Add Entity and Key to the output map. if(outparam) diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_sysinfo/sysinfoservice/src/activestore.cpp --- a/serviceproviders/sapi_sysinfo/sysinfoservice/src/activestore.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_sysinfo/sysinfoservice/src/activestore.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -106,6 +106,12 @@ else if( (!Key.CompareF(SysInfo::KConnectionStatus)) && (aSysRequest.RequestType() == TSysRequest::ENotification) ) aActiveObj = CConnection::NewL(aSysRequest); + else if( (!Key.CompareF(SysInfo::KConnectionStatus)) && (aSysRequest.RequestType() == TSysRequest::EASyncONESHOT) ){ + TSysRequest systemRequest(aSysRequest.Entity(),SysInfo::KActiveConnections,aSysRequest.SystemData(),aSysRequest.TransactionID(),aSysRequest.Observer(), + TSysRequest::EASyncONESHOT); + aActiveObj = CConnection::NewL(systemRequest); + } + else User::Leave(KErrNotFound); } diff -r a9c0808a1095 -r 5146369cfdc9 serviceproviders/sapi_sysinfo/sysinfoservice/src/sysconnectionrequest.cpp --- a/serviceproviders/sapi_sysinfo/sysinfoservice/src/sysconnectionrequest.cpp Wed Sep 01 12:28:47 2010 +0100 +++ b/serviceproviders/sapi_sysinfo/sysinfoservice/src/sysconnectionrequest.cpp Tue Sep 14 22:59:08 2010 +0300 @@ -164,14 +164,23 @@ TInt32 transId = this->TransactionID(); iReadConnectionInfo = NULL; - if(TSysRequest::ENotification == RequestType()) + if(TSysRequest::ENotification == RequestType() ) { - iConnectionInfoArray.AppendL(aInfo); - if( !iConnectionInit ) + if(!error) { - CConnectionInfo* conninfo = aInfo->CopyL(); + iConnectionInfoArray.AppendL(aInfo); + if( !iConnectionInit ) + { + CConnectionInfo* conninfo = aInfo->CopyL(); + TRAP_IGNORE(SystemObserver()->HandleResponseL(*iEntity, *iKey, + conninfo, transId, RequestType(), error)); + } + } + else + { TRAP_IGNORE(SystemObserver()->HandleResponseL(*iEntity, *iKey, - conninfo, transId, RequestType(), error)); + NULL, transId, RequestType(), error)); + } } else @@ -238,6 +247,7 @@ { TUint connectionId =0; CReadConnectionInfo* rdConnectionInfo = NULL; + switch( aEvent.EventType() ) { case EConnMonCreateConnection: @@ -355,7 +365,7 @@ TInt error(iStatus.Int()); if(error >= KErrNone) - { + { switch(iState) { case EInitial: