--- 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;
}
--- 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);
}
--- 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
--- 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
--- 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<TUint> iStorages;
TUint32 iStorageId;
- CMPXMediaArray* iAbstractMedias;
+ CDesCArray* iAbstractMedias;
TInt iCount;
TInt iCurrentIndex;
TInt iEnumState;
-
+
+ TInt iResetCount;
+
#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
CMmMtpDpPerfLog* iPerfLog;
#endif
--- 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 <mtp/mmtpobjectmgr.h>
#include <mtp/mmtpstoragemgr.h>
#include <mtp/mmtpreferencemgr.h>
+#include <mtp/tmtptypeuint32.h>
#include <mpxmediaarray.h>
#include <mpxmedia.h>
@@ -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<TUint> 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
--- 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 )
--- 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)
--- 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
--- 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 );
--- 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 );
--- 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
};
--- 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:
--- 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:
--- 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 );
--- 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 );
--- 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,
--- 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 )
--- 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
}
--- 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
}
--- 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
}
--- 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" ),
--- 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<TUint>* 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<KMtpMaxDateTimeStringLength> 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 );
--- 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 <mtp/cmtptypearray.h>
#include <mtp/mmtpreferencemgr.h>
+#include <mtp/mmtpobjectmgr.h>
#ifdef _DEBUG
-#include <mtp/mmtpobjectmgr.h>
#include <mtp/tmtptypeuint128.h>
#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
--- 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<KMaxFileName> 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 );
--- 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 );
--- 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
}
// -----------------------------------------------------------------------------
--- 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 )
{
--- 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() );
--- 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 );
--- 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
--- 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 );
}
// -----------------------------------------------------------------------------
--- 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<CMPXMediaArray> ( KMPXMediaArrayContents ) ) );
+ CMPXMediaArray* mediaArray = foundMedia->Value<CMPXMediaArray> ( 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<TMPXAttribute> 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<TMPXItemId>( 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<TMPXItemId>( 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<TInt> 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
// ---------------------------------------------------------------------------
--- 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.
--- 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.
*
--- /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
--- /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 <QObject>
+#include <QtTest/QtTest>
+#include "qtestmains60.h"
+
+#include <qtms.h>
+#include <qtmsfactory.h>
+#include <qtmscall.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <qtmsformat.h>
+
+#include <qtmspcmformat.h>
+#include <qtmsamrformat.h>
+#include <qtmsilbcformat.h>
+#include <qtmsg711format.h>
+#include <qtmsg729format.h>
+
+#include <qtmsclientsink.h>
+#include <qtmsclientsource.h>
+#include <qtmsvolumeeffect.h>
+#include <qtmsgaineffect.h>
+#include <qtmsglobalvoleffect.h>
+#include <qtmsglobalgaineffect.h>
+#include <qtmsglobalrouting.h>
+
+#include <qtmsbuffer.h>
+#include <qtmsdtmf.h>
+#include <qtmsringtone.h>
+#include <qtmsinbandtone.h>
+#include <tmsbuffer.h>
+
+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>("QTMSSignalEvent");
+ qRegisterMetaType<QTMSAudioOutput>("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<QTMSVolumeEffect*> (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<QTMSVolumeEffect*> (m_Vol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSVolumeEffect*> (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<QTMSGainEffect*> (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<QTMSGainEffect*> (m_Gain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGainEffect*> (m_Gain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGainEffect*> (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<QTMSGlobalVolEffect*> (m_GlobalVol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxvol(0);
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->GetMaxLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->SetLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (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<QTMSGlobalGainEffect*> (m_GlobalGain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxgain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGlobalGainEffect*>(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<guint>::iterator iteroutputs =
+ m_Availableoutputs.begin();
+ for (; iteroutputs < m_Availableoutputs.end(); iteroutputs++)
+ {
+ DisplayDevice(*iteroutputs);
+ }
+ }
+ }
+
+void QTmsCsTest::DisplayDevice(QTMSAudioOutput device)
+ {
+ QTest::addColumn<QTMSAudioOutput>("routing");
+
+ switch (device)
+ {
+ case QTMS_AUDIO_OUTPUT_NONE:
+ {
+ qDebug("none");
+ QTest::newRow("None")<<QTMS_AUDIO_OUTPUT_NONE;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PUBLIC:
+ {
+ qDebug("Public");
+ QTest::newRow("Public")<<QTMS_AUDIO_OUTPUT_PUBLIC;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PRIVATE:
+ {
+ qDebug("Private");
+ QTest::newRow("Private")<<QTMS_AUDIO_OUTPUT_PRIVATE;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_HANDSET:
+ {
+ qDebug("Handset");
+ QTest::newRow("Handset")<<QTMS_AUDIO_OUTPUT_HANDSET;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_LOUDSPEAKER:
+ {
+ qDebug("Loudspeaker");
+ QTest::newRow("Loud speaker")<< QTMS_AUDIO_OUTPUT_LOUDSPEAKER;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
+ {
+ qDebug("Wired accessory");
+ QTest::newRow("Wired accessory")<<QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_ACCESSORY:
+ {
+ qDebug("Accessory");
+ QTest::newRow("Accessory")<< QTMS_AUDIO_OUTPUT_ACCESSORY;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_ETTY:
+ {
+ qDebug("TTY");
+ QTest::newRow("ETTY")<< QTMS_AUDIO_OUTPUT_ETTY;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+void QTmsCsTest::CreateDnlinkDtmf()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ status = m_Factory->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<QTMSInbandToneType>("inbandTone");
+
+ QTest::newRow("Busy")<<QTMS_INBAND_USER_BUSY;
+ QTest::newRow("Path not avail")<<QTMS_INBAND_RADIO_PATH_NOT_AVAIL;
+ QTest::newRow("Congestion")<< QTMS_INBAND_CONGESTION;
+ QTest::newRow("Special info")<<QTMS_INBAND_SPECIAL_INFO;
+ QTest::newRow("Reorder")<< QTMS_INBAND_REORDER;
+ QTest::newRow("Remote alerting")<<QTMS_INBAND_REMOTE_ALEARTING;
+ QTest::newRow("call waiting")<< QTMS_INBAND_CALL_WAITING;
+ QTest::newRow("data call")<< QTMS_INBAND_DATA_CALL;
+ QTest::newRow("no sequence")<< QTMS_INBAND_NO_SEQUENCE;
+ QTest::newRow("beep sequence")<<QTMS_INBAND_BEEP_SEQUENCE;
+
+ }
+
+
+void QTmsCsTest::CreateInband()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSInbandToneType, inbandTone);
+
+ if (m_InbandTonePlayer)
+ {
+ status = m_InbandTonePlayer->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<sizeof(KTestFile1)> 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<sizeof(KRTBeepSequence)> 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<QTMSEffect&> (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<QTMSStream&> (stream).GetStreamId();
+ qDebug("StreamID %d",streamId);
+ gint state;
+ state = const_cast<QTMSStream&> (stream).GetState();
+ QVERIFY(state == event.curr_state);
+
+ switch (const_cast<QTMSStream&> (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"
+
--- /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
--- /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
--- /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 <QObject>
+#include <QtTest/QtTest>
+#include "qtestmains60.h"
+
+#include <qtms.h>
+#include <qtmsfactory.h>
+#include <qtmscall.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <qtmsformat.h>
+
+#include <qtmspcmformat.h>
+#include <qtmsamrformat.h>
+#include <qtmsilbcformat.h>
+#include <qtmsg711format.h>
+#include <qtmsg729format.h>
+
+#include <qtmsclientsink.h>
+#include <qtmsclientsource.h>
+#include <qtmsvolumeeffect.h>
+#include <qtmsgaineffect.h>
+#include <qtmsglobalvoleffect.h>
+#include <qtmsglobalgaineffect.h>
+#include <qtmsglobalrouting.h>
+
+#include <qtmsbuffer.h>
+#include <qtmsdtmf.h>
+#include <qtmsringtone.h>
+#include <qtmsinbandtone.h>
+#include <tmsbuffer.h>
+
+
+// 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>("QTMSSignalEvent");
+ qRegisterMetaType<QTMSAudioOutput>("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<QTMSFormat*>::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<QTMSFormat*>::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<QTMSClientSource*> (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<QTMSClientSource*>(m_ClientSource)->GetType(st);
+ gboolean enqueue(FALSE);
+ static_cast<QTMSClientSource*>(m_ClientSource)->GetEnqueueMode(enqueue);
+ static_cast<QTMSClientSource*>(m_ClientSource)->SetEnqueueMode(FALSE);
+ static_cast<QTMSClientSource*>(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<QTMSClientSink*> (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<QTMSFormatType>("format");
+
+#ifndef __WINSCW__
+ QTest::newRow("G711")<<QTMS_FORMAT_G711;
+ QTest::newRow("G729")<<QTMS_FORMAT_G729;
+ QTest::newRow("iLBC")<<QTMS_FORMAT_ILBC;
+ QTest::newRow("AMR")<<QTMS_FORMAT_AMR;
+#endif
+ QTest::newRow("PCM") << QTMS_FORMAT_PCM;
+ }
+
+void QTmsVoipTest::CreateFormat()
+ {
+ gint decstatus(QTMS_RESULT_SUCCESS);
+ gint encstatus(QTMS_RESULT_SUCCESS);
+ gint setencstatus(QTMS_RESULT_SUCCESS);
+ gint setdecstatus(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSFormatType, format);
+
+ m_DnLinkCodec = format;
+ m_UpLinkCodec = format;
+
+ switch (format)
+ {
+ case QTMS_FORMAT_G711:
+ {
+ decstatus = m_Factory->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<QTMSG711Format*> (m_G711EncFormatIntfc)->SetVADMode(
+ m_Vad);
+ qDebug("G711 VAD set %d", m_Vad);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->SetVADMode(
+ m_Vad);
+ qDebug("G729 VAD set %d",m_Vad);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetVADMode(
+ m_Vad);
+ qDebug("iLBC VAD set %d",m_Vad);
+ break;
+ case QTMS_FORMAT_AMR:
+ //static_cast<TMSAMRFormat*>(iAMRNBEncFormatIntfc)->SetVADMode(m_Vad);
+ break;
+ case QTMS_FORMAT_PCM:
+ // Not supported; just for testing failing condition
+ //static_cast<QTMSPCMFormat*>(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<QTMSG711Format*> (m_G711EncFormatIntfc)->GetVADMode(
+ vad);
+ qDebug("get G711 VAD: %d", vad);
+ break;
+ case QTMS_FORMAT_G729:
+ status = static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->GetVADMode(
+ vad);
+ qDebug("get G729 VAD: %d", vad);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormat*> (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<QTMSG711Format*> (m_G711DecFormatIntfc)->SetCNG(m_Cng);
+ qDebug("G711 CNG set %d", m_Cng);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (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<QTMSG711Format*>(m_G711DecFormatIntfc)->GetCNG(cng);
+ qDebug("G711 CNG: %d", cng);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormat*>(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<QTMSG711Format*> (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<QTMSG711Format*> (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<guint>::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<QTMSG711Format*> (m_G711EncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_AMR:
+ static_cast<QTMSAMRFormat*> (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<guint>::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<QTMSG711Format*> (m_G711EncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("G711 bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("G729 bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("iLBC bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_AMR:
+ static_cast<QTMSAMRFormat*> (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<QTMSG711Format*> (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<QTMSG711Format*> (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<QTMSG711Format*> (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<QTMSILBCFormat*> (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<QTMSILBCFormat*> (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<QTMSILBCFormat*> (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<QTMSG711Format*> (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<QTMSG711Format*> (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<QTMSG711Format*> (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<QTMSILBCFormat*> (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<QTMSILBCFormat*> (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<QTMSILBCFormat*> (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<QTMSVolumeEffect*> (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<QTMSVolumeEffect*> (m_Vol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSVolumeEffect*> (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<QTMSGainEffect*> (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<QTMSGainEffect*> (m_Gain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGainEffect*> (m_Gain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGainEffect*> (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<QTMSGlobalVolEffect*> (m_GlobalVol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxvol(0);
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->GetMaxLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global max vol %d",maxvol);
+
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->SetLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (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<QTMSGlobalGainEffect*> (m_GlobalGain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxgain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global max gain %d",maxgain);
+
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global gain %d",gain);
+
+ QCOMPARE(gain,maxgain);
+
+ }
+ }
+
+void QTmsVoipTest::CreateRouting_data()
+ {
+
+ QTest::addColumn<QTMSAudioOutput>("routing");
+
+ QTest::newRow("Public")<<QTMS_AUDIO_OUTPUT_PUBLIC;
+ QTest::newRow("Private")<<QTMS_AUDIO_OUTPUT_PRIVATE;
+
+
+ }
+
+void QTmsVoipTest::CreateRouting()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ QFETCH(QTMSAudioOutput, routing);
+
+ if (m_Factory && !m_Routing)
+ {
+ m_UpLinkCodec = QTMS_FORMAT_PCM;
+ m_Factory->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<QTMSClientSource*> (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<TMS::TMSBuffer*> (buffer);
+ if(m_ClientSink)
+ {
+ static_cast<QTMSClientSink*> (m_ClientSink)->BufferProcessed(
+ recBuf);
+ }
+#endif
+ }
+
+
+
+void QTmsVoipTest::EffectsEvent(const QTMSEffect& tmseffect,
+ QTMSSignalEvent event)
+ {
+ QTMSEffectType effecttype;
+ const_cast<QTMSEffect&> (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<QTMSStream&> (stream).GetStreamId();
+ qDebug("StreamID %d",streamId);
+ gint state;
+ state = const_cast<QTMSStream&> (stream).GetState();
+ QVERIFY(state == event.curr_state);
+
+ switch (const_cast<QTMSStream&> (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"
+
--- /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
--- /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 <platform_paths.hrh>
+
+TEMPLATE = subdirs
+
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
+
+
+SUBDIRS = qtmscstest \
+ qtmsvoiptest
+
+
+SYMBIAN_PLATFORMS = DEFAULT
--- 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);
}
--- 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);
}
--- 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
--- 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<TMSMicSource*> (iSource));
}
gint QTMSMicSource::GetType(QTMSSourceType& sourcetype)
--- 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<TMSModemSink*>(iSink));
}
gint QTMSModemSink::GetType(QTMSSinkType& sinktype)
--- 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<TMSModemSource*> (iSource));
}
gint QTMSModemSource::GetType(QTMSSourceType& sourcetype)
--- 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<TMSSpeakerSink*>(iSink));
}
gint QTMSSpeakerSink::GetType(QTMSSinkType& sinktype)
--- 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<TMSVolumeEffect*>(iEffect));
}
gint QTMSVolumeEffect::GetLevel(guint& level)