# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1276254293 -10800 # Node ID 2ee890d2f7e76e17b71d06f02da8b98105f1eb76 # Parent edd273b3192acfe75cf1e71a367897c7337ec495 Revision: 201021 Kit: 2010123 diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp --- a/mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -166,11 +166,7 @@ MPX_DEBUG3("CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d", usbStatus, mtpStatus); MPX_DEBUG2("CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d", iState); MPX_DEBUG4("CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)", iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured); - - RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d"), usbStatus, mtpStatus); - RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d"), iState); - RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)"), iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured); - + // events from lower level is not causing multiple callback on the same type // usb is really only connected if went through Address or Configured state if( (usbStatus == KUsbPersonalityIdMS) && (iDeviceState == EUsbDeviceStateAddress || iDeviceState == EUsbDeviceStateConfigured)) @@ -178,7 +174,6 @@ if ((iState == EMPXConnectionMTPIdle) || (iState == EMPXConnectionMTPActive)) { MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End"); - RDebug::Print(_L("tpoon: MTP End")); iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 ); iState = EMPXConnectionNone; } @@ -193,7 +188,6 @@ if (usbStatus != KUsbPersonalityIdMS) { MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - USB MassStorage End"); - RDebug::Print(_L("tpoon: MS End")); iObserver.HandleSystemEventL( EUSBMassStorageEndEvent, -1 ); iState = EMPXConnectionNone; } @@ -205,7 +199,6 @@ if ((mtpStatus == EMtpPSStatusUninitialized) && (iState != EMPXConnectionNone)) { MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End"); - RDebug::Print(_L("tpoon: MTP End")); iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 ); iState = EMPXConnectionNone; } @@ -224,7 +217,6 @@ void CMPXConnectionEventHandler::DoMSStartEventL() { MPX_DEBUG1("CMPXConnectionEventHandler::DoMSStartEventL - USB MassStorage Start"); - RDebug::Print(_L("tpoon: MS Start")); iObserver.HandleSystemEventL( EUSBMassStorageStartEvent, -1 ); iState = EMPXConnectionMassStorage; } @@ -232,7 +224,6 @@ void CMPXConnectionEventHandler::DoMTPStartEventL() { MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPStartEventL - MTP Start"); - RDebug::Print(_L("tpoon: MTP Start")); iObserver.HandleSystemEventL( EUSBMTPStartEvent, -1 ); iState = EMPXConnectionMTPActive; } @@ -240,7 +231,6 @@ void CMPXConnectionEventHandler::DoMTPNotActiveEventL() { MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPNotActiveEventL - MTP Not Active"); - RDebug::Print(_L("tpoon: MTP Not Active")); iObserver.HandleSystemEventL( EUSBMTPNotActiveEvent, -1 ); iState = EMPXConnectionMTPIdle; } diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/harvester/server/src/mpxharvesterserver.cpp --- a/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -71,9 +71,9 @@ CMPXHarvesterServer* server = CMPXHarvesterServer::NewL(); CleanupStack::PushL(server); RProcess::Rendezvous(KErrNone); - CActiveScheduler::Start(); + CActiveScheduler::Start(); + CleanupStack::PopAndDestroy(server); CActiveScheduler::Install(NULL); - CleanupStack::PopAndDestroy(server); CleanupStack::PopAndDestroy(scheduler); } diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h --- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h Fri Jun 11 14:04:53 2010 +0300 @@ -51,7 +51,7 @@ * @param aCategory, indicate the category of abstract medias */ IMPORT_C void GetAllAbstractMediaL( const TDesC& aStoreRoot, - CMPXMediaArray** aAbstractMedias, + CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory ); /** @@ -59,18 +59,10 @@ * @param aAbstractMedia, specify of which reference should be get * @param aReferences, return result array which stored handles of all references */ - IMPORT_C void GetAllReferenceL( CMPXMedia* aAbstractMedia, + IMPORT_C void GetAllReferenceL( const CMTPObjectMetaData& aRefOwner, CDesCArray& aReferences ); /** - * Get an abstract media name from CMPXMedia object - * @param aAbstractMedia, specify the source - * @param aCategory, specify the category - * @return, name of the source, ownership transferred - */ - IMPORT_C HBufC* GetAbstractMediaNameL( CMPXMedia* aAbstractMedia, - TMPXGeneralCategory aCategory ); - /** * Add object (music, video, playlist and abstract album) info to DB * @param aFullFileName, full file name of file * @return void diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h --- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h Fri Jun 11 14:04:53 2010 +0300 @@ -72,7 +72,7 @@ * @param aCategory, indicate the category of abstract medias */ void GetAllAbstractMediaL( const TDesC& aStoreRoot, - CMPXMediaArray** aAbstractMedias, + CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory ); /** @@ -80,19 +80,11 @@ * @param aAbstractMedia, specify of which reference should be get * @param aReferences, return result array which stored handles of all references */ - void GetAllReferenceL( CMPXMedia* aAbstractMedia, + void GetAllReferenceL( const TDesC& aRefOwnerSuid, + TMPXGeneralCategory aCategory, CDesCArray& aReferences ); /** - * Get an abstract media name from CMPXMedia object - * @param aAbstractMedia, specify the source - * @param aCategory, specify the category - * @return, name of the source, ownership transferred - */ - HBufC* GetAbstractMediaNameL( CMPXMedia* aAbstractMedia, - TMPXGeneralCategory aCategory ); - - /** * Adds Songs info to Mpx DB * @param aFullFileName, full file name of Media file */ @@ -215,6 +207,8 @@ MMPXCollectionHelper* iCollectionHelper; HBufC8* iSampleData; + TBool iHasCleanUp; + #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) CMmMtpDpPerfLog* iPerfLog; #endif diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h Fri Jun 11 14:04:53 2010 +0300 @@ -104,13 +104,12 @@ * @param aPath current scanned file path */ void AddEntryL( const TDesC& aSuid ); - + /** - * Add references of specified abstract media into reference db - * @param aAbstractMediaName, specify the abstract media of which references should be added into db - * @param aReferences, suid array which stored references + * reset Object's format sub code in object manager */ - void AddReferencesL( const TDesC& aAbstractMediaName, CDesCArray& aReferences ); + void ResetObjectFormatSubCodeL( TUint32 aStorageId ); + private: // Owned @@ -129,11 +128,13 @@ RArray iStorages; TUint32 iStorageId; - CMPXMediaArray* iAbstractMedias; + CDesCArray* iAbstractMedias; TInt iCount; TInt iCurrentIndex; TInt iEnumState; - + + TInt iResetCount; + #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) CMmMtpDpPerfLog* iPerfLog; #endif diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -39,11 +40,9 @@ #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) _LIT( KMpxGetAllAbstractMedia, "MpxGetAllAbstractMedia" ); -_LIT( KMpxQueryAbstractMediaReference, "MpxQueryAbstractMediaReference" ); _LIT( KObjectManagerObjectUid, "ObjectManagerObjectUid" ); _LIT( KObjectManagerInsert, "ObjectManagerInsert" ); -_LIT( KObjectManagerHandle, "ObjectManagerHandle" ); -_LIT( KReferenceManagerSetReference, "ReferenceManagerSetReference" ); +_LIT( KResetObjectFormatSubCode, "ResetObjectFormatSubCode" ); #endif // ----------------------------------------------------------------------------- @@ -80,7 +79,8 @@ iAbstractMedias( NULL ), iCount( 0 ), iCurrentIndex( 0 ), - iEnumState ( EEnumNone ) + iEnumState ( EEnumNone ), + iResetCount( 0 ) { PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::CAbstractMediaMtpDataProviderEnumerator, iDataProviderId = %d" ), iDataProviderId ); } @@ -200,7 +200,7 @@ __ASSERT_DEBUG( ( storage.Uint( CMTPStorageMetaData::EStorageSystemType ) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem ), User::Invariant() ); - TFileName root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); + TPtrC root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::InitStorageL StorageSuid = %S" ), &root ); if ( iEnumState == EEnumPlaylist ) @@ -238,9 +238,10 @@ // find all abstract medias stored in MPX delete iAbstractMedias; iAbstractMedias = NULL; + iAbstractMedias = new( ELeave ) CDesCArrayFlat( KMTPDriveGranularity ); TMPXGeneralCategory category = ( iEnumState == EEnumPlaylist ) ? EMPXPlaylist : EMPXAbstractAlbum; PERFLOGSTART( KMpxGetAllAbstractMedia ); - TRAPD( err, iDataProvider.GetWrapperL().GetAllAbstractMediaL( root, &iAbstractMedias, category ) ); + TRAPD( err, iDataProvider.GetWrapperL().GetAllAbstractMediaL( root, *iAbstractMedias, category ) ); PERFLOGSTOP( KMpxGetAllAbstractMedia ); if ( iAbstractMedias != NULL && err == KErrNone ) @@ -273,6 +274,13 @@ if ( iEnumState >= EEnumCount ) { iEnumState = EEnumPlaylist; + iResetCount = 0; + + PERFLOGSTART( KResetObjectFormatSubCode ); + ResetObjectFormatSubCodeL( iStorages[0] ); + PERFLOGSTOP( KResetObjectFormatSubCode ); + + PRINT2( _L( "MM MTP <> ResetObjectFormatSubCodeL, storage = 0x%x, iResetCount = %d" ), iStorages[0], iResetCount ); iStorages.Remove( 0 ); } @@ -313,49 +321,28 @@ PRINT2( _L( "MM MTP <> Current storage is still being scanned, current index = %d, total AbstractMedia count = %d" ), iCurrentIndex, iCount ); - // insert all abstract medias into handle db of framework - CMPXMedia* media = ( *iAbstractMedias )[iCurrentIndex]; - // Increase the index first in case of leave - iCurrentIndex++; - TMPXGeneralCategory category = ( iEnumState == EEnumPlaylist ) ? EMPXPlaylist : EMPXAbstractAlbum; - HBufC* abstractMedia = iDataProvider.GetWrapperL().GetAbstractMediaNameL( media, category ); - CleanupStack::PushL( abstractMedia ); // + abstractMedia + // Insert all abstract medias into handle db of framework + iCurrentIndex++; // Increase the index first in case of leave + TPtrC entrySuid( ( *iAbstractMedias )[iCurrentIndex-1] ); - TBool ret = ETrue; if ( iEnumState == EEnumAbstractAlbum ) { // The abstract album may be removed, check it first - ret = BaflUtils::FileExists( iFramework.Fs(), *abstractMedia ); - PRINT2( _L( "MM MTP <> BaflUtils::FileExists( RFs,%S ) ret = %d" ), abstractMedia, ret ); + TBool ret = BaflUtils::FileExists( iFramework.Fs(), entrySuid ); + PRINT2( _L( "MM MTP <> BaflUtils::FileExists( RFs,%S ) ret = %d" ), &entrySuid, ret ); } else // EEnumPlaylist { // Add an object to the object store for DB based playlist - AddEntryL( *abstractMedia ); + AddEntryL( entrySuid ); } - if ( ret ) - { - PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunL abstractMedia=%S" ), abstractMedia ); - - // find all reference of each abstract media - CDesCArray* references = new ( ELeave ) CDesCArrayFlat( KMTPDriveGranularity ); - CleanupStack::PushL( references ); // + references - - PERFLOGSTART( KMpxQueryAbstractMediaReference ); - iDataProvider.GetWrapperL().GetAllReferenceL( media, *references ); - PERFLOGSTOP( KMpxQueryAbstractMediaReference ); - - // insert references into reference db - AddReferencesL( *abstractMedia, *references ); - - CleanupStack::PopAndDestroy( references ); // - references - } - CleanupStack::PopAndDestroy( abstractMedia ); // - abstractMedia + // Getting all reference during internal enumeration takes too long, query later on demand } ScanNextL(); + PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::RunL" ) ); } @@ -465,48 +452,40 @@ PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddEntryL" ) ); } -// ----------------------------------------------------------------------------- -// CAbstractMediaMtpDataProviderEnumerator::AddReferencesL -// Add references into reference db according to abstract media name -// ----------------------------------------------------------------------------- -// -void CAbstractMediaMtpDataProviderEnumerator::AddReferencesL( const TDesC& aAbstractMediaName, - CDesCArray& aReferences ) +void CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL( TUint32 aStorageId ) { - TInt count = aReferences.Count(); - PRINT2( _L("MM MTP => CAbstractMediaMtpDataProviderEnumerator::AddReferencesL AbstractMedia name = %S, ref count = %d"), &aAbstractMediaName, count ); - - // check if references are valid - CMTPObjectMetaData* object = CMTPObjectMetaData::NewLC(); // + object - MMTPObjectMgr& objectMgr = iFramework.ObjectMgr(); + PRINT1( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL, StorageId = 0x%x" ), + aStorageId ); + RMTPObjectMgrQueryContext context; + RArray handles; + CleanupClosePushL( context ); // + context + CleanupClosePushL( handles ); // + handles + + // search all handles in desired storage with desired DP id + TMTPObjectMgrQueryParams params( aStorageId, KMTPFormatsAll, KMTPHandleNone, iFramework.DataProviderId() ); - TInt removeCount = 0; - for ( TInt i = 0; i < count; i++ ) + do { - TInt index = i - removeCount; - TPtrC temp( aReferences[index] ); - PRINT2( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL ref[%d]'s name = %S" ), index, &temp ); - PERFLOGSTART( KObjectManagerHandle ); - TUint32 handle = iFramework.ObjectMgr().HandleL( temp ); - PERFLOGSTOP( KObjectManagerHandle ); - if ( handle == KMTPHandleNone ) // object doesn't exist + iObjectMgr.GetObjectHandlesL( params, context, handles ); + + for ( TInt i = 0; i < handles.Count(); i++ ) { - PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp ); - - // if handle is invalid, remove from reference array - aReferences.Delete( index, 1 ); - removeCount++; + CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo + + iResetCount++; + iObjectMgr.ObjectL( handles[i], *objectInfo ); + // EMTPSubFormatCodeUnknown means references of the object haven't been insert into reference db of fw. + objectInfo->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUnknown ); + iObjectMgr.ModifyObjectL( *objectInfo ); + CleanupStack::PopAndDestroy( objectInfo ); // - objectInfo } } - CleanupStack::PopAndDestroy( object ); // - object + while ( !context.QueryComplete() ); - // add all references into references db - MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr(); - PERFLOGSTART( KReferenceManagerSetReference ); - referenceMgr.SetReferencesL( aAbstractMediaName, aReferences ); - PERFLOGSTOP( KReferenceManagerSetReference ); + CleanupStack::PopAndDestroy( &handles ); // - handles + CleanupStack::PopAndDestroy( &context ); // - context - PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddReferencesL" ) ); + PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL" ) ); } //end of file diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -163,7 +163,7 @@ if ( iStorages.Count() > 0 ) { const CMTPStorageMetaData& storage( iFramework.StorageMgr().StorageL( iStorages[0] ) ); - const TDesC& root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); + TPtrC root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); GetModifiedContentL( root ); TRAPD( err, iDataProvider.GetWrapperL().UpdateMusicCollectionL( root ) ); if ( err != KErrNone ) diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Fri Jun 11 14:04:53 2010 +0300 @@ -11,153 +11,140 @@ ??1CGetInterdependentPropDesc@@UAE@XZ @ 10 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void) ?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 11 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void) ?ServiceL@CGetPartialObject@@MAEXXZ @ 12 NONAME ; void CGetPartialObject::ServiceL(void) - ??0CGetObjectInfo@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 13 NONAME ; CGetObjectInfo::CGetObjectInfo(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 14 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void) - ?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 16 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 17 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void) - ?RunL@CRequestProcessor@@MAEXXZ @ 18 NONAME ; void CRequestProcessor::RunL(void) - ?ServiceL@CDeleteObject@@MAEXXZ @ 19 NONAME ; void CDeleteObject::ServiceL(void) - ?DoCancel@CSetObjectPropList@@MAEXXZ @ 20 NONAME ; void CSetObjectPropList::DoCancel(void) - ?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 21 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void) - ?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 22 NONAME ; void CGetObjectPropsSupported::ServiceL(void) - ?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 23 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 24 NONAME ; void CMmMtpDpAccessSingleton::Release(void) - ?UsbDisconnect@CSendObject@@MAEXXZ @ 25 NONAME ; void CSendObject::UsbDisconnect(void) - ?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 26 NONAME ; void CGetFormatCapabilities::ServiceL(void) - ?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXPAVCMPXMedia@@AAVCDesC16Array@@@Z @ 27 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMPXMedia *, class CDesC16Array &) - ??1CSetObjectPropList@@UAE@XZ @ 28 NONAME ; CSetObjectPropList::~CSetObjectPropList(void) - ?ServiceL@CSetObjectPropList@@MAEXXZ @ 29 NONAME ; void CSetObjectPropList::ServiceL(void) - ??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 30 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??0CRequestUnknown@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 31 NONAME ; CRequestUnknown::CRequestUnknown(class MMTPDataProviderFramework &, class MMTPConnection &) - ?ConstructL@CGetObjectPropList@@IAEXXZ @ 32 NONAME ; void CGetObjectPropList::ConstructL(void) - ??1CSendObject@@UAE@XZ @ 33 NONAME ; CSendObject::~CSendObject(void) - ?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 34 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) - ?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 35 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??1CGetObjectPropValue@@UAE@XZ @ 36 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void) - ?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 37 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &) - ??1CGetFormatCapabilities@@UAE@XZ @ 38 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void) - ?ServiceL@CSetObjectReferences@@EAEXXZ @ 39 NONAME ; void CSetObjectReferences::ServiceL(void) - ?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 40 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void) - ??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 41 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?ConstructL@CCopyObject@@IAEXXZ @ 42 NONAME ; void CCopyObject::ConstructL(void) - ?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 43 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &) - ?ServiceL@CGetObjectPropValue@@MAEXXZ @ 44 NONAME ; void CGetObjectPropValue::ServiceL(void) - ??1CRenameObject@@UAE@XZ @ 45 NONAME ; CRenameObject::~CRenameObject(void) - ?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 46 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const - ?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 47 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void) - ?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 48 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &) - ?RunL@CRenameObject@@MAEXXZ @ 49 NONAME ; void CRenameObject::RunL(void) - ??0CSetObjectReferences@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 50 NONAME ; CSetObjectReferences::CSetObjectReferences(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 51 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *) - ?ServiceL@CSendObject@@MAEXXZ @ 52 NONAME ; void CSendObject::ServiceL(void) - ?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 53 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const - ?DoCancel@CRequestProcessor@@MAEXXZ @ 54 NONAME ; void CRequestProcessor::DoCancel(void) - ?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 55 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void) - ?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 56 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &) - ??0CGetFormatCapabilities@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 57 NONAME ; CGetFormatCapabilities::CGetFormatCapabilities(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?ConstructL@CGetObjectInfo@@AAEXXZ @ 58 NONAME ; void CGetObjectInfo::ConstructL(void) - ?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 59 NONAME ; void CRequestProcessor::UsbDisconnect(void) - ??1CMoveObject@@UAE@XZ @ 60 NONAME ; CMoveObject::~CMoveObject(void) - ?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 61 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void) - ??1CRequestProcessor@@MAE@XZ @ 62 NONAME ; CRequestProcessor::~CRequestProcessor(void) - ?DoCancel@CDeleteObject@@MAEXXZ @ 63 NONAME ; void CDeleteObject::DoCancel(void) - ??1CGetObject@@UAE@XZ @ 64 NONAME ; CGetObject::~CGetObject(void) - ?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 65 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 66 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &) - ?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 67 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void) - ?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 68 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void) - ??1CGetObjectPropsSupported@@UAE@XZ @ 69 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void) - ?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 70 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void) - ?HasDataphase@CRequestProcessor@@MBEHXZ @ 71 NONAME ; int CRequestProcessor::HasDataphase(void) const - ?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 72 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 73 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const - ?ConstructL@CGetFormatCapabilities@@AAEXXZ @ 74 NONAME ; void CGetFormatCapabilities::ConstructL(void) - ??1CPropertySettingUtility@@UAE@XZ @ 75 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void) - ??1CGetPartialObject@@UAE@XZ @ 76 NONAME ; CGetPartialObject::~CGetPartialObject(void) - ?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 77 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?RunError@CSetObjectPropList@@MAEHH@Z @ 78 NONAME ; int CSetObjectPropList::RunError(int) - ?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 79 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void) - ?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 80 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const - ?ServiceL@CMoveObject@@MAEXXZ @ 81 NONAME ; void CMoveObject::ServiceL(void) - ?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 82 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &) - ?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 83 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void) - ?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 84 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void) - ?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 85 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) - ?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 86 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &) - ?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 87 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void) - ??0CPropertySettingUtility@@IAE@XZ @ 88 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void) - ?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 89 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const - ??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 90 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 91 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void) - ?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 92 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *) - ??0CGetPartialObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 93 NONAME ; CGetPartialObject::CGetPartialObject(class MMTPDataProviderFramework &, class MMTPConnection &) - ?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 94 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void) - ?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 95 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &) - ?DoSetObjectReferencesL@CSetObjectReferences@@IAEXABVCMTPObjectMetaData@@@Z @ 96 NONAME ; void CSetObjectReferences::DoSetObjectReferencesL(class CMTPObjectMetaData const &) - ??1CGetObjectInfo@@UAE@XZ @ 97 NONAME ; CGetObjectInfo::~CGetObjectInfo(void) - ?ServiceL@CRequestUnknown@@MAEXXZ @ 98 NONAME ; void CRequestUnknown::ServiceL(void) - ?HasDataphase@CSetObjectPropList@@MBEHXZ @ 99 NONAME ; int CSetObjectPropList::HasDataphase(void) const - ?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?DoCancel@CRenameObject@@MAEXXZ @ 101 NONAME ; void CRenameObject::DoCancel(void) - ??1CSetObjectReferences@@UAE@XZ @ 102 NONAME ; CSetObjectReferences::~CSetObjectReferences(void) - ?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 103 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const - ?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 104 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@PAPAVCMPXMediaArray@@W4TMPXGeneralCategory@@@Z @ 105 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CMPXMediaArray * *, enum TMPXGeneralCategory) - ??1CCopyObject@@UAE@XZ @ 106 NONAME ; CCopyObject::~CCopyObject(void) - ?RunL@CGetObjectPropList@@MAEXXZ @ 107 NONAME ; void CGetObjectPropList::RunL(void) - ?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 108 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &) - ?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 109 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int) - ?RunError@CRequestProcessor@@MAEHH@Z @ 110 NONAME ; int CRequestProcessor::RunError(int) - ?SessionId@CRequestProcessor@@MAEKXZ @ 111 NONAME ; unsigned long CRequestProcessor::SessionId(void) - ??0CDescriptionUtility@@IAE@XZ @ 112 NONAME ; CDescriptionUtility::CDescriptionUtility(void) - ?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 113 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &) - ?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 114 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?HasDataphase@CSetObjectReferences@@EBEHXZ @ 115 NONAME ; int CSetObjectReferences::HasDataphase(void) const - ?ConstructL@CGetInterdependentPropDesc@@IAEXXZ @ 116 NONAME ; void CGetInterdependentPropDesc::ConstructL(void) - ?RunError@CGetObjectPropList@@MAEHH@Z @ 117 NONAME ; int CGetObjectPropList::RunError(int) - ?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 118 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void) - ??0CDeleteObject@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 119 NONAME ; CDeleteObject::CDeleteObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 120 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &) - ?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 121 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &) - ?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 122 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) - ?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 123 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &) - ??0CGetObjectPropDesc@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; CGetObjectPropDesc::CGetObjectPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?ConstructL@CGetObjectPropDesc@@AAEXXZ @ 125 NONAME ; void CGetObjectPropDesc::ConstructL(void) - ??0CGetInterdependentPropDesc@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 126 NONAME ; CGetInterdependentPropDesc::CGetInterdependentPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??1CGetObjectPropDesc@@UAE@XZ @ 127 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void) - ?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 128 NONAME ; void CGetObjectPropDesc::ServiceL(void) - ?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 129 NONAME ; int CSetObjectPropValue::HasDataphase(void) const - ?ServiceL@CCopyObject@@MAEXXZ @ 130 NONAME ; void CCopyObject::ServiceL(void) - ?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 131 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void) - ?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 132 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void) - ?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 133 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 134 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &) - ??1CDescriptionUtility@@UAE@XZ @ 135 NONAME ; CDescriptionUtility::~CDescriptionUtility(void) - ?RunL@CSetObjectPropList@@MAEXXZ @ 136 NONAME ; void CSetObjectPropList::RunL(void) - ?ConstructL@CMoveObject@@IAEXXZ @ 137 NONAME ; void CMoveObject::ConstructL(void) - ?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 138 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??1CGetObjectReferences@@UAE@XZ @ 139 NONAME ; CGetObjectReferences::~CGetObjectReferences(void) - ?HasDataphase@CSendObject@@MBEHXZ @ 140 NONAME ; int CSendObject::HasDataphase(void) const - ??1CSetObjectPropValue@@UAE@XZ @ 141 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void) - ?ConstructL@CRenameObject@@IAEXXZ @ 142 NONAME ; void CRenameObject::ConstructL(void) - ?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 143 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &) - ?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 144 NONAME ; int CSendObject::DoHandleResponsePhaseL(void) - ?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 145 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &) - ?DoCancel@CGetObjectPropList@@MAEXXZ @ 146 NONAME ; void CGetObjectPropList::DoCancel(void) - ?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 147 NONAME ; void CGetInterdependentPropDesc::ServiceL(void) - ?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 148 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void) - ?GetAbstractMediaNameL@CMmMtpDpMetadataAccessWrapper@@QAEPAVHBufC16@@PAVCMPXMedia@@W4TMPXGeneralCategory@@@Z @ 149 NONAME ; class HBufC16 * CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL(class CMPXMedia *, enum TMPXGeneralCategory) - ?ServiceL@CSetObjectPropValue@@MAEXXZ @ 150 NONAME ; void CSetObjectPropValue::ServiceL(void) - ?RunError@CRenameObject@@MAEHH@Z @ 151 NONAME ; int CRenameObject::RunError(int) - ??1CDeleteObject@@UAE@XZ @ 152 NONAME ; CDeleteObject::~CDeleteObject(void) - ?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 153 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void) - ?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 154 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void) - ??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 155 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??1CGetObjectPropList@@UAE@XZ @ 156 NONAME ; CGetObjectPropList::~CGetObjectPropList(void) - ?ServiceL@CGetObjectPropList@@MAEXXZ @ 157 NONAME ; void CGetObjectPropList::ServiceL(void) - ??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 158 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &) - ?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 159 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void) - ?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 160 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus) - ?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 161 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void) + ?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 13 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void) + ?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 14 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 16 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void) + ?RunL@CRequestProcessor@@MAEXXZ @ 17 NONAME ; void CRequestProcessor::RunL(void) + ?ServiceL@CDeleteObject@@MAEXXZ @ 18 NONAME ; void CDeleteObject::ServiceL(void) + ?DoCancel@CSetObjectPropList@@MAEXXZ @ 19 NONAME ; void CSetObjectPropList::DoCancel(void) + ?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 20 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void) + ?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 21 NONAME ; void CGetObjectPropsSupported::ServiceL(void) + ?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 22 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 23 NONAME ; void CMmMtpDpAccessSingleton::Release(void) + ?UsbDisconnect@CSendObject@@MAEXXZ @ 24 NONAME ; void CSendObject::UsbDisconnect(void) + ?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 25 NONAME ; void CGetFormatCapabilities::ServiceL(void) + ??1CSetObjectPropList@@UAE@XZ @ 26 NONAME ; CSetObjectPropList::~CSetObjectPropList(void) + ?ServiceL@CSetObjectPropList@@MAEXXZ @ 27 NONAME ; void CSetObjectPropList::ServiceL(void) + ??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 28 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?ConstructL@CGetObjectPropList@@IAEXXZ @ 29 NONAME ; void CGetObjectPropList::ConstructL(void) + ??1CSendObject@@UAE@XZ @ 30 NONAME ; CSendObject::~CSendObject(void) + ?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 31 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) + ?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 32 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ??1CGetObjectPropValue@@UAE@XZ @ 33 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void) + ?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 34 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void) + ?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 35 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &) + ??1CGetFormatCapabilities@@UAE@XZ @ 36 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void) + ?ServiceL@CSetObjectReferences@@EAEXXZ @ 37 NONAME ; void CSetObjectReferences::ServiceL(void) + ?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 38 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void) + ??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 39 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?ConstructL@CCopyObject@@IAEXXZ @ 40 NONAME ; void CCopyObject::ConstructL(void) + ?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 41 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &) + ?ServiceL@CGetObjectPropValue@@MAEXXZ @ 42 NONAME ; void CGetObjectPropValue::ServiceL(void) + ??1CRenameObject@@UAE@XZ @ 43 NONAME ; CRenameObject::~CRenameObject(void) + ?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 44 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const + ?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 45 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void) + ?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 46 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &) + ?RunL@CRenameObject@@MAEXXZ @ 47 NONAME ; void CRenameObject::RunL(void) + ?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 48 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus) + ??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 49 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *) + ?ServiceL@CSendObject@@MAEXXZ @ 50 NONAME ; void CSendObject::ServiceL(void) + ?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 51 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const + ?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 52 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void) + ?DoCancel@CRequestProcessor@@MAEXXZ @ 53 NONAME ; void CRequestProcessor::DoCancel(void) + ?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 54 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &) + ?ConstructL@CGetObjectInfo@@AAEXXZ @ 55 NONAME ; void CGetObjectInfo::ConstructL(void) + ?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 56 NONAME ; void CRequestProcessor::UsbDisconnect(void) + ??1CMoveObject@@UAE@XZ @ 57 NONAME ; CMoveObject::~CMoveObject(void) + ?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 58 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void) + ??1CRequestProcessor@@MAE@XZ @ 59 NONAME ; CRequestProcessor::~CRequestProcessor(void) + ?DoCancel@CDeleteObject@@MAEXXZ @ 60 NONAME ; void CDeleteObject::DoCancel(void) + ??1CGetObject@@UAE@XZ @ 61 NONAME ; CGetObject::~CGetObject(void) + ?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 62 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 63 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &) + ?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 64 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void) + ?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 65 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void) + ??1CGetObjectPropsSupported@@UAE@XZ @ 66 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void) + ?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 67 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void) + ?HasDataphase@CRequestProcessor@@MBEHXZ @ 68 NONAME ; int CRequestProcessor::HasDataphase(void) const + ?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 69 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 70 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const + ??1CPropertySettingUtility@@UAE@XZ @ 71 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void) + ??1CGetPartialObject@@UAE@XZ @ 72 NONAME ; CGetPartialObject::~CGetPartialObject(void) + ?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 73 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?RunError@CSetObjectPropList@@MAEHH@Z @ 74 NONAME ; int CSetObjectPropList::RunError(int) + ?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 75 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void) + ?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 76 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const + ?ServiceL@CMoveObject@@MAEXXZ @ 77 NONAME ; void CMoveObject::ServiceL(void) + ?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 78 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &) + ?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 79 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void) + ?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 80 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void) + ?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 81 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) + ?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 82 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &) + ?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 83 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &) + ?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 84 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void) + ??0CPropertySettingUtility@@IAE@XZ @ 85 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void) + ?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 86 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const + ??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 87 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 88 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void) + ?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 89 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *) + ?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 90 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void) + ?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 91 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void) + ?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 92 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &) + ??1CGetObjectInfo@@UAE@XZ @ 93 NONAME ; CGetObjectInfo::~CGetObjectInfo(void) + ?ServiceL@CRequestUnknown@@MAEXXZ @ 94 NONAME ; void CRequestUnknown::ServiceL(void) + ?HasDataphase@CSetObjectPropList@@MBEHXZ @ 95 NONAME ; int CSetObjectPropList::HasDataphase(void) const + ?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 96 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?DoCancel@CRenameObject@@MAEXXZ @ 97 NONAME ; void CRenameObject::DoCancel(void) + ??1CSetObjectReferences@@UAE@XZ @ 98 NONAME ; CSetObjectReferences::~CSetObjectReferences(void) + ?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 99 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const + ?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ??1CCopyObject@@UAE@XZ @ 101 NONAME ; CCopyObject::~CCopyObject(void) + ?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 102 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &) + ?RunL@CGetObjectPropList@@MAEXXZ @ 103 NONAME ; void CGetObjectPropList::RunL(void) + ?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 104 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int) + ?RunError@CRequestProcessor@@MAEHH@Z @ 105 NONAME ; int CRequestProcessor::RunError(int) + ?SessionId@CRequestProcessor@@MAEKXZ @ 106 NONAME ; unsigned long CRequestProcessor::SessionId(void) + ??0CDescriptionUtility@@IAE@XZ @ 107 NONAME ; CDescriptionUtility::CDescriptionUtility(void) + ?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 108 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &) + ?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 109 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?HasDataphase@CSetObjectReferences@@EBEHXZ @ 110 NONAME ; int CSetObjectReferences::HasDataphase(void) const + ?RunError@CGetObjectPropList@@MAEHH@Z @ 111 NONAME ; int CGetObjectPropList::RunError(int) + ?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 112 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void) + ?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 113 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &) + ?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 114 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &) + ?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 115 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) + ?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAVCDesC16Array@@W4TMPXGeneralCategory@@@Z @ 116 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CDesC16Array &, enum TMPXGeneralCategory) + ?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 117 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &) + ??1CGetObjectPropDesc@@UAE@XZ @ 118 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void) + ?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 119 NONAME ; void CGetObjectPropDesc::ServiceL(void) + ?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 120 NONAME ; int CSetObjectPropValue::HasDataphase(void) const + ?ServiceL@CCopyObject@@MAEXXZ @ 121 NONAME ; void CCopyObject::ServiceL(void) + ?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 122 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void) + ?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 123 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void) + ?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 125 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &) + ??1CDescriptionUtility@@UAE@XZ @ 126 NONAME ; CDescriptionUtility::~CDescriptionUtility(void) + ?ConstructL@CMoveObject@@IAEXXZ @ 127 NONAME ; void CMoveObject::ConstructL(void) + ?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 128 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?RunL@CSetObjectPropList@@MAEXXZ @ 129 NONAME ; void CSetObjectPropList::RunL(void) + ??1CGetObjectReferences@@UAE@XZ @ 130 NONAME ; CGetObjectReferences::~CGetObjectReferences(void) + ?HasDataphase@CSendObject@@MBEHXZ @ 131 NONAME ; int CSendObject::HasDataphase(void) const + ??1CSetObjectPropValue@@UAE@XZ @ 132 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void) + ?ConstructL@CRenameObject@@IAEXXZ @ 133 NONAME ; void CRenameObject::ConstructL(void) + ?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 134 NONAME ; int CSendObject::DoHandleResponsePhaseL(void) + ?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 135 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &) + ?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 136 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &) + ?DoCancel@CGetObjectPropList@@MAEXXZ @ 137 NONAME ; void CGetObjectPropList::DoCancel(void) + ?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 138 NONAME ; void CGetInterdependentPropDesc::ServiceL(void) + ?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 139 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void) + ?ServiceL@CSetObjectPropValue@@MAEXXZ @ 140 NONAME ; void CSetObjectPropValue::ServiceL(void) + ?RunError@CRenameObject@@MAEHH@Z @ 141 NONAME ; int CRenameObject::RunError(int) + ??1CDeleteObject@@UAE@XZ @ 142 NONAME ; CDeleteObject::~CDeleteObject(void) + ?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 143 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void) + ??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 144 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ??1CGetObjectPropList@@UAE@XZ @ 145 NONAME ; CGetObjectPropList::~CGetObjectPropList(void) + ?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 146 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void) + ??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 147 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &) + ?ServiceL@CGetObjectPropList@@MAEXXZ @ 148 NONAME ; void CGetObjectPropList::ServiceL(void) diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Fri Jun 11 14:04:53 2010 +0300 @@ -52,231 +52,214 @@ _ZN14MmMtpDpUtility18FormatFromFilenameERK7TDesC16 @ 51 NONAME _ZN15CRequestUnknown4NewLER25MMTPDataProviderFrameworkR14MMTPConnection @ 52 NONAME _ZN15CRequestUnknown8ServiceLEv @ 53 NONAME - _ZN15CRequestUnknownC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 54 NONAME - _ZN15CRequestUnknownC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 55 NONAME - _ZN15CRequestUnknownD0Ev @ 56 NONAME - _ZN15CRequestUnknownD1Ev @ 57 NONAME - _ZN15CRequestUnknownD2Ev @ 58 NONAME - _ZN17CGetPartialObject13CheckRequestLEv @ 59 NONAME - _ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 60 NONAME - _ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 61 NONAME - _ZN17CGetPartialObject8ServiceLEv @ 62 NONAME - _ZN17CGetPartialObjectC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 63 NONAME - _ZN17CGetPartialObjectC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 64 NONAME - _ZN17CGetPartialObjectD0Ev @ 65 NONAME - _ZN17CGetPartialObjectD1Ev @ 66 NONAME - _ZN17CGetPartialObjectD2Ev @ 67 NONAME - _ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 68 NONAME - _ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 69 NONAME - _ZN17CRequestProcessor13CheckRequestLEv @ 70 NONAME - _ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 71 NONAME - _ZN17CRequestProcessor13UsbDisconnectEv @ 72 NONAME - _ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 73 NONAME - _ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 74 NONAME - _ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 75 NONAME - _ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 76 NONAME - _ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 77 NONAME - _ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 78 NONAME - _ZN17CRequestProcessor4RunLEv @ 79 NONAME - _ZN17CRequestProcessor7ReleaseEv @ 80 NONAME - _ZN17CRequestProcessor8DoCancelEv @ 81 NONAME - _ZN17CRequestProcessor8RunErrorEi @ 82 NONAME - _ZN17CRequestProcessor9SendDataLERK8MMTPType @ 83 NONAME - _ZN17CRequestProcessor9SessionIdEv @ 84 NONAME - _ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 85 NONAME - _ZN17CRequestProcessorD0Ev @ 86 NONAME - _ZN17CRequestProcessorD1Ev @ 87 NONAME - _ZN17CRequestProcessorD2Ev @ 88 NONAME - _ZN18CGetObjectPropDesc10ConstructLEv @ 89 NONAME - _ZN18CGetObjectPropDesc13CheckRequestLEv @ 90 NONAME - _ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 91 NONAME - _ZN18CGetObjectPropDesc8ServiceLEv @ 92 NONAME - _ZN18CGetObjectPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 93 NONAME - _ZN18CGetObjectPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 94 NONAME - _ZN18CGetObjectPropDescD0Ev @ 95 NONAME - _ZN18CGetObjectPropDescD1Ev @ 96 NONAME - _ZN18CGetObjectPropDescD2Ev @ 97 NONAME - _ZN18CGetObjectPropList10ConstructLEv @ 98 NONAME - _ZN18CGetObjectPropList13CheckRequestLEv @ 99 NONAME - _ZN18CGetObjectPropList4RunLEv @ 100 NONAME - _ZN18CGetObjectPropList8DoCancelEv @ 101 NONAME - _ZN18CGetObjectPropList8RunErrorEi @ 102 NONAME - _ZN18CGetObjectPropList8ServiceLEv @ 103 NONAME - _ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 104 NONAME - _ZN18CGetObjectPropListD0Ev @ 105 NONAME - _ZN18CGetObjectPropListD1Ev @ 106 NONAME - _ZN18CGetObjectPropListD2Ev @ 107 NONAME - _ZN18CSetObjectPropList13CheckRequestLEv @ 108 NONAME - _ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 109 NONAME - _ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 110 NONAME - _ZN18CSetObjectPropList4RunLEv @ 111 NONAME - _ZN18CSetObjectPropList8DoCancelEv @ 112 NONAME - _ZN18CSetObjectPropList8RunErrorEi @ 113 NONAME - _ZN18CSetObjectPropList8ServiceLEv @ 114 NONAME - _ZN18CSetObjectPropListD0Ev @ 115 NONAME - _ZN18CSetObjectPropListD1Ev @ 116 NONAME - _ZN18CSetObjectPropListD2Ev @ 117 NONAME - _ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 118 NONAME - _ZN19CDescriptionUtilityC2Ev @ 119 NONAME - _ZN19CDescriptionUtilityD0Ev @ 120 NONAME - _ZN19CDescriptionUtilityD1Ev @ 121 NONAME - _ZN19CDescriptionUtilityD2Ev @ 122 NONAME - _ZN19CGetObjectPropValue13CheckRequestLEv @ 123 NONAME - _ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 124 NONAME - _ZN19CGetObjectPropValue8ServiceLEv @ 125 NONAME - _ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 126 NONAME - _ZN19CGetObjectPropValueD0Ev @ 127 NONAME - _ZN19CGetObjectPropValueD1Ev @ 128 NONAME - _ZN19CGetObjectPropValueD2Ev @ 129 NONAME - _ZN19CSetObjectPropValue13CheckRequestLEv @ 130 NONAME - _ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 131 NONAME - _ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 132 NONAME - _ZN19CSetObjectPropValue8ServiceLEv @ 133 NONAME - _ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 134 NONAME - _ZN19CSetObjectPropValueD0Ev @ 135 NONAME - _ZN19CSetObjectPropValueD1Ev @ 136 NONAME - _ZN19CSetObjectPropValueD2Ev @ 137 NONAME - _ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 138 NONAME - _ZN20CGetObjectReferencesD0Ev @ 139 NONAME - _ZN20CGetObjectReferencesD1Ev @ 140 NONAME - _ZN20CGetObjectReferencesD2Ev @ 141 NONAME - _ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 142 NONAME - _ZN20CSetObjectReferences22DoSetObjectReferencesLERK18CMTPObjectMetaData @ 143 NONAME - _ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 144 NONAME - _ZN20CSetObjectReferences8ServiceLEv @ 145 NONAME - _ZN20CSetObjectReferencesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 146 NONAME - _ZN20CSetObjectReferencesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 147 NONAME - _ZN20CSetObjectReferencesD0Ev @ 148 NONAME - _ZN20CSetObjectReferencesD1Ev @ 149 NONAME - _ZN20CSetObjectReferencesD2Ev @ 150 NONAME - _ZN22CGetFormatCapabilities10ConstructLEv @ 151 NONAME - _ZN22CGetFormatCapabilities13CheckRequestLEv @ 152 NONAME - _ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 153 NONAME - _ZN22CGetFormatCapabilities8ServiceLEv @ 154 NONAME - _ZN22CGetFormatCapabilitiesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 155 NONAME - _ZN22CGetFormatCapabilitiesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 156 NONAME - _ZN22CGetFormatCapabilitiesD0Ev @ 157 NONAME - _ZN22CGetFormatCapabilitiesD1Ev @ 158 NONAME - _ZN22CGetFormatCapabilitiesD2Ev @ 159 NONAME - _ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 160 NONAME - _ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 161 NONAME - _ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 162 NONAME - _ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 163 NONAME - _ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 164 NONAME - _ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 165 NONAME - _ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 166 NONAME - _ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 167 NONAME - _ZN23CPropertySettingUtilityC2Ev @ 168 NONAME - _ZN23CPropertySettingUtilityD0Ev @ 169 NONAME - _ZN23CPropertySettingUtilityD1Ev @ 170 NONAME - _ZN23CPropertySettingUtilityD2Ev @ 171 NONAME - _ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 172 NONAME - _ZN24CGetObjectPropsSupported8ServiceLEv @ 173 NONAME - _ZN24CGetObjectPropsSupportedD0Ev @ 174 NONAME - _ZN24CGetObjectPropsSupportedD1Ev @ 175 NONAME - _ZN24CGetObjectPropsSupportedD2Ev @ 176 NONAME - _ZN26CGetInterdependentPropDesc10ConstructLEv @ 177 NONAME - _ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 178 NONAME - _ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 179 NONAME - _ZN26CGetInterdependentPropDesc8ServiceLEv @ 180 NONAME - _ZN26CGetInterdependentPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 181 NONAME - _ZN26CGetInterdependentPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 182 NONAME - _ZN26CGetInterdependentPropDescD0Ev @ 183 NONAME - _ZN26CGetInterdependentPropDescD1Ev @ 184 NONAME - _ZN26CGetInterdependentPropDescD2Ev @ 185 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 186 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 187 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 188 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 189 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 190 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 191 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 192 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 193 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 194 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 195 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 196 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 197 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 198 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 199 NONAME - _ZNK11CSendObject12HasDataphaseEv @ 200 NONAME - _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 201 NONAME - _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 202 NONAME - _ZNK17CRequestProcessor10ConnectionEv @ 203 NONAME - _ZNK17CRequestProcessor12HasDataphaseEv @ 204 NONAME - _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 205 NONAME - _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 206 NONAME - _ZNK17CRequestProcessor7RequestEv @ 207 NONAME - _ZNK18CSetObjectPropList12HasDataphaseEv @ 208 NONAME - _ZNK19CSetObjectPropValue12HasDataphaseEv @ 209 NONAME - _ZNK20CSetObjectReferences12HasDataphaseEv @ 210 NONAME - _ZTI10CGetObject @ 211 NONAME - _ZTI11CCopyObject @ 212 NONAME - _ZTI11CMoveObject @ 213 NONAME - _ZTI11CSendObject @ 214 NONAME - _ZTI13CDeleteObject @ 215 NONAME - _ZTI13CRenameObject @ 216 NONAME - _ZTI14CGetObjectInfo @ 217 NONAME - _ZTI15CRequestChecker @ 218 NONAME - _ZTI15CRequestUnknown @ 219 NONAME - _ZTI15TMTPTypeFlatBuf @ 220 NONAME - _ZTI17CGetPartialObject @ 221 NONAME - _ZTI17CRequestProcessor @ 222 NONAME - _ZTI18CGetObjectPropDesc @ 223 NONAME - _ZTI18CGetObjectPropList @ 224 NONAME - _ZTI18CHXMetaDataUtility @ 225 NONAME - _ZTI18CSetObjectPropList @ 226 NONAME - _ZTI19CDescriptionUtility @ 227 NONAME - _ZTI19CGetObjectPropValue @ 228 NONAME - _ZTI19CSetObjectPropValue @ 229 NONAME - _ZTI20CGetObjectReferences @ 230 NONAME - _ZTI20CSetObjectReferences @ 231 NONAME - _ZTI22CGetFormatCapabilities @ 232 NONAME - _ZTI23CMmMtpDpAccessSingleton @ 233 NONAME - _ZTI23CPropertySettingUtility @ 234 NONAME - _ZTI24CGetObjectPropsSupported @ 235 NONAME - _ZTI25CMmMtpDpMetadataMpxAccess @ 236 NONAME - _ZTI26CGetInterdependentPropDesc @ 237 NONAME - _ZTI27CMmMtpDpMetadataVideoAccess @ 238 NONAME - _ZTI29CMmMtpDpMetadataAccessWrapper @ 239 NONAME - _ZTV10CGetObject @ 240 NONAME - _ZTV11CCopyObject @ 241 NONAME - _ZTV11CMoveObject @ 242 NONAME - _ZTV11CSendObject @ 243 NONAME - _ZTV13CDeleteObject @ 244 NONAME - _ZTV13CRenameObject @ 245 NONAME - _ZTV14CGetObjectInfo @ 246 NONAME - _ZTV15CRequestChecker @ 247 NONAME - _ZTV15CRequestUnknown @ 248 NONAME - _ZTV15TMTPTypeFlatBuf @ 249 NONAME - _ZTV17CGetPartialObject @ 250 NONAME - _ZTV17CRequestProcessor @ 251 NONAME - _ZTV18CGetObjectPropDesc @ 252 NONAME - _ZTV18CGetObjectPropList @ 253 NONAME - _ZTV18CHXMetaDataUtility @ 254 NONAME - _ZTV18CSetObjectPropList @ 255 NONAME - _ZTV19CDescriptionUtility @ 256 NONAME - _ZTV19CGetObjectPropValue @ 257 NONAME - _ZTV19CSetObjectPropValue @ 258 NONAME - _ZTV20CGetObjectReferences @ 259 NONAME - _ZTV20CSetObjectReferences @ 260 NONAME - _ZTV22CGetFormatCapabilities @ 261 NONAME - _ZTV23CMmMtpDpAccessSingleton @ 262 NONAME - _ZTV23CPropertySettingUtility @ 263 NONAME - _ZTV24CGetObjectPropsSupported @ 264 NONAME - _ZTV25CMmMtpDpMetadataMpxAccess @ 265 NONAME - _ZTV26CGetInterdependentPropDesc @ 266 NONAME - _ZTV27CMmMtpDpMetadataVideoAccess @ 267 NONAME - _ZTV29CMmMtpDpMetadataAccessWrapper @ 268 NONAME - _ZThn28_N11CSendObject13UsbDisconnectEv @ 269 NONAME - _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 270 NONAME - _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 271 NONAME - _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 272 NONAME - _ZThn28_N17CRequestProcessor7ReleaseEv @ 273 NONAME - _ZThn28_N17CRequestProcessor9SessionIdEv @ 274 NONAME - _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 275 NONAME - _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME - _ZThn28_NK17CRequestProcessor10ConnectionEv @ 277 NONAME - _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 278 NONAME - _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 279 NONAME - _ZThn28_NK17CRequestProcessor7RequestEv @ 280 NONAME + _ZN15CRequestUnknownD0Ev @ 54 NONAME + _ZN15CRequestUnknownD1Ev @ 55 NONAME + _ZN15CRequestUnknownD2Ev @ 56 NONAME + _ZN17CGetPartialObject13CheckRequestLEv @ 57 NONAME + _ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 58 NONAME + _ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 59 NONAME + _ZN17CGetPartialObject8ServiceLEv @ 60 NONAME + _ZN17CGetPartialObjectD0Ev @ 61 NONAME + _ZN17CGetPartialObjectD1Ev @ 62 NONAME + _ZN17CGetPartialObjectD2Ev @ 63 NONAME + _ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 64 NONAME + _ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 65 NONAME + _ZN17CRequestProcessor13CheckRequestLEv @ 66 NONAME + _ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 67 NONAME + _ZN17CRequestProcessor13UsbDisconnectEv @ 68 NONAME + _ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 69 NONAME + _ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 70 NONAME + _ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 71 NONAME + _ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 72 NONAME + _ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 73 NONAME + _ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 74 NONAME + _ZN17CRequestProcessor4RunLEv @ 75 NONAME + _ZN17CRequestProcessor7ReleaseEv @ 76 NONAME + _ZN17CRequestProcessor8DoCancelEv @ 77 NONAME + _ZN17CRequestProcessor8RunErrorEi @ 78 NONAME + _ZN17CRequestProcessor9SendDataLERK8MMTPType @ 79 NONAME + _ZN17CRequestProcessor9SessionIdEv @ 80 NONAME + _ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 81 NONAME + _ZN17CRequestProcessorD0Ev @ 82 NONAME + _ZN17CRequestProcessorD1Ev @ 83 NONAME + _ZN17CRequestProcessorD2Ev @ 84 NONAME + _ZN18CGetObjectPropDesc13CheckRequestLEv @ 85 NONAME + _ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 86 NONAME + _ZN18CGetObjectPropDesc8ServiceLEv @ 87 NONAME + _ZN18CGetObjectPropDescD0Ev @ 88 NONAME + _ZN18CGetObjectPropDescD1Ev @ 89 NONAME + _ZN18CGetObjectPropDescD2Ev @ 90 NONAME + _ZN18CGetObjectPropList10ConstructLEv @ 91 NONAME + _ZN18CGetObjectPropList13CheckRequestLEv @ 92 NONAME + _ZN18CGetObjectPropList4RunLEv @ 93 NONAME + _ZN18CGetObjectPropList8DoCancelEv @ 94 NONAME + _ZN18CGetObjectPropList8RunErrorEi @ 95 NONAME + _ZN18CGetObjectPropList8ServiceLEv @ 96 NONAME + _ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 97 NONAME + _ZN18CGetObjectPropListD0Ev @ 98 NONAME + _ZN18CGetObjectPropListD1Ev @ 99 NONAME + _ZN18CGetObjectPropListD2Ev @ 100 NONAME + _ZN18CSetObjectPropList13CheckRequestLEv @ 101 NONAME + _ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 102 NONAME + _ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 103 NONAME + _ZN18CSetObjectPropList4RunLEv @ 104 NONAME + _ZN18CSetObjectPropList8DoCancelEv @ 105 NONAME + _ZN18CSetObjectPropList8RunErrorEi @ 106 NONAME + _ZN18CSetObjectPropList8ServiceLEv @ 107 NONAME + _ZN18CSetObjectPropListD0Ev @ 108 NONAME + _ZN18CSetObjectPropListD1Ev @ 109 NONAME + _ZN18CSetObjectPropListD2Ev @ 110 NONAME + _ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 111 NONAME + _ZN19CDescriptionUtilityC2Ev @ 112 NONAME + _ZN19CDescriptionUtilityD0Ev @ 113 NONAME + _ZN19CDescriptionUtilityD1Ev @ 114 NONAME + _ZN19CDescriptionUtilityD2Ev @ 115 NONAME + _ZN19CGetObjectPropValue13CheckRequestLEv @ 116 NONAME + _ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 117 NONAME + _ZN19CGetObjectPropValue8ServiceLEv @ 118 NONAME + _ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 119 NONAME + _ZN19CGetObjectPropValueD0Ev @ 120 NONAME + _ZN19CGetObjectPropValueD1Ev @ 121 NONAME + _ZN19CGetObjectPropValueD2Ev @ 122 NONAME + _ZN19CSetObjectPropValue13CheckRequestLEv @ 123 NONAME + _ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 124 NONAME + _ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 125 NONAME + _ZN19CSetObjectPropValue8ServiceLEv @ 126 NONAME + _ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 127 NONAME + _ZN19CSetObjectPropValueD0Ev @ 128 NONAME + _ZN19CSetObjectPropValueD1Ev @ 129 NONAME + _ZN19CSetObjectPropValueD2Ev @ 130 NONAME + _ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 131 NONAME + _ZN20CGetObjectReferencesD0Ev @ 132 NONAME + _ZN20CGetObjectReferencesD1Ev @ 133 NONAME + _ZN20CGetObjectReferencesD2Ev @ 134 NONAME + _ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 135 NONAME + _ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 136 NONAME + _ZN20CSetObjectReferences8ServiceLEv @ 137 NONAME + _ZN20CSetObjectReferencesD0Ev @ 138 NONAME + _ZN20CSetObjectReferencesD1Ev @ 139 NONAME + _ZN20CSetObjectReferencesD2Ev @ 140 NONAME + _ZN22CGetFormatCapabilities13CheckRequestLEv @ 141 NONAME + _ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 142 NONAME + _ZN22CGetFormatCapabilities8ServiceLEv @ 143 NONAME + _ZN22CGetFormatCapabilitiesD0Ev @ 144 NONAME + _ZN22CGetFormatCapabilitiesD1Ev @ 145 NONAME + _ZN22CGetFormatCapabilitiesD2Ev @ 146 NONAME + _ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 147 NONAME + _ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 148 NONAME + _ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 149 NONAME + _ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 150 NONAME + _ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 151 NONAME + _ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 152 NONAME + _ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 153 NONAME + _ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 154 NONAME + _ZN23CPropertySettingUtilityC2Ev @ 155 NONAME + _ZN23CPropertySettingUtilityD0Ev @ 156 NONAME + _ZN23CPropertySettingUtilityD1Ev @ 157 NONAME + _ZN23CPropertySettingUtilityD2Ev @ 158 NONAME + _ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 159 NONAME + _ZN24CGetObjectPropsSupported8ServiceLEv @ 160 NONAME + _ZN24CGetObjectPropsSupportedD0Ev @ 161 NONAME + _ZN24CGetObjectPropsSupportedD1Ev @ 162 NONAME + _ZN24CGetObjectPropsSupportedD2Ev @ 163 NONAME + _ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 164 NONAME + _ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 165 NONAME + _ZN26CGetInterdependentPropDesc8ServiceLEv @ 166 NONAME + _ZN26CGetInterdependentPropDescD0Ev @ 167 NONAME + _ZN26CGetInterdependentPropDescD1Ev @ 168 NONAME + _ZN26CGetInterdependentPropDescD2Ev @ 169 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 170 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 171 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 172 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 173 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 174 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 175 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 176 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 177 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 178 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 179 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16R12CDesC16Array19TMPXGeneralCategory @ 180 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 181 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 182 NONAME + _ZNK11CSendObject12HasDataphaseEv @ 183 NONAME + _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 184 NONAME + _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 185 NONAME + _ZNK17CRequestProcessor10ConnectionEv @ 186 NONAME + _ZNK17CRequestProcessor12HasDataphaseEv @ 187 NONAME + _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 188 NONAME + _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 189 NONAME + _ZNK17CRequestProcessor7RequestEv @ 190 NONAME + _ZNK18CSetObjectPropList12HasDataphaseEv @ 191 NONAME + _ZNK19CSetObjectPropValue12HasDataphaseEv @ 192 NONAME + _ZNK20CSetObjectReferences12HasDataphaseEv @ 193 NONAME + _ZTI10CGetObject @ 194 NONAME + _ZTI11CCopyObject @ 195 NONAME + _ZTI11CMoveObject @ 196 NONAME + _ZTI11CSendObject @ 197 NONAME + _ZTI13CDeleteObject @ 198 NONAME + _ZTI13CRenameObject @ 199 NONAME + _ZTI14CGetObjectInfo @ 200 NONAME + _ZTI15CRequestChecker @ 201 NONAME + _ZTI15CRequestUnknown @ 202 NONAME + _ZTI15TMTPTypeFlatBuf @ 203 NONAME + _ZTI17CGetPartialObject @ 204 NONAME + _ZTI17CRequestProcessor @ 205 NONAME + _ZTI18CGetObjectPropDesc @ 206 NONAME + _ZTI18CGetObjectPropList @ 207 NONAME + _ZTI18CHXMetaDataUtility @ 208 NONAME + _ZTI18CSetObjectPropList @ 209 NONAME + _ZTI19CDescriptionUtility @ 210 NONAME + _ZTI19CGetObjectPropValue @ 211 NONAME + _ZTI19CSetObjectPropValue @ 212 NONAME + _ZTI20CGetObjectReferences @ 213 NONAME + _ZTI20CSetObjectReferences @ 214 NONAME + _ZTI22CGetFormatCapabilities @ 215 NONAME + _ZTI23CMmMtpDpAccessSingleton @ 216 NONAME + _ZTI23CPropertySettingUtility @ 217 NONAME + _ZTI24CGetObjectPropsSupported @ 218 NONAME + _ZTI25CMmMtpDpMetadataMpxAccess @ 219 NONAME + _ZTI26CGetInterdependentPropDesc @ 220 NONAME + _ZTI27CMmMtpDpMetadataVideoAccess @ 221 NONAME + _ZTI29CMmMtpDpMetadataAccessWrapper @ 222 NONAME + _ZTV10CGetObject @ 223 NONAME + _ZTV11CCopyObject @ 224 NONAME + _ZTV11CMoveObject @ 225 NONAME + _ZTV11CSendObject @ 226 NONAME + _ZTV13CDeleteObject @ 227 NONAME + _ZTV13CRenameObject @ 228 NONAME + _ZTV14CGetObjectInfo @ 229 NONAME + _ZTV15CRequestChecker @ 230 NONAME + _ZTV15CRequestUnknown @ 231 NONAME + _ZTV15TMTPTypeFlatBuf @ 232 NONAME + _ZTV17CGetPartialObject @ 233 NONAME + _ZTV17CRequestProcessor @ 234 NONAME + _ZTV18CGetObjectPropDesc @ 235 NONAME + _ZTV18CGetObjectPropList @ 236 NONAME + _ZTV18CHXMetaDataUtility @ 237 NONAME + _ZTV18CSetObjectPropList @ 238 NONAME + _ZTV19CDescriptionUtility @ 239 NONAME + _ZTV19CGetObjectPropValue @ 240 NONAME + _ZTV19CSetObjectPropValue @ 241 NONAME + _ZTV20CGetObjectReferences @ 242 NONAME + _ZTV20CSetObjectReferences @ 243 NONAME + _ZTV22CGetFormatCapabilities @ 244 NONAME + _ZTV23CMmMtpDpAccessSingleton @ 245 NONAME + _ZTV23CPropertySettingUtility @ 246 NONAME + _ZTV24CGetObjectPropsSupported @ 247 NONAME + _ZTV25CMmMtpDpMetadataMpxAccess @ 248 NONAME + _ZTV26CGetInterdependentPropDesc @ 249 NONAME + _ZTV27CMmMtpDpMetadataVideoAccess @ 250 NONAME + _ZTV29CMmMtpDpMetadataAccessWrapper @ 251 NONAME + _ZThn28_N11CSendObject13UsbDisconnectEv @ 252 NONAME + _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 253 NONAME + _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 254 NONAME + _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 255 NONAME + _ZThn28_N17CRequestProcessor7ReleaseEv @ 256 NONAME + _ZThn28_N17CRequestProcessor9SessionIdEv @ 257 NONAME + _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 258 NONAME + _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 259 NONAME + _ZThn28_NK17CRequestProcessor10ConnectionEv @ 260 NONAME + _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 261 NONAME + _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 262 NONAME + _ZThn28_NK17CRequestProcessor7RequestEv @ 263 NONAME diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h Fri Jun 11 14:04:53 2010 +0300 @@ -55,7 +55,7 @@ * @param aConnection The connection from which the request comes * @param aWrapper medadata access interface */ - IMPORT_C CDeleteObject( MMTPDataProviderFramework& aFramework, + CDeleteObject( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h Fri Jun 11 14:04:53 2010 +0300 @@ -61,7 +61,7 @@ * @param aConnection The connection from which the request comes * @param aWrapper medadata access interface */ - IMPORT_C CGetObjectInfo( MMTPDataProviderFramework& aFramework, + CGetObjectInfo( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h Fri Jun 11 14:04:53 2010 +0300 @@ -20,6 +20,7 @@ #define CGETOBJECTREFERENCES_H #include "crequestprocessor.h" +#include "cmmmtpdpperflog.h" // forward declaration class CMTPTypeArray; @@ -62,16 +63,31 @@ * @param aWrapper Medadata access interface */ CGetObjectReferences( MMTPDataProviderFramework& aFramework, - MMTPConnection& aConnection ); + MMTPConnection& aConnection, + MMmMtpDpConfig& aDpConfig ); /** * Two-phase construction */ void ConstructL(); + /** + * Add references of specified object into reference db, + * for the insertion delayed until the first time it was queried by pc + * @param aRefOwnerSuid, specify the reference owner of which references should be added into db + * @param aReferences, suid array which stored references + */ + void AddReferencesL( const TDesC& aRefOwnerSuid, + CDesCArray& aReferences ); + private: // Array object to store object references CMTPTypeArray* iReferences; + MMmMtpDpConfig& iDpConfig; + +#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) + CMmMtpDpPerfLog* iPerfLog; +#endif }; diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h Fri Jun 11 14:04:53 2010 +0300 @@ -53,7 +53,7 @@ * @param aFramework The data provider framework * @param aConnection The connection from which the request comes */ - IMPORT_C CGetPartialObject( MMTPDataProviderFramework& aFramework, + CGetPartialObject( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ); protected: diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h Fri Jun 11 14:04:53 2010 +0300 @@ -45,7 +45,7 @@ /** * Standard c++ constructor */ - IMPORT_C CRequestUnknown( MMTPDataProviderFramework& aFramework, + CRequestUnknown( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ); protected: diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h Fri Jun 11 14:04:53 2010 +0300 @@ -57,7 +57,7 @@ * @param aConnection The connection from which the request comes * @param aWrapper medadata access interface */ - IMPORT_C CSetObjectReferences( MMTPDataProviderFramework& aFramework, + CSetObjectReferences( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -450,7 +450,6 @@ case EMTPObjectPropCodeNonConsumable: iTargetObject->SetUint( CMTPObjectMetaData::ENonConsumable, element.Uint8L( CMTPTypeObjectPropListElement::EValue ) ); - // TODO: need to reconsider, // should wait all property setting finished then insert object, or not? // need to investigate if it will affect performance result iFramework.ObjectMgr().ModifyObjectL( *iTargetObject ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -103,7 +103,7 @@ // EXPORT_C void CDeleteObject::ServiceL() { - MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); iObjectsToDelete.Reset(); iDeleteError = KErrNone; @@ -126,7 +126,6 @@ { iIsMultiDelete = EFalse; // Not Owned the object - // TODO: need to check if this is best way and if it is applicable to other processors CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle ); if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation ) @@ -192,8 +191,9 @@ TUint32 handle = iObjectsToDelete[0]; iFramework.ObjectMgr().ObjectL( handle, *objectInfo ); - TFileName fileName( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ); - PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ), handle, &fileName ); + PRINT2( _L( "MM MTP <> CDeleteObject::RunL delete object handle is 0x%x, fileName is %S" ), + handle, + &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ) ); if ( objectInfo->Uint( CMTPObjectMetaData::EFormatCode ) == EMTPFormatCodeAssociation ) { @@ -222,7 +222,7 @@ // void CDeleteObject::DeleteObjectL( const CMTPObjectMetaData& aObjectInfo ) { - TFileName fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) ); + TPtrC fileName( aObjectInfo.DesC( CMTPObjectMetaData::ESuid ) ); PRINT1( _L( "MM MTP <> CDeleteObject::DeleteObjectL fileName = %S" ), &fileName ); // To capture special situation: After copy, move, rename playlist folder name, diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -134,7 +134,7 @@ TUint32 CDescriptionUtility::GetGroupCode( TUint32 aPropCode ) { TInt count = sizeof( KPropGroupMapTable ) / sizeof( KPropGroupMapTable[0] ); - // TODO: if need to refine the search approach to improve performance + for( TInt i = 0; i < count; i++ ) { if ( aPropCode == KPropGroupMapTable[i].iPropCode ) diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -46,7 +46,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetFormatCapabilities::CGetFormatCapabilities( MMTPDataProviderFramework& aFramework, +CGetFormatCapabilities::CGetFormatCapabilities( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, aConnection, 0, NULL ), @@ -60,7 +60,7 @@ // The second phase constructor // ----------------------------------------------------------------------------- // -EXPORT_C void CGetFormatCapabilities::ConstructL() +void CGetFormatCapabilities::ConstructL() { // Do nothing } diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -56,7 +56,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetInterdependentPropDesc::CGetInterdependentPropDesc( MMTPDataProviderFramework& aFramework, +CGetInterdependentPropDesc::CGetInterdependentPropDesc( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, aConnection, 0, NULL ), @@ -70,7 +70,7 @@ // Two-phase construction method // ----------------------------------------------------------------------------- // -EXPORT_C void CGetInterdependentPropDesc::ConstructL() +void CGetInterdependentPropDesc::ConstructL() { // Do nothing } diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -57,7 +57,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetObjectPropDesc::CGetObjectPropDesc( MMTPDataProviderFramework& aFramework, +CGetObjectPropDesc::CGetObjectPropDesc( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, aConnection, 0, NULL ), @@ -72,7 +72,7 @@ // The second phase constructor // ----------------------------------------------------------------------------- // -EXPORT_C void CGetObjectPropDesc::ConstructL() +void CGetObjectPropDesc::ConstructL() { // Do nothing } diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -486,7 +486,7 @@ PRINT1( _L( "MM MTP => CGetObjectPropList::ServiceAllPropertiesL aHandle = 0x%x" ), aHandle ); // Append the current object info onto our list - TFileName fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) ); + TPtrC fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) ); TUint32 formatCode = iObject->Uint( CMTPObjectMetaData::EFormatCode ); PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceAllPropertiesL, fileName = %S, formatCode = 0x%x" ), @@ -534,7 +534,7 @@ { PRINT1( _L( "MM MTP => CGetObjectPropList::ServiceGroupPropertiesL aHandle = 0x%x" ), aHandle ); - TFileName fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) ); + TPtrC fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) ); TUint32 formatCode = iObject->Uint( CMTPObjectMetaData::EFormatCode ); PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceGroupPropertiesL, fileName = %S, formatCode = 0x%x" ), diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -95,10 +95,13 @@ return EMTPRespCodeInvalidObjectHandle; } - TFileName fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid ); TUint32 formatCode = objectInfo->Uint( CMTPObjectMetaData::EFormatCode ); - PRINT3( _L( "MM MTP <> CGetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ), objectHandle, &fileName, formatCode); + PRINT3( _L( "MM MTP <> CGetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ), + objectHandle, + &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ), + formatCode ); + const RArray* properties = iDpConfig.GetSupportedPropertiesL( formatCode ); TInt count = properties->Count(); @@ -130,7 +133,7 @@ { PRINT( _L( "MM MTP => CGetObjectPropValue::ServiceL" ) ); - MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); //Get the request information TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); @@ -142,7 +145,6 @@ iObjectInfo = iRequestChecker->GetObjectInfo( objectHandle ); TPtrC suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) ); PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL object file name is %S" ), &suid ); - TParsePtrC parse( suid ); if ( iMTPTypeString != NULL ) { @@ -177,8 +179,7 @@ case EMTPObjectPropCodeProtectionStatus: { iMTPTypeUint16.Set( 0 ); - iMTPTypeUint16 = MmMtpDpUtility::GetProtectionStatusL( iFramework.Fs(), - iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) ); + iMTPTypeUint16 = MmMtpDpUtility::GetProtectionStatusL( iFramework.Fs(), suid ); SendDataL( iMTPTypeUint16 ); } break; @@ -187,8 +188,7 @@ case EMTPObjectPropCodeObjectSize: { iMTPTypeUint64.Set( 0 ); - iMTPTypeUint64 = MmMtpDpUtility::GetObjectSizeL( iFramework.Fs(), - iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) ); + iMTPTypeUint64 = MmMtpDpUtility::GetObjectSizeL( iFramework.Fs(), suid ); SendDataL( iMTPTypeUint64 ); } break; @@ -196,11 +196,7 @@ // Filename case EMTPObjectPropCodeObjectFileName: { - const TDesC& suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) ); - PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL SUID = %S" ), &suid ); - - TPtrC path( suid.Ptr(), suid.Length() ); - TParsePtrC parse( path ); + TParsePtrC parse( suid ); iMTPTypeString = CMTPTypeString::NewL( parse.NameAndExt() ); SendDataL( *iMTPTypeString ); } @@ -238,9 +234,7 @@ case EMTPObjectPropCodeDateModified: { TBuf timeStr; - MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(), - iObjectInfo->DesC( CMTPObjectMetaData::ESuid ), - timeStr ); + MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(), suid, timeStr ); PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL Date time %S" ), &timeStr ); iMTPTypeString = CMTPTypeString::NewL( timeStr ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -18,14 +18,26 @@ #include #include +#include #ifdef _DEBUG -#include #include #endif #include "cgetobjectreferences.h" #include "mmmtpdputility.h" #include "mmmtpdplogger.h" +#include "cmmmtpdpperflog.h" +#include "mmmtpdpconfig.h" +#include "cmmmtpdpmetadataaccesswrapper.h" +#include "tmmmtpdppanic.h" + +const TInt KMTPDriveGranularity = 5; + +#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) +_LIT( KMpxQueryAbstractMediaReference, "MpxQueryAbstractMediaReference" ); +_LIT( KReferenceManagerSetReference, "ReferenceManagerSetReference" ); +_LIT( KObjectManagerHandle, "ObjectManagerHandle" ); +#endif // ----------------------------------------------------------------------------- // Verification data for the GetReferences request @@ -50,10 +62,11 @@ // EXPORT_C MMmRequestProcessor* CGetObjectReferences::NewL( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, - MMmMtpDpConfig& /*aDpConfig*/ ) + MMmMtpDpConfig& aDpConfig ) { CGetObjectReferences* self = new ( ELeave ) CGetObjectReferences( aFramework, - aConnection ); + aConnection, + aDpConfig ); CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); @@ -68,6 +81,9 @@ // void CGetObjectReferences::ConstructL() { +#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) + iPerfLog = CMmMtpDpPerfLog::NewL( _L( "CAbstractMediaMtpDataProviderEnumerator" ) ); +#endif } // ----------------------------------------------------------------------------- @@ -78,6 +94,10 @@ EXPORT_C CGetObjectReferences::~CGetObjectReferences() { delete iReferences; + +#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) + delete iPerfLog; +#endif // _DEBUG } // ----------------------------------------------------------------------------- @@ -86,11 +106,13 @@ // ----------------------------------------------------------------------------- // CGetObjectReferences::CGetObjectReferences( MMTPDataProviderFramework& aFramework, - MMTPConnection& aConnection ) : - CRequestProcessor( aFramework, - aConnection, - sizeof ( KMTPGetObjectReferencesPolicy ) / sizeof( TMTPRequestElementInfo ), - KMTPGetObjectReferencesPolicy ) + MMTPConnection& aConnection, + MMmMtpDpConfig& aDpConfig ) : + CRequestProcessor( aFramework, + aConnection, + sizeof ( KMTPGetObjectReferencesPolicy ) / sizeof( TMTPRequestElementInfo ), + KMTPGetObjectReferencesPolicy ), + iDpConfig( aDpConfig ) { PRINT( _L( "Operation: GetObjectReferences(0x9810)" ) ); } @@ -104,14 +126,44 @@ { PRINT( _L( "MM MTP => CGetObjectReferences::ServiceL" ) ); - MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); PRINT1( _L( "MM MTP <> CGetObjectReferences::ServiceL objectHandle = 0x%x" ), - objectHandle ); - MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr(); + objectHandle ); + + CMTPObjectMetaData* parentObject = iRequestChecker->GetObjectInfo( objectHandle ); + __ASSERT_DEBUG( parentObject, Panic( EMmMTPDpObjectNull ) ); + + iFramework.ObjectMgr().ObjectL( objectHandle, *parentObject ); + TUint subFormatCode = parentObject->Uint( CMTPObjectMetaData::EFormatSubCode ); + PRINT1( _L( "MM MTP <> CGetObjectReferences::ServiceL subFormatCode = 0x%x" ), + subFormatCode ); + + if ( MmMtpDpUtility::HasReference( parentObject->Uint( CMTPObjectMetaData::EFormatCode ) ) + && ( subFormatCode == EMTPSubFormatCodeUnknown ) ) + { + CDesCArray* references = new ( ELeave ) CDesCArrayFlat( KMTPDriveGranularity ); + CleanupStack::PushL( references ); // + references + + PERFLOGSTART( KMpxQueryAbstractMediaReference ); + TRAP_IGNORE( iDpConfig.GetWrapperL().GetAllReferenceL( *parentObject, *references ) ); + PERFLOGSTOP( KMpxQueryAbstractMediaReference ); + + // insert references into reference db + TPtrC parentSuid( parentObject->DesC( CMTPObjectMetaData::ESuid ) ); + AddReferencesL( parentSuid, *references ); + + CleanupStack::PopAndDestroy( references ); // - references + + parentObject->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined ); // set it to something else + iFramework.ObjectMgr().ModifyObjectL( *parentObject ); + } + + delete iReferences; iReferences = NULL; + MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr(); iReferences = referenceMgr.ReferencesLC( TMTPTypeUint32( objectHandle ) ); CleanupStack::Pop( iReferences ); SendDataL( *iReferences ); @@ -140,4 +192,44 @@ PRINT( _L( "MM MTP <= CGetObjectReferences::ServiceL" ) ); } +// ----------------------------------------------------------------------------- +// CGetObjectReferences::AddReferencesL +// GetObjectInfo request handler +// ----------------------------------------------------------------------------- +// +void CGetObjectReferences::AddReferencesL( const TDesC& aRefOwnerSuid, + CDesCArray& aReferences ) + { + TInt count = aReferences.Count(); + PRINT2( _L("MM MTP => CGetObjectReferences::AddReferencesL aRefOwnerSuid = %S, ref count = %d"), &aRefOwnerSuid, count ); + + // check if references are valid + TInt removeCount = 0; + for ( TInt i = 0; i < count; i++ ) + { + TInt index = i - removeCount; + TPtrC temp( aReferences[index] ); + PRINT2( _L( "MM MTP <> CGetObjectReferences::AddReferencesL ref[%d]'s name = %S" ), index, &temp ); + PERFLOGSTART( KObjectManagerHandle ); + TUint32 handle = iFramework.ObjectMgr().HandleL( temp ); + PERFLOGSTOP( KObjectManagerHandle ); + if ( handle == KMTPHandleNone ) // object doesn't exist + { + PRINT1( _L( "MM MTP <> CGetObjectReferences::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp ); + + // if handle is invalid, remove from reference array + aReferences.Delete( index, 1 ); + removeCount++; + } + } + + // add all references into references db + MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr(); + PERFLOGSTART( KReferenceManagerSetReference ); + referenceMgr.SetReferencesL( aRefOwnerSuid, aReferences ); + PERFLOGSTOP( KReferenceManagerSetReference ); + + PRINT( _L( "MM MTP <= CGetObjectReferences::AddReferencesL" ) ); + } + // end of file diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -63,7 +63,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetPartialObject::CGetPartialObject( MMTPDataProviderFramework& aFramework, +CGetPartialObject::CGetPartialObject( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ) : CRequestProcessor( aFramework, aConnection, @@ -154,12 +154,10 @@ CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( iObjectHandle ); __ASSERT_DEBUG( objectInfo, Panic( EMmMTPDpObjectNull ) ); - // NOTE: Change all TBuf into TFileName for easily change when fs change the limitation of filename - TFileName fileSuid; - fileSuid.Append( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ); + TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid ); iFileObject = CMTPTypeFile::NewL( iFramework.Fs(), - fileSuid, + fileName, ( TFileMode ) ( EFileRead | EFileShareReadersOnly ), iPartialDataLength, iOffset ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -279,9 +279,9 @@ // void CMoveObject::MoveFileL( const TDesC& aNewFileName ) { - TFileName oldFileName = iObjectInfo->DesC( CMTPObjectMetaData::ESuid ); + HBufC* oldFileName = iObjectInfo->DesC( CMTPObjectMetaData::ESuid ).AllocLC(); // + oldFileName PRINT2( _L( "MM MTP => CMoveObject::MoveFileL old name = %S, aNewFileName = %S" ), - &oldFileName, + oldFileName, &aNewFileName ); if ( iStorageId == iObjectInfo->Uint( CMTPObjectMetaData::EStorageId ) ) @@ -295,7 +295,9 @@ TRAPD( err, SetPropertiesL( aNewFileName ) ); CFileMan* fileMan = CFileMan::NewL( iFramework.Fs() ); - err = fileMan->Move( oldFileName, aNewFileName ); + err = fileMan->Move( *oldFileName, aNewFileName ); + + CleanupStack::PopAndDestroy( oldFileName ); // - oldFileName if ( err != KErrNone ) PRINT1( _L( "MM MTP <> CMoveObject::MoveFileL err = %d" ), err ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -137,7 +137,6 @@ // EXPORT_C void CRequestProcessor::UsbDisconnect() { - // TODO: reset the CenRep value } // ----------------------------------------------------------------------------- diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -60,7 +60,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CRequestUnknown::CRequestUnknown( MMTPDataProviderFramework& aFramework, +CRequestUnknown::CRequestUnknown( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ) : CRequestProcessor( aFramework, aConnection, 0, NULL ) { diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -129,7 +129,6 @@ PRINT1( _L( "MM MTP <> CSendObject::ConstructL DataProviderId = 0x%x" ), iFramework.DataProviderId()); - PRINT( _L( "MM MTP <= CSendObject::ConstructL" ) ); } @@ -1035,6 +1034,7 @@ TBool result( EFalse ); + TParsePtrC parser( aFileName ); if ( aFileName.Length() > 0 ) { iFullPath.Zero(); @@ -1044,7 +1044,6 @@ // Only add extension for alb to pass winlogo test cases TInt length = iFullPath.Length() + aFileName.Length(); - TParsePtrC parser( aFileName ); TBool isAlbWithoutExt = ( ( iObjectFormat == EMTPFormatCodeAbstractAudioAlbum ) && ( !parser.ExtPresent() ) ); if ( isAlbWithoutExt ) @@ -1062,8 +1061,7 @@ if ( result && ( iObjectFormat != MmMtpDpUtility::FormatFromFilename( iFullPath ) ) ) { - TParsePtrC file( aFileName ); - if ( ( iObjectFormat == EMTPFormatCode3GPContainer ) && (file.Ext().CompareF( KTxtExtensionODF ) == 0)) + if ( ( iObjectFormat == EMTPFormatCode3GPContainer ) && ( parser.Ext().CompareF( KTxtExtensionODF ) == 0)) { PRINT( _L( "MM MTP <> might happen if function is called before physical file arrives" ) ); // might happen if function is called before physical file arrives @@ -1267,6 +1265,11 @@ iDpConfig.GetWrapperL().AddDummyFileL( iFullPath ); } + // Set subformat code to avoid MPX query for the first time to GetObjectReference, + // in which case references has been kept in fw. + if ( MmMtpDpUtility::HasReference( iObjectFormat ) ) + iReceivedObjectInfo->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined ); + // add playlist to MPX DB TRAPD( err, AddMediaToStoreL() ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -154,7 +154,7 @@ return EMTPRespCodeInvalidObjectHandle; } - TFileName fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid ); + TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid ); TUint32 formatCode = objectInfo->Uint( CMTPObjectMetaData::EFormatCode ); PRINT3( _L( "MM MTP <> CSetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ), objectHandle, @@ -199,7 +199,7 @@ { PRINT( _L( "MM MTP => CSetObjectPropValue::ServiceL" ) ); - MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); __ASSERT_DEBUG( iRequestChecker, Panic( EMmMTPDpRequestCheckNull ) ); TUint32 handle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -88,7 +88,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CSetObjectReferences::CSetObjectReferences( MMTPDataProviderFramework& aFramework, +CSetObjectReferences::CSetObjectReferences( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, @@ -105,7 +105,7 @@ // set references to DB // ----------------------------------------------------------------------------- // -EXPORT_C void CSetObjectReferences::DoSetObjectReferencesL( const CMTPObjectMetaData& aObject ) +void CSetObjectReferences::DoSetObjectReferencesL( const CMTPObjectMetaData& aObject ) { TUint formatCode = aObject.Uint( CMTPObjectMetaData::EFormatCode ); TBool hasReference = MmMtpDpUtility::HasReference( formatCode ); @@ -164,6 +164,10 @@ iFramework.ObjectMgr().ObjectL( objectHandle, *object ); PRINT1( _L( "MM MTP <> object file name is %S" ), &(object->DesC( CMTPObjectMetaData::ESuid ) ) ); DoSetObjectReferencesL( *object ); + + // set it to something else other than EMTPSubFormatCodeUnknown to prevent being queried from MPX later in the same session + object->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined ); + iFramework.ObjectMgr().ModifyObjectL( *object ); CleanupStack::PopAndDestroy( object ); // - object diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -502,7 +502,7 @@ // CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL // // --------------------------------------------------------------------------- -EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL( const TDesC& aStoreRoot, CMPXMediaArray** aAbstractMedias, TMPXGeneralCategory aCategory ) +EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL( const TDesC& aStoreRoot, CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory ) { iMmMtpDpMetadataMpxAccess->GetAllAbstractMediaL( aStoreRoot, aAbstractMedias, aCategory ); } @@ -512,19 +512,11 @@ // // --------------------------------------------------------------------------- // -EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL( CMPXMedia* aAbstractMedia, CDesCArray& aReferences ) +EXPORT_C void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL( const CMTPObjectMetaData& aRefOwner, CDesCArray& aReferences ) { - iMmMtpDpMetadataMpxAccess->GetAllReferenceL( aAbstractMedia, aReferences ); - } - -// --------------------------------------------------------------------------- -// CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL -// -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC* CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia, TMPXGeneralCategory aCategory ) - { - return iMmMtpDpMetadataMpxAccess->GetAbstractMediaNameL( aAbstractMedia, aCategory ); + TMPXGeneralCategory category = Category( aRefOwner ); + if ( category == EMPXPlaylist || category == EMPXAbstractAlbum ) + iMmMtpDpMetadataMpxAccess->GetAllReferenceL( aRefOwner.DesC( CMTPObjectMetaData::ESuid ), category, aReferences ); } // ----------------------------------------------------------------------------- diff -r edd273b3192a -r 2ee890d2f7e7 mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -67,10 +67,6 @@ _LIT( KSetMetadataValue, "SetMetadataValueL" ); #endif -#ifdef _DEBUG -_LIT( KMtpMpxPanic, "CMmMtpDpMetadataMpxAccess" ); -#endif - CMmMtpDpMetadataMpxAccess* CMmMtpDpMetadataMpxAccess::NewL( RFs& aRfs ) { CMmMtpDpMetadataMpxAccess* self = new( ELeave ) CMmMtpDpMetadataMpxAccess( aRfs ); @@ -81,9 +77,10 @@ return self; } -CMmMtpDpMetadataMpxAccess::CMmMtpDpMetadataMpxAccess( RFs& aRfs ): +CMmMtpDpMetadataMpxAccess::CMmMtpDpMetadataMpxAccess( RFs& aRfs ) : iRfs( aRfs ), - iSampleData( NULL ) + iSampleData( NULL ), + iHasCleanUp( EFalse ) { // Do nothing } @@ -149,6 +146,7 @@ iCollectionHelper = NULL; } + iHasCleanUp = EFalse; // must reset, as class is not always destoryed PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::CloseSession" ) ); } @@ -597,9 +595,14 @@ // as there is NOT a separate database for deleted files. PRINT( _L( "MM MTP <> Deleting metadata for deleted files" ) ); - PERFLOGSTART( KMpxCollectionCleanupDeletedMediasL ); - CollectionHelperL()->CleanupDeletedMediasL(); - PERFLOGSTOP( KMpxCollectionCleanupDeletedMediasL ); + if ( !iHasCleanUp ) + { + PERFLOGSTART( KMpxCollectionCleanupDeletedMediasL ); + CollectionHelperL()->CleanupDeletedMediasL(); + PERFLOGSTOP( KMpxCollectionCleanupDeletedMediasL ); + + iHasCleanUp = ETrue; + } PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::UpdateMusicCollectionL" ) ); } @@ -1000,7 +1003,6 @@ EMPXSong ); // File Path // - TParsePtrC parse( aFullFileName ); media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName ); media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); @@ -1336,7 +1338,7 @@ // --------------------------------------------------------------------------- // void CMmMtpDpMetadataMpxAccess::GetAllAbstractMediaL( const TDesC& aStoreRoot, - CMPXMediaArray** aAbstractMedias, + CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory ) { PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllAbstractMediaL" ) ); @@ -1387,8 +1389,9 @@ User::Leave( KErrNotSupported ); } - *aAbstractMedias = - CMPXMediaArray::NewL( *( foundMedia->Value ( KMPXMediaArrayContents ) ) ); + CMPXMediaArray* mediaArray = foundMedia->Value ( KMPXMediaArrayContents ); + for ( TInt i = 0; i < count; i++ ) + aAbstractMedias.AppendL( ( *mediaArray )[i]->ValueText( KMPXMediaGeneralUri ) ); } CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia @@ -1401,15 +1404,36 @@ // Get all references of specified playlist // --------------------------------------------------------------------------- // -void CMmMtpDpMetadataMpxAccess::GetAllReferenceL( CMPXMedia* aAbstractMedia, +void CMmMtpDpMetadataMpxAccess::GetAllReferenceL( const TDesC& aRefOwnerSuid, + TMPXGeneralCategory aCategory, CDesCArray& aReferences ) { PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL" ) ); - __ASSERT_DEBUG( aAbstractMedia, User::Panic( KMtpMpxPanic, KErrArgument ) ); + // 1. Get CMPXMedia object by the reference owner suid + RArray attributes; + CleanupClosePushL( attributes ); // + attributes + attributes.AppendL( KMPXMediaGeneralId ); + attributes.AppendL( KMPXMediaGeneralTitle ); + attributes.AppendL( KMPXMediaGeneralUri ); + + CMPXMedia* refOwner = CollectionHelperL()->GetL( aRefOwnerSuid, + attributes.Array(), + aCategory ); - // Extract the playlist id from the found object - TUint32 abstractMediaId = *( *aAbstractMedia ).Value( KMPXMediaGeneralId ); + __ASSERT_DEBUG( refOwner, Panic( EMmMTPDpObjectNull ) ); + + CleanupStack::PushL( refOwner ); // + refOwner + + // 2. Extract the general id from the found object + if ( !refOwner->IsSupported( KMPXMediaGeneralId ) ) + PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL Before GeneralId" ) ); + + TUint32 abstractMediaId = *( *refOwner ).Value( KMPXMediaGeneralId ); + PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL After GeneralId" ) ); + + CleanupStack::PopAndDestroy( refOwner ); // - refOwner + CleanupStack::PopAndDestroy( &attributes ); // - attributes // find the media object that contains a list of songs in the playlist RArray contentIDs; @@ -1467,7 +1491,7 @@ // may replace the following 3 statements into the following: // AppendL(refMedia->ValueText(KMPXMediaGeneralUri)); - HBufC* musicFileLocation = refMedia->ValueText( KMPXMediaGeneralUri ).AllocLC(); + HBufC* musicFileLocation = refMedia->ValueText( KMPXMediaGeneralUri ).AllocLC(); // + musicFileLocation aReferences.AppendL( *musicFileLocation ); PRINT1( _L("MM MTP <> CMmMtpDpMetadataMpxAccess::GetAllReferenceL, [%S] found from MPX db"), musicFileLocation ); @@ -1482,33 +1506,6 @@ } // --------------------------------------------------------------------------- -// CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL -// -// --------------------------------------------------------------------------- -// -HBufC* CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL( CMPXMedia* aAbstractMedia, - TMPXGeneralCategory aCategory ) - { - PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) ); - HBufC* name = NULL; - if ( aCategory == EMPXPlaylist || aCategory == EMPXAbstractAlbum ) - { - if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) ) - { - User::Leave( KErrNotSupported ); - } - name = aAbstractMedia->ValueText( KMPXMediaGeneralUri ).AllocL(); - } - else - { - User::Leave( KErrNotSupported ); - } - - PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) ); - return name; - } - -// --------------------------------------------------------------------------- // CMmMtpDpMetadataMpxAccess::GetModifiedContentL // Get modified content // --------------------------------------------------------------------------- diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h Fri Jun 11 14:04:53 2010 +0300 @@ -106,7 +106,7 @@ gint Stop(); /** - * Pause ring tone playback. + * Pause video ring tone playback. * * @return * QTMS_RESULT_SUCCESS if the operation was successful. diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h Thu May 27 13:19:19 2010 +0300 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h Fri Jun 11 14:04:53 2010 +0300 @@ -344,21 +344,6 @@ gint GetState(); /** - * Get stream type. - * - * This function can be called at any time. - * - * The possible types are: - * QTMS_STREAM_UPLINK - * QTMS_STREAM_DOWNLINK - * - * @return - * Stream type indicating whether it is an uplink or downlink. - * - */ - gint GetStreamId(); - - /** * Get stream ID. * * This function can be called at any time. @@ -367,6 +352,21 @@ * Unique ID of the stream. * */ + gint GetStreamId(); + + /** + * Get stream type. + * + * This function can be called at any time. + * + * The possible types are: + * TMS_STREAM_UPLINK + * TMS_STREAM_DOWNLINK + * + * @return + * Stream type indicating whether it is an uplink or downlink. + * + */ gint GetStreamType(); /** @@ -381,13 +381,22 @@ * Upon stream's successful transition to initialized state, the stream will * be in the QTMS_STREAM_INITIALIZED state. * - * QUESTION??? Should we do the initial checking here??? (for source, - * sink and other settings) + * Before stream can transition to initialized state the following + * objects must be added to the stream: + * CS call: UPL: mic source and modem sink + * CS call: DNL: modem source and speaker sink + * IP call: UPL: mic source, codec format and client sink + * IP call: DNL: client source, codec format and speaker sink * * @return + * Common return codes: * QTMS_RESULT_SUCCESS if stream transitioned to the initialized state. * QTMS_RESULT_INVALID_STATE if stream has not transitioned to the - * QTMS_STREAM_UNINITIALIZED state. + * QTMS_STREAM_INITIALIZED state. + * QTMS_RESULT_FORMAT_TYPE_UNSPECIFIED (IP call only) when stream + * has no format attached to it. + * QTMS_RESULT_UNINITIALIZED_OBJECT when stream has no sink or source + * element attached to it. * */ gint Init(); @@ -407,10 +416,11 @@ * Note: In QTMS Ver 1.0.0.0, pausing stream for CS call is not supported. * * @return - * QTMS_RESULT_SUCCESS if stream successfully transitioned to the paused - * state. + * Common return codes: + * QTMS_RESULT_SUCCESS if stream successfully transitioned to the + * paused state. * QTMS_RESULT_INVALID_STATE if stream is not in the - * QTMS_STREAM_INITIALIZED or QTMS_STREAM_STARTED state. + * QTMS_STREAM_INITIALIZED or QTMS_STREAM_PAUSED state. * */ gint Pause(); @@ -432,10 +442,11 @@ * be in the QTMS_STREAM_STARTED state. * * @return - * QTMS_RESULT_SUCCESS if stream successfully transitioned to the paused - * state. + * Common return codes: + * QTMS_RESULT_SUCCESS if stream successfully transitioned to the + * started state. * QTMS_RESULT_INVALID_STATE if stream is not in the - * QTMS_STREAM_INITIALIZED or QTMS_STREAM_PAUSED state. + * QTMS_STREAM_INITIALIZED or QTMS_STREAM_STARTED state. * */ gint Start(); @@ -453,8 +464,9 @@ * be in the QTMS_STREAM_INITIALIZED state. * * @return - * QTMS_RESULT_SUCCESS if stream successfully transitioned to the paused - * state. + * Common return codes: + * QTMS_RESULT_SUCCESS if stream successfully transitioned to the + * stopped state. * QTMS_RESULT_INVALID_STATE if stream is not in the * QTMS_STREAM_STARTED or QTMS_STREAM_PAUSED state. * diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtestmains60.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtestmains60.h Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,39 @@ +/* +* 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: +* +*/ + +#ifndef QTESTMAINS60 +#define QTESTMAINS60 + +#define QTEST_MAIN_S60(QTmsCsTest) \ +int main(int argc, char *argv[]) \ +{ \ +char *new_argv[3]; \ +QCoreApplication app(argc, argv); \ +\ +QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \ +QByteArray bytes = str.toAscii(); \ +\ +char arg1[] = "-o"; \ +\ +new_argv[0] = argv[0]; \ +new_argv[1] = arg1; \ +new_argv[2] = bytes.data(); \ +\ +QTmsCsTest tc; \ +return QTest::qExec(&tc, 3, new_argv); \ +} +#endif diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,1208 @@ +/* +* 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: QTMS CS test +* +*/ +#include +#include +#include "qtestmains60.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using namespace QTMS; + +_LIT8(KRTBeepSequence, "\x00\x11\x0A\x0A\x08\x73\x0A\x40\x28\x0A\xF7\ +\x05\xFC\x40\x64\x0A\x08\x40\x32\x0A\xF7\x06\x0B"); +_LIT16(KTestFile1, "c:\\data\\sounds\\digital\\test_8khz.wav"); + +class QTmsCsTest : public QObject + { +Q_OBJECT +private slots: + void initTestCase(); + void CSCallSetup(); + + void CreateUplink(); + void CreateDnlink(); + void CreateMicSource(); + void AddMicSourceToStream(); + void CreateModemSink(); + void AddModemSinkToStream(); + void CreateModemSource(); + void AddModemSourceToStream(); + void CreateSpeakerSink(); + void AddSpeakerSinkToStream(); + + void CreateStreamVol(); + void CreateStreamGain(); + + void InitUplink(); + void InitDnlink(); + + void StartUplink(); + void StopUplink(); + void StartDnlink(); + + void StreamVol(); + void StreamGain(); + // void StopDnlink(); + + void CreateGlobalVol(); + void CreateGlobalGain(); + void CreateRouting_data(); + void CreateRouting(); + + void CreateInband_data(); + void CreateInband(); + void CreateDnlinkDtmf(); + void CreateUplinkDtmf(); + + void CreateRingTone(); + + void InitRingTonePlayerFromProfiles(); + void PlayRingTone(); + void PauseRingTone(); + void MuteRingTone(); + void StopRingTone(); + void CloseRingTonePlayer(); + + void CloseUplink(); + void CloseDownlink(); + void cleanupTestCase(); +public slots: + //From TMSStreamObserver + void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event); + //From TMSClientSinkObserver + void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event); + //From TMSGlobalRoutingObserver + void GlobalRoutingEvent(const QTMSGlobalRouting& routing, + QTMSSignalEvent event, QTMSAudioOutput output); + //From TMSRingToneObserver + void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event); + //From TMSDTMFObserver + void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event); + //From TMSInbandToneObserver + void InbandToneEvent(const QTMSInbandTone& inbandtone, + QTMSSignalEvent event); + +private: + void InitRingToneSequencePlayer(); + void InitRingTonePlayerFromFile(); + void StopDnlink(); + void GetAvailableOutput(); + void DisplayDevice(QTMSAudioOutput device); + +private: + QTMSFactory *m_Factory; + QTMSCall *m_Call; + QTMSDTMF *m_Dnlnkdtmf; + QTMSDTMF *m_Uplnkdtmf; + QTMSStream *m_Dnlink; + QTMSStream *m_Uplink; + QTMSSource *m_MicSource; + QTMSSource *m_ModemSource; + QTMSSink *m_SpeakerSink; + QTMSSink *m_ModemSink; + QTMSEffect *m_Vol; + QTMSEffect *m_Gain; + QTMSEffect *m_GlobalVol; + QTMSEffect *m_GlobalGain; + QTMSGlobalRouting *m_Routing; + QTMSInbandTone *m_InbandTonePlayer; + QTMSRingTone *m_RingTonePlayer; + GString* m_RTStr; + GString* m_TTSStr; + QSignalSpy *m_UplinkSpy; + QSignalSpy *m_DnlinkSpy; + QSignalSpy *m_InbandSpy; + QSignalSpy *m_RoutingSpy; + OutputVector m_Availableoutputs; + + }; + +void QTmsCsTest::initTestCase() + { + qDebug("Start QTms CS tests"); + + g_setenv("G_SLICE", "always-malloc", 1); + m_Factory = NULL; + m_Call = NULL; + m_Dnlink = NULL; + m_Uplink = NULL; + m_MicSource = NULL; + m_ModemSource = NULL; + m_SpeakerSink = NULL; + m_ModemSink = NULL; + m_Vol = NULL; + m_Gain = NULL; + m_GlobalVol = NULL; + m_GlobalGain = NULL; + m_Routing = NULL; + m_Dnlnkdtmf = NULL; + m_Uplnkdtmf = NULL; + m_InbandTonePlayer = NULL; + m_RingTonePlayer = NULL; + m_UplinkSpy = NULL; + m_DnlinkSpy = NULL; + + QTMSVer *ver(NULL); + gint status; + status = QTMSFactory::CreateFactory(m_Factory, *ver); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qRegisterMetaType("QTMSSignalEvent"); + qRegisterMetaType("QTMSAudioOutput"); + + + } + +void QTmsCsTest::cleanupTestCase() + { + qDebug("End QTms tests"); + + StopDnlink(); + + m_Factory->DeleteSource(m_MicSource); + m_Factory->DeleteSource(m_ModemSource); + m_Factory->DeleteSink(m_ModemSink); + m_Factory->DeleteSink(m_SpeakerSink); + + m_Factory->DeleteDTMF(m_Dnlnkdtmf); + m_Factory->DeleteInbandTonePlayer(m_InbandTonePlayer); + m_Factory->DeleteRingTonePlayer(m_RingTonePlayer); + + m_Factory->DeleteEffect(m_Vol); + m_Factory->DeleteEffect(m_Gain); + m_Factory->DeleteEffect(m_GlobalVol); + m_Factory->DeleteEffect(m_GlobalGain); + + m_Factory->DeleteGlobalRouting(m_Routing); + + m_Call->DeleteStream(m_Uplink); + m_Call->DeleteStream(m_Dnlink); + + m_Factory->DeleteCall(m_Call); + + delete m_Factory; + + } + +void QTmsCsTest::CSCallSetup() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_Call) + { + gboolean issupported(FALSE); + m_Factory->IsCallTypeSupported(QTMS_CALL_CS, issupported); + QVERIFY(issupported == TRUE); + status = m_Factory->CreateCall(QTMS_CALL_CS, m_Call, 0); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTMSCallType calltype = m_Call->GetCallType(); + QVERIFY(calltype == QTMS_CALL_CS); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + +void QTmsCsTest::CreateUplink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_UplinkSpy = new QSignalSpy(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_UplinkSpy->isValid() ); + + //QCOMPARE(m_UplinkSpy->count(), 0 ); + + + connect(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + } + } + + void QTmsCsTest::CreateDnlink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_DnlinkSpy = new QSignalSpy(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_DnlinkSpy->isValid() ); + + //QCOMPARE(m_DnlinkSpy->count(), 0 ); + + connect(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + } + } + + + void QTmsCsTest::CreateModemSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_ModemSink) + { + status = m_Factory->CreateSink(QTMS_SINK_MODEM, m_ModemSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::CreateModemSource() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_ModemSource) + { + status = m_Factory->CreateSource(QTMS_SOURCE_MODEM, m_ModemSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddModemSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_ModemSink) + { + status = m_Uplink->AddSink(m_ModemSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddModemSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_ModemSource) + { + status = m_Dnlink->AddSource(m_ModemSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + + void QTmsCsTest::CreateMicSource() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_MicSource) + { + status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddMicSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_MicSource) + { + status = m_Uplink->AddSource(m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::CreateSpeakerSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_SpeakerSink) + { + status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddSpeakerSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_SpeakerSink) + { + status = m_Dnlink->AddSink(m_SpeakerSink); + qDebug("QTMS speaker sink added to stream"); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::InitUplink() + { + QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 1 ); + } + + void QTmsCsTest::InitDnlink() + { + QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 1 ); + } + + void QTmsCsTest::StartUplink() + { + QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 2 ); + } + + void QTmsCsTest::StartDnlink() + { + QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 2 ); + } +void QTmsCsTest::StopUplink() + { + QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 3 ); + } + +void QTmsCsTest::StopDnlink() + { + QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 3 ); + } + +void QTmsCsTest::CloseUplink() + { + m_Uplink->Deinit(); + QTest::qWait(1000); + if (m_Uplink) + { + if (m_Gain) + { + QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS); + } + if (m_MicSource) + { + QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS); + } + if (m_ModemSink) + { + QVERIFY(m_Uplink->RemoveSink(m_ModemSink)== QTMS_RESULT_SUCCESS); + } + } + } + +void QTmsCsTest::CloseDownlink() + { + m_Dnlink->Deinit(); + QTest::qWait(1000); + if (m_Dnlink) + { + if (m_Vol) + { + QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS); + } + if (m_ModemSource) + { + QVERIFY(m_Dnlink->RemoveSource(m_ModemSource)== QTMS_RESULT_SUCCESS); + } + if (m_SpeakerSink) + { + QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS); + } + } + + } + +void QTmsCsTest::CreateStreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_Vol) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Vol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + if(m_Dnlink) + { + status = m_Dnlink->AddEffect(m_Vol); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + + } + } + +void QTmsCsTest::StreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + guint maxvol(0); + if (m_Vol) + { + status = static_cast (m_Vol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_Vol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_Vol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(vol,maxvol); + } + } + +void QTmsCsTest::CreateStreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_Gain) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Gain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + if(m_Uplink) + { + status = m_Uplink->AddEffect(m_Gain); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + } + +void QTmsCsTest::StreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Gain) + { + guint maxgain(0); + static_cast (m_Gain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_Gain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (m_Gain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(gain,maxgain); + } + + } + + +void QTmsCsTest::CreateGlobalVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalVol) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalVol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxvol(0); + status = static_cast(m_GlobalVol)->GetMaxLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast(m_GlobalVol)->SetLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_GlobalVol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(vol,maxvol); + + } + } + + +void QTmsCsTest::CreateGlobalGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalGain) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalGain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxgain(0); + static_cast(m_GlobalGain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast(m_GlobalGain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast(m_GlobalGain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(gain,maxgain); + + } + } + +void QTmsCsTest::CreateRouting_data() + { + gint status; + if (m_Factory && !m_Routing) + { + status = m_Factory->CreateGlobalRouting(m_Routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_RoutingSpy = new QSignalSpy(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent, + QTMSAudioOutput))); + + QVERIFY( m_RoutingSpy->isValid() ); + + // QCOMPARE(m_RoutingSpy->count(), 0 ); + connect(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent,QTMSAudioOutput)), + this, + SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent,QTMSAudioOutput))); + } + + //Populate data and test based on available output + GetAvailableOutput(); + } + +void QTmsCsTest::CreateRouting() + { + gint status(QTMS_RESULT_SUCCESS); + + QFETCH(QTMSAudioOutput, routing); + + if(m_Routing) + { + status = m_Routing->SetOutput(routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); +#ifndef __WINSCW__ + QTest::qWait(1000); + // QCOMPARE(m_RoutingSpy->count(), 1 ); +#endif + QTMSAudioOutput current; + status = m_Routing->GetOutput(current); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + QCOMPARE(routing,current); + + QTMSAudioOutput previous; + status = m_Routing->GetPreviousOutput(previous); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("Previous routing:"); + DisplayDevice(previous); + } + } + +void QTmsCsTest::GetAvailableOutput() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Routing) + { + status = m_Routing->GetAvailableOutputs(m_Availableoutputs); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qDebug("Available outputs: %d",m_Availableoutputs.size()); + std::vector::iterator iteroutputs = + m_Availableoutputs.begin(); + for (; iteroutputs < m_Availableoutputs.end(); iteroutputs++) + { + DisplayDevice(*iteroutputs); + } + } + } + +void QTmsCsTest::DisplayDevice(QTMSAudioOutput device) + { + QTest::addColumn("routing"); + + switch (device) + { + case QTMS_AUDIO_OUTPUT_NONE: + { + qDebug("none"); + QTest::newRow("None")<CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (m_Dnlnkdtmf) + { + QSignalSpy dtmfspy(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + QVERIFY( dtmfspy.isValid() ); + + //QCOMPARE(dtmfspy.count(), 0 ); + + connect(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this, + SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + dtmfstring = g_string_new("4723"); + status = m_Dnlnkdtmf->SetTone(dtmfstring); + + m_Dnlnkdtmf->Start(); + QTest::qWait(1000); + g_string_free(dtmfstring, TRUE); + //QCOMPARE(dtmfspy.count(), 1 ); + + status = m_Dnlnkdtmf->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(dtmfspy.count(), 2 ); + + } + } + +void QTmsCsTest::CreateUplinkDtmf() + { + gint status(QTMS_RESULT_SUCCESS); + GString* dtmfstring(NULL); + + status = m_Factory->CreateDTMF(QTMS_STREAM_UPLINK, m_Uplnkdtmf); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (m_Uplnkdtmf) + { + QSignalSpy uplinkdtmfspy(m_Uplnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + QVERIFY( uplinkdtmfspy.isValid() ); + + //QCOMPARE(dtmfspy.count(), 0 ); + + connect(m_Uplnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this, + SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + dtmfstring = g_string_new("4723"); + status = m_Uplnkdtmf->SetTone(dtmfstring); + + m_Uplnkdtmf->Start(); + QTest::qWait(1000); + g_string_free(dtmfstring, TRUE); + //QCOMPARE(dtmfspy.count(), 1 ); + + m_Uplnkdtmf->ContinueDTMFStringSending(FALSE); + + status = m_Uplnkdtmf->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(dtmfspy.count(), 2 ); + + } + } + + +void QTmsCsTest::CreateInband_data() + { + + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_InbandTonePlayer) + { + status = m_Factory->CreateInbandTonePlayer(m_InbandTonePlayer); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + m_InbandSpy = new QSignalSpy(m_InbandTonePlayer, + SIGNAL(InbandToneEvent(const QTMSInbandTone&,QTMSSignalEvent))); + + QVERIFY( m_InbandSpy->isValid() ); + + //QCOMPARE(m_InbandSpy->count(), 0 ); + connect(m_InbandTonePlayer, + SIGNAL(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent)), + this, + SLOT(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent))); + } + + QTest::addColumn("inbandTone"); + + QTest::newRow("Busy")<Start(inbandTone); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + // QCOMPARE(m_InbandSpy->count(), 1 ); + + status = m_InbandTonePlayer->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + // QCOMPARE(m_InbandSpy->count(), 2 ); + } + } + + +void QTmsCsTest::CreateRingTone() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory) + { + status = m_Factory->CreateRingTonePlayer(m_RingTonePlayer); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(m_RingTonePlayer, + SIGNAL(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent)), + this, + SLOT(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent))); + } + + } + +void QTmsCsTest::InitRingTonePlayerFromProfiles() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_DEFAULT); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + + } + +void QTmsCsTest::InitRingTonePlayerFromFile() + { + if (m_RingTonePlayer) + { + TBuf buf(KTestFile1); + m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length() * 2); + gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_FILE, m_RTStr); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + g_string_free(m_RTStr, TRUE); + m_RTStr = NULL; + } + + } + + +void QTmsCsTest::InitRingToneSequencePlayer() + { + if (m_RingTonePlayer) + { + TBuf8 buf(KRTBeepSequence); + m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length()); + gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_SEQUENCE, m_RTStr); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + g_string_free(m_RTStr, TRUE); + } + } + + +void QTmsCsTest::PlayRingTone() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Play(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + } + + +void QTmsCsTest::PauseRingTone() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Pause(); //pause audio for video RT only + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + } + + +void QTmsCsTest::StopRingTone() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + } + + +void QTmsCsTest::MuteRingTone() + { + if (m_RingTonePlayer) + { + m_RingTonePlayer->Mute(); + } + } + +void QTmsCsTest::CloseRingTonePlayer() + { + if (m_Factory && m_RingTonePlayer) + { + m_RingTonePlayer->Deinit(); + m_Factory->DeleteRingTonePlayer(m_RingTonePlayer); + } + } + +void QTmsCsTest::EffectsEvent(const QTMSEffect& tmseffect, + QTMSSignalEvent event) + { + QTMSEffectType effecttype; + const_cast (tmseffect).GetType(effecttype); + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + switch (effecttype) + { + case TMS_EFFECT_GLOBAL_VOL: + { + switch (event.type) + { + case TMS_EVENT_EFFECT_VOL_CHANGED: + qDebug("Global vol effect change"); + break; + default: + break; + } + } + break; + case TMS_EFFECT_GLOBAL_GAIN: + { + switch (event.type) + { + case TMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Global gain effect change"); + break; + default: + break; + } + } + break; + case TMS_EFFECT_VOLUME: + qDebug("Stream vol effect change"); + break; + case TMS_EFFECT_GAIN: + qDebug("Stream gain effect change"); + break; + default: + break; + } + } + + +void QTmsCsTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/, + QTMSSignalEvent event, QTMSAudioOutput /*output*/) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED: + qDebug("Available outputs changed"); + break; + case TMS_EVENT_ROUTING_OUTPUT_CHANGED: + qDebug("output changed"); + break; + case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: + qDebug("set output complete"); + break; + default: + break; + } + + } + +void QTmsCsTest::TMSStreamEvent(const QTMSStream& stream, + QTMSSignalEvent event) + { + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + gint streamId; + streamId = const_cast (stream).GetStreamId(); + qDebug("StreamID %d",streamId); + gint state; + state = const_cast (stream).GetState(); + QVERIFY(state == event.curr_state); + + switch (const_cast (stream).GetStreamType()) + { + case QTMS_STREAM_UPLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + { + qDebug("Uplink initialized "); + break; + } + case QTMS_STREAM_UNINITIALIZED: + qDebug("Uplink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Uplink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Uplink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + case QTMS_STREAM_DOWNLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + { + qDebug("Downlink initialized "); + break; + } + case QTMS_STREAM_UNINITIALIZED: + qDebug("Downlink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Downlink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Downlink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + default: + break; + } + } + + +void QTmsCsTest::RingtoneEvent(const QTMSRingTone& /*rt*/, + QTMSSignalEvent event) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case TMS_EVENT_RINGTONE_OPEN_COMPLETE: + qDebug("RT Open Complete"); + break; + case TMS_EVENT_RINGTONE_PLAY_COMPLETE: + qDebug("RT Play Complete"); + break; + default: + break; + } + } + + +void QTmsCsTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event) + { + if(event.reason!= QTMS_RESULT_SUCCESS) + { + QEXPECT_FAIL("","Need to be in call, expect uplink dtmf to fail", Continue); + } + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + switch (event.type) + { + case QTMS_EVENT_DTMF_TONE_STARTED: + qDebug("DTMF Started"); + break; + case QTMS_EVENT_DTMF_TONE_STOPPED: + qDebug("DTMF Stopped"); + break; + default: + break; + } + } + +void QTmsCsTest::InbandToneEvent(const QTMSInbandTone& /*inbandtone*/, + QTMSSignalEvent event) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_INBAND_TONE_STARTED: + qDebug("Inband Tone Started"); + break; + case QTMS_EVENT_INBAND_TONE_STOPPED: + qDebug("Inband Tone Stopped"); + break; + default: + break; + } + } + +QTEST_MAIN_S60(QTmsCsTest) + +#include "qtmscstest.moc" + diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,43 @@ +# +# 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: +# Project specification file for tsrc. +# + + +CONFIG += qtestlib +TEMPLATE = app +TARGET = +TARGET.CAPABILITY = CAP_APPLICATION MultimediaDD +TARGET.EPOCALLOWDLLDATA = 1 + + +LIBS += -lqtmsapi \ + -llibglib \ + -llibgobject \ + -llibgmodule \ + -llibstdcpp + +DEPENDPATH += . +INCLUDEPATH += . + + +INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ + $$OS_LAYER_LIBC_SYSTEMINCLUDE \ + $$OS_LAYER_GLIB_SYSTEMINCLUDE \ + ..\..\..\qt_telephony_multimedia_service_api\inc + +# Input +HEADERS += qtestmains60.h +SOURCES += qtmscstest.cpp diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtestmains60.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtestmains60.h Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,39 @@ +/* +* 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: +* +*/ + +#ifndef QTESTMAINS60 +#define QTESTMAINS60 + +#define QTEST_MAIN_S60(QTmsVoipTest) \ +int main(int argc, char *argv[]) \ +{ \ +char *new_argv[3]; \ +QCoreApplication app(argc, argv); \ +\ +QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \ +QByteArray bytes = str.toAscii(); \ +\ +char arg1[] = "-o"; \ +\ +new_argv[0] = argv[0]; \ +new_argv[1] = arg1; \ +new_argv[2] = bytes.data(); \ +\ +QTmsVoipTest tc; \ +return QTest::qExec(&tc, 3, new_argv); \ +} +#endif diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,1933 @@ +/* +* 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: QTMS Voip test +* +*/ +#include +#include +#include "qtestmains60.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +// CONSTANTS +#define __TEST_CODE_COVERAGE__ + +using namespace QTMS; + +class QTmsVoipTest : public QObject + { +Q_OBJECT +private slots: + void initTestCase(); + void init(); + void cleanup(); + void SupportedFormats(); + void CreateRouting_data(); + void CreateRouting(); + void CreateGlobalVol(); + void CreateGlobalGain(); + void CreateFormat_data(); + void CreateFormat(); + void CreateStreamVol(); + void CreateStreamGain(); + void CreateDnlinkDtmf(); + void CreateBuffer(); + + void cleanupTestCase(); +public slots: + //From TMSClientSourceObserver + void FillBuffer(TMS::TMSBuffer& buffer); + void BufferProcessed(TMS::TMSBuffer* buffer, gint reason); + //From TMSClientSinkObserver + void ProcessBuffer(const TMS::TMSBuffer* buffer); + //From TMSStreamObserver + void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event); + //From TMSClientSinkObserver + void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event); + //From TMSGlobalRoutingObserver + void GlobalRoutingEvent(const QTMSGlobalRouting& routing, + QTMSSignalEvent event, QTMSAudioOutput output); + //From TMSRingToneObserver + void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event); + //From TMSDTMFObserver + void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event); + +private: + + void VoipCallSetup(); + + void SupportedUplinkFormats(); + void SupportedDnlinkFormats(); + + void CreateUplink(); + void CreateDnlink(); + + void CreateMicSource(); + void AddMicSourceToStream(); + + void CreateClientSink(); + void AddClientSinkToStream(); + + void CreateClientSource(); + void AddClientSourceToStream(); + + void CreateSpeakerSink(); + void AddSpeakerSinkToStream(); + + void InitUplink(); + void InitDnlink(); + + void DeinitUplink(); + void DeinitDnlink(); + + void StartUplink(); + void StopUplink(); + void StartDnlink(); + + void ResetUplnkFormat(); + void ResetDnlnkFormat(); + + void StreamVol(); + void StreamGain(); + + void CloseUplink(); + void CloseDownlink(); + + void DisplayFormat(QTMSFormatType format); + void StopDnlink(); + void CreateRingTone(); + + void ToggleVad(); + void GetVad(); + void ToggleCng(); + void GetCng(); + void TogglePlc(); + void GetPlc(); + + void SelectMinBitrate(); + void SelectMaxBitrate(); + void SetBitrate(guint bitrate); + void GetSupportedBitrates(); + gint GetSupportedBitrates(BitRateVector& aBrArr); + void GetBitrate(); + + void SetDnLinkG711ALAW(); + void SetDnLinkG711uLAW(); + void SetDnLinkILBC20MS(); + void SetDnLinkILBC30MS(); + void SetUpLinkG711ALAW(); + void SetUpLinkG711uLAW(); + void SetUpLinkILBC20MS(); + void SetUpLinkILBC30MS(); + void GetDnLinkG711Mode(); + void GetDnLinkILBCMode(); + void GetUpLinkG711Mode(); + void GetUpLinkILBCMode(); + + void DisplayDevice(QTMSAudioOutput device); + +private: + QTMSFactory *m_Factory; + QTMSCall *m_Call; + QTMSDTMF *m_Dnlnkdtmf; + QTMSStream *m_Dnlink; + QTMSStream *m_Uplink; + + QTMSSource *m_MicSource; + QTMSSource *m_ClientSource; + QTMSSink *m_ClientSink; + QTMSSink *m_SpeakerSink; + + QTMSFormat *m_G711EncFormatIntfc; + QTMSFormat *m_G711DecFormatIntfc; + QTMSFormat *m_G729EncFormatIntfc; + QTMSFormat *m_G729DecFormatIntfc; + QTMSFormat *m_ILBCEncFormatIntfc; + QTMSFormat *m_ILBCDecFormatIntfc; + QTMSFormat *m_AMRNBEncFormatIntfc; + QTMSFormat *m_AMRNBDecFormatIntfc; + QTMSFormat *m_PCM16EncFormatIntfc; + QTMSFormat *m_PCM16DecFormatIntfc; + + QTMS::FormatVector m_UplCodecs; + QTMS::FormatVector m_DnlCodecs; + + BitRateVector m_BitratesVector; + guint iBitrate; + + QTMSEffect *m_Vol; + QTMSEffect *m_Gain; + QTMSEffect *m_GlobalVol; + QTMSEffect *m_GlobalGain; + QTMSGlobalRouting *m_Routing; + + QTMSFormatType m_DnLinkCodec; + QTMSFormatType m_UpLinkCodec; + + QSignalSpy *m_UplinkSpy; + QSignalSpy *m_DnlinkSpy; + QSignalSpy *m_RoutingSpy; + + gboolean m_Vad; + gboolean m_Cng; + gboolean m_Plc; + + }; + +void QTmsVoipTest::initTestCase() + { + qDebug("Start QTms Voip tests"); + + g_setenv("G_SLICE", "always-malloc", 1); + + qRegisterMetaType("QTMSSignalEvent"); + qRegisterMetaType("QTMSAudioOutput"); + + } + +void QTmsVoipTest::cleanupTestCase() + { + qDebug("End QTms tests"); + } + +void QTmsVoipTest::init() + { + qDebug("****NEW TEST****"); + m_Factory = NULL; + m_Call = NULL; + m_Dnlink = NULL; + m_Uplink = NULL; + m_MicSource = NULL; + m_ClientSource = NULL; + m_SpeakerSink = NULL; + m_ClientSink = NULL; + m_Vol = NULL; + m_Gain = NULL; + m_GlobalVol = NULL; + m_GlobalGain = NULL; + m_Routing = NULL; + m_Dnlnkdtmf = NULL; + + m_G711EncFormatIntfc = NULL; + m_G711DecFormatIntfc = NULL; + m_G729EncFormatIntfc = NULL; + m_G729DecFormatIntfc = NULL; + m_ILBCEncFormatIntfc = NULL; + m_ILBCDecFormatIntfc = NULL; + m_AMRNBEncFormatIntfc = NULL; + m_AMRNBDecFormatIntfc = NULL; + m_PCM16EncFormatIntfc = NULL; + m_PCM16DecFormatIntfc = NULL; + + m_UplinkSpy = NULL; + m_DnlinkSpy = NULL; + + QTMSVer *ver(NULL); + gint status; + status = QTMSFactory::CreateFactory(m_Factory, *ver); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + VoipCallSetup(); + + CreateUplink(); + CreateDnlink(); + + CreateMicSource(); + AddMicSourceToStream(); + + CreateClientSink(); + AddClientSinkToStream(); + + CreateClientSource(); + AddClientSourceToStream(); + + CreateSpeakerSink(); + AddSpeakerSinkToStream(); + + } +void QTmsVoipTest::cleanup() + { + qDebug("****END TEST******"); + + ResetUplnkFormat(); + ResetDnlnkFormat(); + + CloseUplink(); + CloseDownlink(); + + if (m_MicSource) + m_Factory->DeleteSource(m_MicSource); + if (m_ClientSource) + m_Factory->DeleteSource(m_ClientSource); + if (m_ClientSink) + m_Factory->DeleteSink(m_ClientSink); + if (m_SpeakerSink) + m_Factory->DeleteSink(m_SpeakerSink); + + if (m_Dnlnkdtmf) + m_Factory->DeleteDTMF(m_Dnlnkdtmf); + + if (m_Vol) + m_Factory->DeleteEffect(m_Vol); + if (m_Gain) + m_Factory->DeleteEffect(m_Gain); + if (m_GlobalVol) + m_Factory->DeleteEffect(m_GlobalVol); + if (m_GlobalGain) + m_Factory->DeleteEffect(m_GlobalGain); + + if (m_Routing) + m_Factory->DeleteGlobalRouting(m_Routing); + + if (m_PCM16EncFormatIntfc) + m_Factory->DeleteFormat(m_PCM16EncFormatIntfc); + if (m_ILBCEncFormatIntfc) + m_Factory->DeleteFormat(m_ILBCEncFormatIntfc); + if (m_AMRNBEncFormatIntfc) + m_Factory->DeleteFormat(m_AMRNBEncFormatIntfc); + if (m_G711EncFormatIntfc) + m_Factory->DeleteFormat(m_G711EncFormatIntfc); + if (m_G729EncFormatIntfc) + m_Factory->DeleteFormat(m_G729EncFormatIntfc); + if (m_PCM16DecFormatIntfc) + m_Factory->DeleteFormat(m_PCM16DecFormatIntfc); + if (m_ILBCDecFormatIntfc) + m_Factory->DeleteFormat(m_ILBCDecFormatIntfc); + if (m_AMRNBDecFormatIntfc) + m_Factory->DeleteFormat(m_AMRNBDecFormatIntfc); + if (m_G711DecFormatIntfc) + m_Factory->DeleteFormat(m_G711DecFormatIntfc); + if (m_G729DecFormatIntfc) + m_Factory->DeleteFormat(m_G729DecFormatIntfc); + + if (m_Uplink) + m_Call->DeleteStream(m_Uplink); + if (m_Dnlink) + m_Call->DeleteStream(m_Dnlink); + + if (m_Call) + m_Factory->DeleteCall(m_Call); + + if (m_Factory) + delete m_Factory; + + } + +void QTmsVoipTest::VoipCallSetup() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_Call) + { + gboolean issupported(FALSE); + m_Factory->IsCallTypeSupported(QTMS_CALL_IP,issupported); + QVERIFY(issupported == TRUE); + status = m_Factory->CreateCall(QTMS_CALL_IP, m_Call, 0); + QVERIFY(status == QTMS_RESULT_SUCCESS); + guint ctxid; + m_Call->GetCallContextId(ctxid); + } + + } + +void QTmsVoipTest::SupportedFormats() + { + SupportedUplinkFormats(); + SupportedDnlinkFormats(); + } + +void QTmsVoipTest::SupportedUplinkFormats() + { + gint status(QTMS_RESULT_SUCCESS); + status = m_Factory->GetSupportedFormats(QTMS_STREAM_UPLINK,m_UplCodecs); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qDebug("Supported UPL codecs"); + std::vector::iterator codecs = m_UplCodecs.begin(); + QTMSFormatType fmttype; + for (; codecs < m_UplCodecs.end(); codecs++) + { + (*codecs)->GetType(fmttype); + DisplayFormat(fmttype); + } + gint size = m_UplCodecs.size(); + for (gint i = 0; i < size; i++) + { + codecs = m_UplCodecs.begin(); + m_Factory->DeleteFormat(*codecs); + m_UplCodecs.erase(codecs); + } + + } + +void QTmsVoipTest::SupportedDnlinkFormats() + { + gint status(QTMS_RESULT_SUCCESS); + status = m_Factory->GetSupportedFormats(QTMS_STREAM_DOWNLINK,m_DnlCodecs); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qDebug("Supported DNL codecs"); + std::vector::iterator codecs = m_DnlCodecs.begin(); + QTMSFormatType fmttype; + for (; codecs < m_DnlCodecs.end(); codecs++) + { + (*codecs)->GetType(fmttype); + DisplayFormat(fmttype); + } + gint size = m_DnlCodecs.size(); + for (gint i = 0; i < size; i++) + { + codecs = m_DnlCodecs.begin(); + m_Factory->DeleteFormat(*codecs); + m_DnlCodecs.erase(codecs); + } + } + + +void QTmsVoipTest::DisplayFormat(QTMSFormatType format) + { + switch (format) + { + case QTMS_FORMAT_AMR: + qDebug("AMR-NB"); + break; + case QTMS_FORMAT_G711: + qDebug("G.711"); + break; + case QTMS_FORMAT_G729: + qDebug("G.729"); + break; + case QTMS_FORMAT_ILBC: + qDebug("iLBC"); + break; + case QTMS_FORMAT_PCM: + qDebug("PCM-16"); + break; + default: + break; + } + } + +void QTmsVoipTest::CreateUplink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink); + + m_UplinkSpy = new QSignalSpy(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_UplinkSpy->isValid() ); + + // QCOMPARE(m_UplinkSpy->count(), 0 ); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + connect(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + } + } + + void QTmsVoipTest::CreateDnlink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_DnlinkSpy = new QSignalSpy(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_DnlinkSpy->isValid() ); + + // QCOMPARE(m_DnlinkSpy->count(), 0 ); + + connect(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + } + } + +void QTmsVoipTest::CreateClientSource() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_ClientSource) + { + status = m_Factory->CreateSource(QTMS_SOURCE_CLIENT, m_ClientSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + +void QTmsVoipTest::AddClientSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_ClientSource) + { + connect(static_cast (m_ClientSource), + SIGNAL(FillBuffer(TMS::TMSBuffer&)), this, + SLOT(FillBuffer(TMS::TMSBuffer&))); + status = m_Dnlink->AddSource(m_ClientSource); + +#ifdef __TEST_CODE_COVERAGE__ + QTMSSourceType st; + static_cast(m_ClientSource)->GetType(st); + gboolean enqueue(FALSE); + static_cast(m_ClientSource)->GetEnqueueMode(enqueue); + static_cast(m_ClientSource)->SetEnqueueMode(FALSE); + static_cast(m_ClientSource)->Flush(); +#endif //__TEST_CODE_COVERAGE__ + } + + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + + void QTmsVoipTest::CreateClientSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_ClientSink) + { + status = m_Factory->CreateSink(QTMS_SINK_CLIENT, m_ClientSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::AddClientSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_ClientSink) + { + connect(static_cast (m_ClientSink), + SIGNAL(ProcessBuffer(const TMS::TMSBuffer*)), this, + SLOT(ProcessBuffer(const TMS::TMSBuffer*))); + status = m_Uplink->AddSink(m_ClientSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + + + void QTmsVoipTest::CreateMicSource() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_MicSource) + { + status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::AddMicSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_MicSource) + { + status = m_Uplink->AddSource(m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::CreateSpeakerSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_SpeakerSink) + { + status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::AddSpeakerSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_SpeakerSink) + { + status = m_Dnlink->AddSink(m_SpeakerSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::InitUplink() + { + QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 1 ); + + GetSupportedBitrates(); + SelectMinBitrate(); + SelectMaxBitrate(); + GetBitrate(); + + ToggleVad(); + GetVad(); + + SetUpLinkG711ALAW(); + SetUpLinkG711uLAW(); + GetUpLinkG711Mode(); + + SetUpLinkILBC20MS(); + SetUpLinkILBC30MS(); + GetUpLinkILBCMode(); + + } + + void QTmsVoipTest::InitDnlink() + { + QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 1 ); + ToggleCng(); + GetCng(); + TogglePlc(); + GetPlc(); + + SetDnLinkG711ALAW(); + SetDnLinkG711uLAW(); + GetDnLinkG711Mode(); + + SetDnLinkILBC20MS(); + SetDnLinkILBC30MS(); + GetDnLinkILBCMode(); + + } + void QTmsVoipTest::DeinitUplink() + { + m_Uplink->Deinit(); + QTest::qWait(1000); + } + + void QTmsVoipTest::DeinitDnlink() + { + m_Dnlink->Deinit(); + QTest::qWait(1000); + } + + void QTmsVoipTest::StartUplink() + { + QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 2 ); + } + + void QTmsVoipTest::StartDnlink() + { + QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 2 ); + } +void QTmsVoipTest::StopUplink() + { +#ifdef __TEST_CODE_COVERAGE__ + QVERIFY(m_Uplink->Pause()== QTMS_RESULT_SUCCESS); + QTest::qWait(1000); +#endif //__TEST_CODE_COVERAGE__ + + QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 3 ); + } + +void QTmsVoipTest::StopDnlink() + { +#ifdef __TEST_CODE_COVERAGE__ + QVERIFY(m_Dnlink->Pause() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); +#endif //__TEST_CODE_COVERAGE__ + + QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 3 ); + } + +void QTmsVoipTest::CloseUplink() + { + m_Uplink->Deinit(); + QTest::qWait(1000); + if (m_Uplink) + { + if (m_Gain) + { + QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS); + } + if (m_MicSource) + { + QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS); + } + if (m_ClientSink) + { + QVERIFY(m_Uplink->RemoveSink(m_ClientSink)== QTMS_RESULT_SUCCESS); + } + } + } + +void QTmsVoipTest::CloseDownlink() + { + m_Dnlink->Deinit(); + QTest::qWait(1000); + if (m_Dnlink) + { + if (m_Vol) + { + QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS); + } + if (m_ClientSource) + { + QVERIFY(m_Dnlink->RemoveSource(m_ClientSource)== QTMS_RESULT_SUCCESS); + } + if (m_SpeakerSink) + { + QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS); + } + } + + } + +void QTmsVoipTest::ResetUplnkFormat() + { + if (m_Uplink) + { + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_PCM: + m_Uplink->ResetFormat(m_PCM16EncFormatIntfc); + break; + case QTMS_FORMAT_AMR: + m_Uplink->ResetFormat(m_AMRNBEncFormatIntfc); + break; + case QTMS_FORMAT_G711: + m_Uplink->ResetFormat(m_G711EncFormatIntfc); + break; + case QTMS_FORMAT_G729: + m_Uplink->ResetFormat(m_G729EncFormatIntfc); + break; + case QTMS_FORMAT_ILBC: + m_Uplink->ResetFormat(m_ILBCEncFormatIntfc); + break; + default: + break; + } + } + + } + +void QTmsVoipTest::ResetDnlnkFormat() + { + if (m_Dnlink) + { + switch (m_DnLinkCodec) + { + case QTMS_FORMAT_PCM: + m_Dnlink->ResetFormat(m_PCM16DecFormatIntfc); + break; + case QTMS_FORMAT_AMR: + m_Dnlink->ResetFormat(m_AMRNBDecFormatIntfc); + break; + case QTMS_FORMAT_G711: + m_Dnlink->ResetFormat(m_G711DecFormatIntfc); + break; + case QTMS_FORMAT_G729: + m_Dnlink->ResetFormat(m_G729DecFormatIntfc); + break; + case QTMS_FORMAT_ILBC: + m_Dnlink->ResetFormat(m_ILBCDecFormatIntfc); + break; + default: + break; + } + } + } + +void QTmsVoipTest::CreateFormat_data() + { + QTest::addColumn("format"); + +#ifndef __WINSCW__ + QTest::newRow("G711")<CreateFormat(QTMS_FORMAT_G711, + m_G711DecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G711, + m_G711EncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_G711DecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_G711EncFormatIntfc); + qDebug("G.711 Set"); + + } + break; + case QTMS_FORMAT_G729: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729, + m_G729DecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729, + m_G729EncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_G729DecFormatIntfc); + setdecstatus = m_Uplink->SetFormat(m_G729EncFormatIntfc); + qDebug("G.729 Set"); + } + break; + case QTMS_FORMAT_ILBC: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC, + m_ILBCDecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC, + m_ILBCEncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_ILBCDecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_ILBCEncFormatIntfc); + qDebug("iLBC Set"); + } + break; + case QTMS_FORMAT_AMR: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR, + m_AMRNBDecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR, + m_AMRNBEncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_AMRNBDecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_AMRNBEncFormatIntfc); + qDebug("AMR-NB Set"); + } + break; + case QTMS_FORMAT_PCM: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM, + m_PCM16DecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM, + m_PCM16EncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_PCM16EncFormatIntfc); + qDebug("PCM-16 Set"); + } + break; + default: + break; + } + + QVERIFY(decstatus == QTMS_RESULT_SUCCESS); + QVERIFY(encstatus == QTMS_RESULT_SUCCESS); + QVERIFY(setdecstatus == QTMS_RESULT_SUCCESS); + QVERIFY(setencstatus == QTMS_RESULT_SUCCESS); + + InitUplink(); + InitDnlink(); + } + + +void QTmsVoipTest::ToggleVad() + { + //m_Vad = (m_Vad) ? EFalse : ETrue; + + m_Vad = ETrue; + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + static_cast (m_G711EncFormatIntfc)->SetVADMode( + m_Vad); + qDebug("G711 VAD set %d", m_Vad); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->SetVADMode( + m_Vad); + qDebug("G729 VAD set %d",m_Vad); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->SetVADMode( + m_Vad); + qDebug("iLBC VAD set %d",m_Vad); + break; + case QTMS_FORMAT_AMR: + //static_cast(iAMRNBEncFormatIntfc)->SetVADMode(m_Vad); + break; + case QTMS_FORMAT_PCM: + // Not supported; just for testing failing condition + //static_cast(iPCM16EncFormatIntfc)->SetVADMode(m_Vad); + break; + default: + break; + } + } + + +void QTmsVoipTest::GetVad() + { + gint status(QTMS_RESULT_SUCCESS); + gboolean vad = EFalse; + + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + status = static_cast (m_G711EncFormatIntfc)->GetVADMode( + vad); + qDebug("get G711 VAD: %d", vad); + break; + case QTMS_FORMAT_G729: + status = static_cast (m_G729EncFormatIntfc)->GetVADMode( + vad); + qDebug("get G729 VAD: %d", vad); + break; + case QTMS_FORMAT_ILBC: + status = static_cast (m_ILBCEncFormatIntfc)->GetVADMode( + vad); + qDebug("get iLBC VAD: %d", vad); + break; + default: + return; + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + // QVERIFY(vad == m_Vad); + + + } + +void QTmsVoipTest::ToggleCng() + { +// m_Cng = (m_Cng) ? EFalse : ETrue; + + m_Cng = ETrue; + switch (m_DnLinkCodec) + { + case QTMS_FORMAT_G711: + //case EG711_10MS: + static_cast (m_G711DecFormatIntfc)->SetCNG(m_Cng); + qDebug("G711 CNG set %d", m_Cng); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCDecFormatIntfc)->SetCNG(m_Cng); + qDebug("iLBC CNG set %d", m_Cng); + break; + default: + break; + } + } + + +void QTmsVoipTest::GetCng() + { + gint status; + gboolean cng = EFalse; + switch (m_DnLinkCodec) + { + case QTMS_FORMAT_G711: + status = static_cast(m_G711DecFormatIntfc)->GetCNG(cng); + qDebug("G711 CNG: %d", cng); + QVERIFY(status == QTMS_RESULT_SUCCESS); + break; + case QTMS_FORMAT_ILBC: + status = static_cast(m_ILBCDecFormatIntfc)->GetCNG(cng); + qDebug("iLBC CNG: %d", cng); + QVERIFY(status == QTMS_RESULT_SUCCESS); + break; + default: + break; + } + + // QVERIFY(cng == m_Cng); + + } + + +void QTmsVoipTest::TogglePlc() + { +// m_Plc = (m_Plc) ? EFalse : ETrue; + m_Plc = ETrue; + if (m_DnLinkCodec == QTMS_FORMAT_G711) + { + static_cast (m_G711DecFormatIntfc)->SetPlc(m_Plc); + qDebug("G711 PLC set %d",m_Plc ); + } + } + +void QTmsVoipTest::GetPlc() + { + gboolean plc = EFalse; + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711DecFormatIntfc)->GetPlc( + plc); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("G711 PLC: %d", plc); + // QVERIFY(plc == m_Plc); + } + } + + + +void QTmsVoipTest::SelectMinBitrate() + { + if (m_BitratesVector.size() > 0) + { + std::vector::iterator bitrate = m_BitratesVector.begin(); + iBitrate = *bitrate; + SetBitrate(iBitrate); + qDebug("BR set %d",iBitrate); + } + } + + +void QTmsVoipTest::SelectMaxBitrate() + { + if (m_BitratesVector.size() > 0) + { + iBitrate = m_BitratesVector.back(); + SetBitrate(iBitrate); + qDebug("BR set %d",iBitrate); + } + } + + +void QTmsVoipTest::SetBitrate(guint bitrate) + { + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + static_cast (m_G711EncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_AMR: + static_cast (m_AMRNBEncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_PCM: + default: + break; + } + } + + +void QTmsVoipTest::GetSupportedBitrates() + { + gint numOfItems(0); + m_BitratesVector.clear(); + gint status = GetSupportedBitrates(m_BitratesVector); + + numOfItems = m_BitratesVector.size(); + qDebug("BR Count %d", numOfItems); + std::vector::iterator itBitrates = m_BitratesVector.begin(); + for (; itBitrates < m_BitratesVector.end(); itBitrates++) + { + qDebug("BR %d", *itBitrates); + } + } + + +gint QTmsVoipTest::GetSupportedBitrates(BitRateVector& aBrArr) + { + gint status(QTMS_RESULT_SUCCESS); + + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + status = m_G711EncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_G729: + status = m_G729EncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_ILBC: + status = m_ILBCEncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_AMR: + status = m_AMRNBEncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_PCM: + // not supported, but test for correct error handling + //status = m_PCM16EncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + default: + status = KErrNotSupported; + break; + } + + return status; + } + + +void QTmsVoipTest::GetBitrate() + { + guint bitrate; + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + static_cast (m_G711EncFormatIntfc)->GetBitRate( + bitrate); + qDebug("G711 bitrate: %d", bitrate); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->GetBitRate( + bitrate); + qDebug("G729 bitrate: %d", bitrate); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->GetBitRate( + bitrate); + qDebug("iLBC bitrate: %d", bitrate); + break; + case QTMS_FORMAT_AMR: + static_cast (m_AMRNBEncFormatIntfc)->GetBitRate( + bitrate); + qDebug("AMR bitrate: %d", bitrate); + break; + case TMS_FORMAT_PCM: + default: + break; + } + } + + +void QTmsVoipTest::SetDnLinkG711ALAW() + { + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = static_cast (m_G711DecFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_ALAW); + qDebug("SetDnLinkG711ALAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL G.711 Mode Set: [aLaw]"); + } + } + + +void QTmsVoipTest::SetDnLinkG711uLAW() + { + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = static_cast (m_G711DecFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_MULAW); + qDebug("SetDnLinkG711uLAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL G.711 Mode Set: [uLaw]"); + } + } + + +void QTmsVoipTest::GetDnLinkG711Mode() + { + QTMSG711CodecMode mode; + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711DecFormatIntfc)->GetMode( + mode); + qDebug("GetDnLinkG711Mode status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == TMS_G711_CODEC_MODE_MULAW) + { + qDebug("DNL G711 Mode: [uLaw]"); + } + else + { + qDebug("DNL G711 Mode: [aLaw]"); + } + } + } + + +void QTmsVoipTest::SetDnLinkILBC20MS() + { + if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCDecFormatIntfc)->SetMode( + TMS_ILBC_CODEC_MODE_20MS_FRAME); + qDebug("SetDnLinkILBC20MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL iLBC Mode Set: [20ms]"); + } + } + + +void QTmsVoipTest::SetDnLinkILBC30MS() + { + if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCDecFormatIntfc)->SetMode( + TMS_ILBC_CODEC_MODE_30MS_FRAME); + qDebug("SetDnLinkILBC30MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL iLBC Mode Set: [30ms]"); + } + } + + +void QTmsVoipTest::GetDnLinkILBCMode() + { + QTMSILBCCodecMode mode; + if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCDecFormatIntfc)->GetMode( + mode); + qDebug("GetDnLinkILBCMode status %d",status); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME) + { + qDebug("DNL iLBC Mode: [30ms]"); + } + else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME) + { + qDebug("DNL iLBC Mode: [20ms]"); + } + } + } + +void QTmsVoipTest::SetUpLinkG711ALAW() + { + if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711EncFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_ALAW); + + qDebug("SetUpLinkG711ALAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL G.711 Mode Set: [aLaw]"); + } + } + +void QTmsVoipTest::SetUpLinkG711uLAW() + { + if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711EncFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_MULAW); + qDebug("SetUpLinkG711uLAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL G.711 Mode Set: [uLaw]"); + } + } + +void QTmsVoipTest::GetUpLinkG711Mode() + { + QTMSG711CodecMode mode; + if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711EncFormatIntfc)->GetMode( + mode); + qDebug("GetUpLinkG711Mode status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == QTMS_G711_CODEC_MODE_MULAW) + { + qDebug("UPL G.711 Mode: [uLaw]"); + } + else if (mode == QTMS_G711_CODEC_MODE_ALAW) + { + qDebug("UPL G.711 Mode: [aLaw]"); + } + } + + } + + +void QTmsVoipTest::SetUpLinkILBC20MS() + { + if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCEncFormatIntfc)->SetMode( + QTMS_ILBC_CODEC_MODE_20MS_FRAME); + qDebug("SetUpLinkILBC20MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL iLBC Mode Set: [20ms]"); + } + } + + +void QTmsVoipTest::SetUpLinkILBC30MS() + { + if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCEncFormatIntfc)->SetMode( + QTMS_ILBC_CODEC_MODE_30MS_FRAME); + qDebug("SetUpLinkILBC30MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL iLBC Mode Set: [30ms]"); + } + } + +void QTmsVoipTest::GetUpLinkILBCMode() + { + QTMSILBCCodecMode mode; + if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCEncFormatIntfc)->GetMode( + mode); + qDebug("GetUpLinkILBCMode status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME) + { + qDebug("UPL iLBC Mode: [30ms]"); + } + else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME) + { + qDebug("UPL iLBC Mode: [20ms]"); + } + } + + } + + +void QTmsVoipTest::CreateStreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && m_Dnlink && !m_Vol) + { + m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc); + m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + + status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Vol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + if(m_Dnlink) + { + status = m_Dnlink->AddEffect(m_Vol); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + + InitDnlink(); + + StreamVol(); + + } + } + +void QTmsVoipTest::StreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + guint maxvol(0); + if (m_Vol) + { + status = static_cast (m_Vol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_Vol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_Vol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(vol,maxvol); + } + } + +void QTmsVoipTest::CreateStreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && m_Uplink && !m_Gain) + { + + m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16EncFormatIntfc); + m_Uplink->SetFormat(m_PCM16EncFormatIntfc); + status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Gain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + status = m_Uplink->AddEffect(m_Gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + InitUplink(); + + StreamGain(); + } + } + +void QTmsVoipTest::StreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Gain) + { + guint maxgain(0); + static_cast (m_Gain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_Gain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (m_Gain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(gain,maxgain); + } + + } + +void QTmsVoipTest::CreateGlobalVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalVol) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalVol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxvol(0); + status = static_cast(m_GlobalVol)->GetMaxLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global max vol %d",maxvol); + + status = static_cast(m_GlobalVol)->SetLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_GlobalVol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global vol %d",vol); + + QCOMPARE(vol,maxvol); + + } + } + + +void QTmsVoipTest::CreateGlobalGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalGain) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalGain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxgain(0); + static_cast(m_GlobalGain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global max gain %d",maxgain); + + static_cast(m_GlobalGain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast(m_GlobalGain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global gain %d",gain); + + QCOMPARE(gain,maxgain); + + } + } + +void QTmsVoipTest::CreateRouting_data() + { + + QTest::addColumn("routing"); + + QTest::newRow("Public")<CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc); + m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + + InitDnlink(); + StartDnlink(); + + status = m_Factory->CreateGlobalRouting(m_Routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_RoutingSpy = new QSignalSpy(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent, + QTMSAudioOutput))); + + QVERIFY( m_RoutingSpy->isValid() ); + + //QCOMPARE(m_RoutingSpy->count(), 0 ); + connect(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput)), + this, + SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput))); + } + + if(m_Routing) + { + status = m_Routing->SetOutput(routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); +#ifndef __WINSCW__ + QTest::qWait(1000); + //QCOMPARE(m_RoutingSpy->count(), 1 ); +#endif + QTMSAudioOutput current; + status = m_Routing->GetOutput(current); + DisplayDevice(current); + + QVERIFY(status == QTMS_RESULT_SUCCESS); +#ifndef __WINSCW__ + QCOMPARE(routing,current); +#endif + StopDnlink(); + } + } + + +void QTmsVoipTest::DisplayDevice(QTMSAudioOutput device) + { + qDebug("Current Output:"); + + switch (device) + { + case QTMS_AUDIO_OUTPUT_NONE: + { + qDebug("none"); + } + break; + case QTMS_AUDIO_OUTPUT_PUBLIC: + { + qDebug("Public"); + } + break; + case QTMS_AUDIO_OUTPUT_PRIVATE: + { + qDebug("Private"); + } + break; + default: + break; + } + } + + +void QTmsVoipTest::CreateDnlinkDtmf() + { + gint status(QTMS_RESULT_SUCCESS); + GString* dtmfstring(NULL); + + if (m_Factory && m_Dnlink && !m_Dnlnkdtmf) + { + m_UpLinkCodec = QTMS_FORMAT_PCM; + m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc); + m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + + InitDnlink(); + + status = m_Factory->CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QSignalSpy dtmfspy(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + QVERIFY( dtmfspy.isValid() ); + + //QCOMPARE(dtmfspy.count(), 0 ); + + connect(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this, + SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + dtmfstring = g_string_new("4723"); + status = m_Dnlnkdtmf->SetTone(dtmfstring); + + m_Dnlnkdtmf->Start(); + QTest::qWait(1000); + g_string_free(dtmfstring, TRUE); + //QCOMPARE(dtmfspy.count(), 1 ); + + status = m_Dnlnkdtmf->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(dtmfspy.count(), 2 ); + } + } + +void QTmsVoipTest::CreateRingTone() + { + + } + + +void QTmsVoipTest::CreateBuffer() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory) + { + QTMSBuffer* qtmsbuffer(NULL); + QTMSBufferType buftype(QTMS_BUFFER_MEMORY); + guint size(100); + status = m_Factory->CreateBuffer(QTMS_BUFFER_MEMORY, + size, qtmsbuffer); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (qtmsbuffer) + { + qtmsbuffer->GetType(buftype); + qtmsbuffer->GetDataSize(size); + qtmsbuffer->SetDataSize(size); + guint8* pbuf(NULL); + qtmsbuffer->GetDataPtr(pbuf); + guint64 ts(0); + qtmsbuffer->GetTimeStamp(ts); + qtmsbuffer->SetTimeStamp(ts); + m_Factory->DeleteBuffer(qtmsbuffer); + } + } + } + + +void QTmsVoipTest::FillBuffer(TMS::TMSBuffer& buffer) + { + //TODO: add loopback test and file playback +#ifdef __TEST_CODE_COVERAGE__ + if(m_ClientSource) + { + static_cast (m_ClientSource)->BufferFilled( + buffer); + } +#endif + + } + +void QTmsVoipTest::BufferProcessed(TMS::TMSBuffer* /*buffer*/, gint /*reason*/) + { + } + +void QTmsVoipTest::ProcessBuffer(const TMS::TMSBuffer* buffer) + { + //TODO: add loopback test +#ifdef __TEST_CODE_COVERAGE__ + TMS::TMSBuffer* recBuf(NULL); + recBuf = const_cast (buffer); + if(m_ClientSink) + { + static_cast (m_ClientSink)->BufferProcessed( + recBuf); + } +#endif + } + + + +void QTmsVoipTest::EffectsEvent(const QTMSEffect& tmseffect, + QTMSSignalEvent event) + { + QTMSEffectType effecttype; + const_cast (tmseffect).GetType(effecttype); + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + switch (effecttype) + { + case QTMS_EFFECT_GLOBAL_VOL: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_VOL_CHANGED: + qDebug("Global vol effect change"); + break; + default: + break; + } + } + break; + case QTMS_EFFECT_GLOBAL_GAIN: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Global gain effect change"); + break; + default: + break; + } + } + break; + case QTMS_EFFECT_VOLUME: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Stream vol effect change"); + break; + default: + break; + } + } + break; + case QTMS_EFFECT_GAIN: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Stream gain effect change"); + break; + default: + break; + } + } + break; + default: + break; + } + } + + + +void QTmsVoipTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/, + QTMSSignalEvent event, QTMSAudioOutput /*output*/) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED: + qDebug("Available outputs changed"); + break; + case QTMS_EVENT_ROUTING_OUTPUT_CHANGED: + qDebug("output changed"); + break; + case QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: + qDebug("set output complete"); + break; + default: + break; + } + + } + +void QTmsVoipTest::TMSStreamEvent(const QTMSStream& stream, + QTMSSignalEvent event) + { + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + gint streamId; + streamId = const_cast (stream).GetStreamId(); + qDebug("StreamID %d",streamId); + gint state; + state = const_cast (stream).GetState(); + QVERIFY(state == event.curr_state); + + switch (const_cast (stream).GetStreamType()) + { + case QTMS_STREAM_UPLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + { + qDebug("Uplink initialized "); + break; + } + case QTMS_STREAM_UNINITIALIZED: + qDebug("Uplink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Uplink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Uplink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + case QTMS_STREAM_DOWNLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + qDebug("Downlink initialized "); + break; + case QTMS_STREAM_UNINITIALIZED: + qDebug("Downlink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Downlink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Downlink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + default: + break; + } + } + + +void QTmsVoipTest::RingtoneEvent(const QTMSRingTone& /*rt*/, + QTMSSignalEvent event) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_RINGTONE_OPEN_COMPLETE: + qDebug("RT Open Complete"); + break; + case QTMS_EVENT_RINGTONE_PLAY_COMPLETE: + qDebug("RT Play Complete"); + break; + default: + break; + } + } + + +void QTmsVoipTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event) + { + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_DTMF_TONE_STARTED: + qDebug("DTMF Started"); + break; + case QTMS_EVENT_DTMF_TONE_STOPPED: + qDebug("DTMF Stopped"); + break; + default: + break; + } + } + + +QTEST_MAIN_S60(QTmsVoipTest) + +#include "qtmsvoiptest.moc" + diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,42 @@ +# +# 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: +# Project specification file for tsrc. +# + +TEMPLATE = app +TARGET = +QT += testlib + + +TARGET.CAPABILITY = CAP_APPLICATION MultimediaDD +TARGET.EPOCALLOWDLLDATA = 1 + + +LIBS += -lqtmsapi \ + -llibglib \ + -llibgobject \ + -llibgmodule \ + -llibstdcpp + +DEPENDPATH += . +INCLUDEPATH += . + +INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ + $$OS_LAYER_LIBC_SYSTEMINCLUDE \ + $$OS_LAYER_GLIB_SYSTEMINCLUDE \ + ..\..\..\qt_telephony_multimedia_service_api\inc +# Input +HEADERS += qtestmains60.h +SOURCES += qtmsvoiptest.cpp diff -r edd273b3192a -r 2ee890d2f7e7 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/tsrc.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/tsrc.pro Fri Jun 11 14:04:53 2010 +0300 @@ -0,0 +1,26 @@ +# 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 + +TEMPLATE = subdirs + +BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " + + +SUBDIRS = qtmscstest \ + qtmsvoiptest + + +SYMBIAN_PLATFORMS = DEFAULT diff -r edd273b3192a -r 2ee890d2f7e7 mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp --- a/mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -72,8 +72,8 @@ CleanupStack::PushL(server); RProcess::Rendezvous(KErrNone); CActiveScheduler::Start(); + CleanupStack::PopAndDestroy(server); CActiveScheduler::Install(NULL); - CleanupStack::PopAndDestroy(server); CleanupStack::PopAndDestroy(scheduler); } diff -r edd273b3192a -r 2ee890d2f7e7 mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp --- a/mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp Thu May 27 13:19:19 2010 +0300 +++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -72,8 +72,8 @@ CleanupStack::PushL(server); RProcess::Rendezvous(KErrNone); CActiveScheduler::Start(); + CleanupStack::PopAndDestroy(server); CActiveScheduler::Install(NULL); - CleanupStack::PopAndDestroy(server); CleanupStack::PopAndDestroy(scheduler); } diff -r edd273b3192a -r 2ee890d2f7e7 qtms/qtmsapi.pro --- a/qtms/qtmsapi.pro Thu May 27 13:19:19 2010 +0300 +++ b/qtms/qtmsapi.pro Fri Jun 11 14:04:53 2010 +0300 @@ -1,19 +1,3 @@ -# -# 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: -# - TEMPLATE = lib TARGET = qtmsapi CONFIG += dll diff -r edd273b3192a -r 2ee890d2f7e7 qtms/src/qtmsmicsource.cpp --- a/qtms/src/qtmsmicsource.cpp Thu May 27 13:19:19 2010 +0300 +++ b/qtms/src/qtmsmicsource.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -30,7 +30,7 @@ QTMSMicSource::~QTMSMicSource() { - delete iSource; + delete (static_cast (iSource)); } gint QTMSMicSource::GetType(QTMSSourceType& sourcetype) diff -r edd273b3192a -r 2ee890d2f7e7 qtms/src/qtmsmodemsink.cpp --- a/qtms/src/qtmsmodemsink.cpp Thu May 27 13:19:19 2010 +0300 +++ b/qtms/src/qtmsmodemsink.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -30,7 +30,7 @@ QTMSModemSink::~QTMSModemSink() { - delete iSink; + delete (static_cast(iSink)); } gint QTMSModemSink::GetType(QTMSSinkType& sinktype) diff -r edd273b3192a -r 2ee890d2f7e7 qtms/src/qtmsmodemsource.cpp --- a/qtms/src/qtmsmodemsource.cpp Thu May 27 13:19:19 2010 +0300 +++ b/qtms/src/qtmsmodemsource.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -28,7 +28,7 @@ QTMSModemSource::~QTMSModemSource() { - delete iSource; + delete (static_cast (iSource)); } gint QTMSModemSource::GetType(QTMSSourceType& sourcetype) diff -r edd273b3192a -r 2ee890d2f7e7 qtms/src/qtmsspeakersink.cpp --- a/qtms/src/qtmsspeakersink.cpp Thu May 27 13:19:19 2010 +0300 +++ b/qtms/src/qtmsspeakersink.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -28,7 +28,7 @@ QTMSSpeakerSink::~QTMSSpeakerSink() { - delete iSink; + delete (static_cast(iSink)); } gint QTMSSpeakerSink::GetType(QTMSSinkType& sinktype) diff -r edd273b3192a -r 2ee890d2f7e7 qtms/src/qtmsvolumeeffect.cpp --- a/qtms/src/qtmsvolumeeffect.cpp Thu May 27 13:19:19 2010 +0300 +++ b/qtms/src/qtmsvolumeeffect.cpp Fri Jun 11 14:04:53 2010 +0300 @@ -30,7 +30,7 @@ QTMSVolumeEffect::~QTMSVolumeEffect() { - delete iEffect; + delete (static_cast(iEffect)); } gint QTMSVolumeEffect::GetLevel(guint& level)