# HG changeset patch # User William Roberts # Date 1279813101 -3600 # Node ID f3d2589f22d6bcc20b5afb785f9fe8e68c32dc38 # Parent 3b7506f6333531d7fc9839213a2f97cdfa1e597a# Parent d141fc1ad77bdf7158e676a516b55e044c191909 Catchup to latest Symbian^4 diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp --- a/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -30,6 +30,10 @@ #include #include +#include // for RProperty +#include +#include + #include #include @@ -153,11 +157,21 @@ MPX_FUNC("CMPXCollectionCachedHelper::::AddL"); // Commit when we have cached more than a set amount // - if( iCache->Count() >= KCacheCount) - { + + TInt cacheCount = KCacheCount; + TInt usbStatus; + RProperty::Get( KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus ); + + // if MTP is not connected via USB, disable caching mechanism and flush immediately + // in case UI is not blocked and need to reflect the change in real time + // this logic is hardly invoked during MTP, because ::FindAllL (which flush) is always called before AddL + if ((usbStatus != KUsbPersonalityIdMTP) && (usbStatus != KUsbPersonalityIdPCSuiteMTP)) + cacheCount = 1; + + if( iCache->Count() >= cacheCount) Commit(); - } -#ifdef ABSTRACTAUDIOALBUM_INCLUDED + + #ifdef ABSTRACTAUDIOALBUM_INCLUDED TBool extract = ETrue; if( aMedia->IsSupported( KMPXMediaMTPSampleDataFlag ) ) { @@ -746,6 +760,14 @@ #else //RD_MPX_COLLECTION_CACHE MPX_DEBUG1("CMPXCollectionCachedHelper::GetL <--"); + + TInt usbStatus; + RProperty::Get( KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus ); + + // if MTP is not connected via USB, flush immediately + // in case UI is not blocked and need to reflect the change in real time + if ((usbStatus != KUsbPersonalityIdMTP) && (usbStatus != KUsbPersonalityIdPCSuiteMTP)) + Commit(); #ifdef ABSTRACTAUDIOALBUM_INCLUDED if (aItemCat != EMPXSong && aItemCat != EMPXPlaylist && aItemCat != EMPXAbstractAlbum) diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp --- a/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -38,6 +38,7 @@ #include #include #include +#include #include "mpxcollectionuihelperobserver.h" #include "mpxcollectionuihelperimp.h" @@ -1399,11 +1400,16 @@ { TInt usbStatus; RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus); - - if ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP) - || (usbStatus == KUsbPersonalityIdMS) ) + + TInt mtpStatus = EMtpPSStatusUninitialized; + RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus); + + MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus); + + if ( (mtpStatus != EMtpPSStatusUninitialized) + || (usbStatus == KUsbPersonalityIdMS) ) { - MPX_DEBUG1("USB is active, Leave with KErrLocked"); + MPX_DEBUG1("MTP/USB is active, Leave with KErrLocked"); // need to call back even if it leaves here iHelperObserver = (MMPXCHelperObserver*)aCallback; CompleteTask( aTask, KErrLocked ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp --- a/mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -43,8 +43,7 @@ #include #endif //RD_MPX_TNM_INTEGRATION // cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode -#include -#include +#include #include #include "mpxcollectionuihelperobserver.h" #include "mpxcollectionhelpercommon.h" @@ -310,32 +309,16 @@ { MPX_DEBUG3("CMPXDeleteHelper::RunL. [iMoreToDo %d] [iStatus %d]", iMoreToDo, iStatus.Int()); - // cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode - TUsbDeviceState deviceState = EUsbDeviceStateConfigured; - if ( !iUsbManConnected ) - { - ConnectUsbMan(); - } - - if ( iUsbManConnected ) + TInt mtpStatus = EMtpPSStatusUninitialized; + RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus); + + MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus); + + if (mtpStatus != EMtpPSStatusUninitialized) { - if ( iUsbMan.GetDeviceState( deviceState ) != KErrNone ) - { - deviceState = EUsbDeviceStateConfigured; - } - } - - if ( deviceState == EUsbDeviceStateAddress || - deviceState == EUsbDeviceStateConfigured ) - { - TInt usbStatus; - RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus); - if ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP)) - { - MPX_DEBUG1("USB is active, Stop Delete"); - CompleteDelete( KErrLocked ); - return; - } + MPX_DEBUG1("MTP is active, Stop Delete"); + CompleteDelete( KErrLocked ); + return; } if (iMoreToDo && iStatus.Int() == KErrNone) diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h --- a/mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h Thu Jul 22 16:38:21 2010 +0100 @@ -24,9 +24,11 @@ // Please update the increment number for each increment // Please update the version number for each schema change #ifdef ABSTRACTAUDIOALBUM_INCLUDED -_LIT( KHarvesterDBName, "harvesterdbv9_6.dat" ); +_LIT( KHarvesterDBName, "harvesterdbv10_0.dat" ); +_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_0i.dat" ); #else -_LIT( KHarvesterDBName, "harvesterdbv9_5.dat" ); +_LIT( KHarvesterDBName, "harvesterdbv10_0n.dat" ); +_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_0in.dat" ); #endif _LIT( KHarvesterDBPattern, "harvesterdbv*.dat" ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/filehandler/inc/mpxharvesterdb.h --- a/mmappcomponents/harvester/filehandler/inc/mpxharvesterdb.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/filehandler/inc/mpxharvesterdb.h Thu Jul 22 16:38:21 2010 +0100 @@ -51,9 +51,10 @@ * Two-phased constructor * @param aDrive drive of the database * @param aFs file session + * @param aEMMC whether the system has an internal drive * @return new instance of CMPXHarvesterDB */ - static CMPXHarvesterDB* NewL( TDriveNumber aDrive, RFs& aFs ); + static CMPXHarvesterDB* NewL( TDriveNumber aDrive, RFs& aFs, TBool aEMMC = EFalse ); /** * Virtual destructor @@ -209,7 +210,7 @@ /** * Default constructor */ - CMPXHarvesterDB( TDriveNumber aDrive, RFs& aFs ); + CMPXHarvesterDB( TDriveNumber aDrive, RFs& aFs, TBool aEMMC ); /** * 2nd phase constructor @@ -219,6 +220,7 @@ private: // data TDriveNumber iDrive; RFs& iFs; + TBool iEMMC; //Has system an internal drive // Internal database CFileStore* iStore; RDbStoreDatabase* iDatabase; // Local single client db diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/filehandler/inc/mpxharvesterdbmanager.h --- a/mmappcomponents/harvester/filehandler/inc/mpxharvesterdbmanager.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/filehandler/inc/mpxharvesterdbmanager.h Thu Jul 22 16:38:21 2010 +0100 @@ -268,7 +268,7 @@ RPointerArray iDatabases; RFs& iFs; // Not Owned - + TBool iEMMC; //Has system an internal drive #ifdef __RAMDISK_PERF_ENABLE // Defined for RAM disk performance TBool iRAMDiskPerfEnabled; // flag to indicate RAM disk feature is enabled from cenrep. diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/filehandler/inc/mpxharvesterfilehandlerimp.h --- a/mmappcomponents/harvester/filehandler/inc/mpxharvesterfilehandlerimp.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/filehandler/inc/mpxharvesterfilehandlerimp.h Thu Jul 22 16:38:21 2010 +0100 @@ -264,6 +264,13 @@ void ParseScanPathL(); /** + * Read cenrep file for paths + * @param aScanPath fetched from cenrep dirs to scan + * @param aBlockPath fetched from cenrep dirs not to scan + */ + void FetchPathsFromCenrepL( TDes16& aScanPath, TDes16& aBlockPath ); + + /** * Parse cenrep string (KHarvesterContainerKey) * for a list of containers */ diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/filehandler/src/mpxharvesterdb.cpp --- a/mmappcomponents/harvester/filehandler/src/mpxharvesterdb.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterdb.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -30,9 +30,10 @@ // C++ Constructor // --------------------------------------------------------------------------- // -CMPXHarvesterDB::CMPXHarvesterDB( TDriveNumber aDrive, RFs& aFs ) : +CMPXHarvesterDB::CMPXHarvesterDB( TDriveNumber aDrive, RFs& aFs, TBool aEMMC ) : iDrive( aDrive), - iFs( aFs ) + iFs( aFs ), + iEMMC( aEMMC ) #ifdef __RAMDISK_PERF_ENABLE ,iRamDrive(aDrive), iUseRamDrive(EFalse) @@ -54,9 +55,9 @@ // Two-Phased Constructor // --------------------------------------------------------------------------- // -CMPXHarvesterDB* CMPXHarvesterDB::NewL( TDriveNumber aDrive, RFs& aFs ) +CMPXHarvesterDB* CMPXHarvesterDB::NewL( TDriveNumber aDrive, RFs& aFs, TBool aEMMC ) { - CMPXHarvesterDB* self = new( ELeave ) CMPXHarvesterDB( aDrive, aFs ); + CMPXHarvesterDB* self = new( ELeave ) CMPXHarvesterDB( aDrive, aFs, aEMMC ); CleanupStack::PushL( self ); self->ConstructL(); CleanupStack::Pop( self ); @@ -708,7 +709,14 @@ fileName.Append( KHarvesterDBPath ); TDriveUnit drive( iDrive ); fileName.Append(drive.Name()[0]); - fileName.Append(KHarvesterDBName); + + //Use different name for Dbs if the system has an internal drive vs. MMC-only. + //Since hard-coded drive letters in the Thumbnail URIs + //So Dbs are not interchangeable between an internal drive system and MMC-only system. + if ( iEMMC ) + fileName.Append( KHarvesterDBNameEMMC ); + else + fileName.Append( KHarvesterDBName ); } else { @@ -716,7 +724,10 @@ TDriveUnit drive( iDrive ); fileName.Append( drive.Name() ); fileName.Append( KHarvesterDBPath ); - fileName.Append( KHarvesterDBName ); + if ( iEMMC ) + fileName.Append( KHarvesterDBNameEMMC ); + else + fileName.Append( KHarvesterDBName ); #ifdef __RAMDISK_PERF_ENABLE } #endif // __RAMDISK_PERF_ENABLE diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp --- a/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -48,7 +48,8 @@ // --------------------------------------------------------------------------- // CMPXHarvesterDatabaseManager::CMPXHarvesterDatabaseManager( RFs& aFs ): - iFs( aFs ) + iFs( aFs ), + iEMMC( EFalse ) #ifdef __RAMDISK_PERF_ENABLE ,iRAMDiskPerfEnabled(EFalse), iMaximumAllowedRAMDiskSpaceToCopy(0), @@ -70,6 +71,13 @@ MPX_FUNC("CMPXHarvesterDatabaseManager::ConstructL"); User::LeaveIfError( iDBSession.Connect() ); + //Find out if the system has an internal drive (eMMC) + TDriveInfo driveInfo; + if( iFs.Drive( driveInfo, EDriveE ) == KErrNone ) + { + if ( driveInfo.iDriveAtt & KDriveAttInternal ) + iEMMC = ETrue; + } #ifdef __RAMDISK_PERF_ENABLE TInt temp; CRepository* repository = CRepository::NewLC( KCRUIDMpxHarvesterFeatures ); @@ -162,7 +170,7 @@ { MPX_DEBUG1("CMPXHarvesterDatabaseManager::OpenAllDatabasesL: re-creating database"); CMPXHarvesterDB* dB = CMPXHarvesterDB::NewL( - static_cast(driveNum), iFs ); + static_cast(driveNum), iFs, iEMMC ); CleanupStack::PushL( dB ); TRAPD(openError, rtn |= dB->OpenL() ); //lint !e665 if(openError == KErrNone) @@ -211,7 +219,8 @@ TInt index = FindDatabaseIndex ( aDrive ); if ( index == KErrNotFound ) { - db = CMPXHarvesterDB::NewL( aDrive, iFs ); + index = iDatabases.Count(); + db = CMPXHarvesterDB::NewL( aDrive, iFs, iEMMC ); CleanupStack::PushL( db ); iDatabases.AppendL( db ); CleanupStack::Pop( db ); @@ -407,8 +416,7 @@ void CMPXHarvesterDatabaseManager::RecreateDatabases() { MPX_DEBUG1("CMPXHarvesterDatabaseManager::RecreateDatabases <--"); - TInt count( iDatabases.Count() ); - for( TInt i=0; i #include #include -#include -#include +#include #include "mpxharvesterfilehandlerimp.h" #include "mpxfolderscanner.h" @@ -62,8 +61,8 @@ #include "mpxbrokenlinkcleanup.h" // ============ CONSTANTS ========== -_LIT( KDefaultScanPath, "C:\\DATA\\|E:\\" ); -_LIT( KDefaultBlockPath, "\\SYS\\|\\PRIVATE\\|\\SYSTEM\\|\\CITIES\\"); +_LIT( KDefaultScanPath, "C:\\DATA\\|E:\\|F:\\" ); +_LIT( KDefaultBlockPath, "\\SYS\\|\\PRIVATE\\|\\SYSTEM\\|\\CITIES\\|\\SOUNDS\\SIMPLE\\|\\GAMES\\|\\RESOURCE\\|\\IMAGES\\"); _LIT( KDefaultContainers, ".odf|.dcf|.asf|.m4a|.mp4" ); _LIT( KDefaultAutoScanFolder, "C:\\data\\sounds\\digital\\|E:\\sounds\\digital\\"); const TUid KCRUIDHarvesterFeatures = { 0x101FFCD2 }; @@ -299,14 +298,16 @@ } iCollectionUtil = MMPXCollectionUtility::NewL( NULL, KMusicPlayerUid ); - // cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode + // cenrep key need to be checked whether MTP is connected // to prevent refresh - TInt usbStatus; - RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus); - - if ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP)) + TInt mtpStatus = EMtpPSStatusUninitialized; + RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus); + + MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus); + + if (mtpStatus != EMtpPSStatusUninitialized) { - MPX_DEBUG1("USB is active, Leave with KErrLocked"); + MPX_DEBUG1("MTP is active, Leave with KErrLocked"); // need to call back even if it leaves here iCollectionUtil->Collection().NotifyL( EMcMsgRefreshEnd, KErrLocked ); //User::Leave(KErrLocked); @@ -1736,15 +1737,8 @@ // TBuf<255> scanPath; TBuf<255> blockPath; - CRepository* cenrep(NULL); - TRAPD( err, cenrep = CRepository::NewL( KCRUIDHarvesterFeatures ) ); - if( err == KErrNone ) - { - cenrep->Get( KHarvesterScanPathKey, scanPath ); - cenrep->Get( KHarvesterBlockPathKey, blockPath ); - delete cenrep; - } - else + TRAPD( err, FetchPathsFromCenrepL(scanPath,blockPath) ); + if( err ) { scanPath = KDefaultScanPath; blockPath = KDefaultBlockPath; @@ -1757,6 +1751,20 @@ } // --------------------------------------------------------------------------- +// Fetches scan - and block - paths from cenrep +// --------------------------------------------------------------------------- +// +void CMPXHarvesterFileHandlerImp::FetchPathsFromCenrepL( TDes16& aScanPath, + TDes16& aBlockPath ) + { + MPX_FUNC("CMPXHarvesterFileHandlerImp::FetchPathsFromCenrepL"); + CRepository* cenrep( CRepository::NewLC( KCRUIDHarvesterFeatures ) ); + User::LeaveIfError( cenrep->Get( KHarvesterScanPathKey, aScanPath ) ); + User::LeaveIfError( cenrep->Get( KHarvesterBlockPathKey, aBlockPath ) ); + CleanupStack::PopAndDestroy(cenrep); + } + +// --------------------------------------------------------------------------- // Parses cenrep setting for container file types // --------------------------------------------------------------------------- // diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp --- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -12,7 +12,7 @@ * Contributors: * * Description: Extracts metadata from a file -* Version : %version: da1mmcf#38.1.4.2.6.1.5.3.2 % << Don't touch! Updated by Synergy at check-out. +* Version : %version: da1mmcf#38.1.4.2.6.1.5.3.4 % << Don't touch! Updated by Synergy at check-out. * */ @@ -147,6 +147,10 @@ delete iDrmMediaUtility; delete iTaskTimer; iFile.Close(); + if ( iMedia != NULL ) + { + delete iMedia; + } #ifdef RD_MPX_TNM_INTEGRATION delete iTNManager; if (iTNSyncWait && iTNSyncWait->IsStarted() ) @@ -190,7 +194,7 @@ while ( iArrayTasks.Count() ) { // execute task at index 0 - TRAPD( error, ExecuteTaskL() ); + MPX_TRAPD( error, ExecuteTaskL() ); if ( error || iCancelled ) { // cleanup @@ -212,6 +216,7 @@ } aNewProperty = iMedia; + iMedia = NULL; // ownership transferred. CleanUp(); } @@ -264,12 +269,19 @@ mimeType8->Des().Append( mimeType ); // Continue to extract metadata even if fail. - TRAPD( metadataerror, iMetadataUtility->OpenFileL( iFile, *mimeType8 ) ); - MPX_DEBUG2("CMPXMetadataExtractor::CreateMediaL, error %d parsing metadata", - metadataerror ); + MPX_TRAPD( metadataerror, iMetadataUtility->OpenFileL( iFile, *mimeType8 ) ); CleanupStack::PopAndDestroy( mimeType8 ); + // Get MetadataUtility Container const CMetaDataFieldContainer& metaCont = iMetadataUtility->MetaDataFieldsL(); + + // Get DRM data + // Need the protected flag from metadataUtility Container + MPX_TRAPD( drmerror, SetDrmMediaPropertiesL( metaCont ) ); + MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, result=%d getting drm data", + drmerror ); + + // Get metadata fields TInt count( metaCont.Count() ); for( TInt i=0; iValueText( KMPXMediaGeneralMimeType ); - MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, mimeType = %S", &mimeType); + MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType); // Verify if WMA, get the duration if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 ) @@ -450,68 +462,6 @@ { MPX_FUNC("CMPXMetadataExtractor::SetExtMediaPropertiesL()"); - // DB Flags to set - // - TUint dbFlags(KMPXMediaGeneralFlagsSetOrUnsetBit); - - // File Path - // - TParsePtrC parse( iFileName ); - iMedia->SetTextValueL( KMPXMediaGeneralUri, iFileName ); - iMedia->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); - - // DRM Rights - // - CMPXMedia* drm = NULL; - TRAPD( drmError, iDrmMediaUtility->InitL( iFileName ); - drm = CMPXMedia::NewL( *iDrmMediaUtility->GetMediaL( KMPXMediaDrmProtected.iAttributeId | - KMPXMediaDrmRightsStatus.iAttributeId ) ); - ); - - TBool prot(EFalse); - if( drm ) - { - CleanupStack::PushL( drm ); - MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL -- is a drm file"); - if( drm->IsSupported( KMPXMediaDrmProtected ) ) - { - prot = drm->ValueTObjectL( KMPXMediaDrmProtected ); - MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL protected %i", prot); - } - - TMPXMediaDrmRightsStatus status(EMPXDrmRightsFull); - if( drm->IsSupported( KMPXMediaDrmRightsStatus ) ) - { - status = drm->ValueTObjectL(KMPXMediaDrmRightsStatus); - iMedia->SetTObjectValueL(KMPXMediaDrmRightsStatus, status ); - MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL -- status %i", status); - } - - // Set DB flags - dbFlags |= KMPXMediaGeneralFlagsIsDrmProtected; - if( status != EMPXDrmRightsFull && status != EMPXDrmRightsRestricted && status != EMPXDrmRightsPreview ) - { - dbFlags |= KMPXMediaGeneralFlagsIsDrmLicenceInvalid; - } - CleanupStack::PopAndDestroy( drm ); - } - - // Trapped PV DRM error. If -46, we know the file has no rights - // - if( drmError == KErrPermissionDenied ) - { - dbFlags |= KMPXMediaGeneralFlagsIsDrmLicenceInvalid; - } - else - { - User::LeaveIfError( drmError ); - } - - iMedia->SetTObjectValueL( KMPXMediaDrmProtected, prot ); - iMedia->SetTObjectValueL( KMPXMediaMTPDrmStatus, (TUint16)prot ); - - iDrmMediaUtility->Close(); - // // File Size --- The following needs MMF support // @@ -520,6 +470,8 @@ { const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType ); MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, mimeType = %S", &mimeType); + iFile.Size( size ); + iMedia->SetTObjectValueL( KMPXMediaGeneralSize, size ); // Verify if WMA, skip getting info from MMF if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 ) @@ -530,14 +482,11 @@ else { MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, get MMF controller"); - iFile.Size( size ); - iMedia->SetTObjectValueL( KMPXMediaGeneralSize, size ); - // Duration, bitrate, samplerate, etc // if( !iMetadataOnly ) { - TRAPD(err2, iFileInfoUtil->OpenFileL( + MPX_TRAPD(err2, iFileInfoUtil->OpenFileL( iFile, iMedia->ValueText(KMPXMediaGeneralMimeType))); MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, file info util error %i", err2); @@ -558,14 +507,6 @@ } } } - else if( iFileOpenError == KErrNotFound || iFileOpenError == KErrPathNotFound ) - { - dbFlags |= KMPXMediaGeneralFlagsIsInvalid; - } - // Finally set the db flag - // - iMedia->SetTObjectValueL( KMPXMediaGeneralFlags, - dbFlags ); } // --------------------------------------------------------------------------- @@ -744,12 +685,12 @@ MPX_DEBUG2("CMPXMetadataExtractor::ExtractAlbumArtL MimeType:%S ", &mimeType ); HBufC8* mimeType8 = HBufC8::NewLC( mimeType.Length() ); mimeType8->Des().Append( mimeType ); - TRAP( err, iMetadataUtility->OpenFileL( path, wantedFields, *mimeType8 ) ); + MPX_TRAP( err, iMetadataUtility->OpenFileL( path, wantedFields, *mimeType8 ) ); CleanupStack::PopAndDestroy( mimeType8 ); } else { - TRAP( err, iMetadataUtility->OpenFileL( path, wantedFields ) ); + MPX_TRAP( err, iMetadataUtility->OpenFileL( path, wantedFields ) ); } CleanupStack::PopAndDestroy( &wantedFields ); @@ -757,7 +698,7 @@ { //check if can send TN request, If thumbnail creation is ongoing, wait til it is done CheckBeforeSendRequest(); - TRAP( err, AddMediaAlbumArtL( *aMedia, path )); + MPX_TRAP( err, AddMediaAlbumArtL( *aMedia, path )); } // Reset the utility @@ -785,7 +726,7 @@ MPX_DEBUG1("CMPXMetadataExtractor::GetMediaAlbumArtL(): Album art exist."); #ifdef RD_MPX_TNM_INTEGRATION HBufC8* value8 = NULL; - TRAPD( err, value8 = data8.AllocL() ); + MPX_TRAPD( err, value8 = data8.AllocL() ); if ( KErrNone != err ) { MPX_DEBUG2("CMPXMetadataExtractor::GetMediaAlbumArtL - error jpeg = %i", err); @@ -800,6 +741,8 @@ TThumbnailRequestId tnId = iTNManager->CreateThumbnails( *source ); iArrayTNRequestId.Append( tnId ); // add thumbnail id to array CleanupStack::Pop( value8 ); + delete source; + aMedia.SetTextValueL( KMPXMediaMusicOriginalAlbumArtFileName, aFile ); #endif // RD_MPX_TNM_INTEGRATION aMedia.SetTextValueL( KMPXMediaMusicAlbumArtFileName, aFile ); @@ -875,14 +818,16 @@ void CMPXMetadataExtractor::DoCreateMediaL() { MPX_FUNC("CMPXMetadataExtractor::DoCreateMediaL()"); + MPX_ASSERT( iMedia == NULL ); RArray contentIDs; + CleanupClosePushL( contentIDs ); contentIDs.AppendL( KMPXMediaIdGeneral ); contentIDs.AppendL( KMPXMediaIdAudio ); contentIDs.AppendL( KMPXMediaIdMusic ); contentIDs.AppendL( KMPXMediaIdDrm ); contentIDs.AppendL( KMPXMediaIdMTP ); iMedia = CMPXMedia::NewL( contentIDs.Array() ); - contentIDs.Close(); + CleanupStack::PopAndDestroy( &contentIDs ); // CMPXMedia default types iMedia->SetTObjectValueL( KMPXMediaGeneralType, @@ -1041,11 +986,14 @@ iArrayTasks.Reset(); if ( iFileOpenError == KErrNone ) { + // to avoid resources contention (i.e. accessing sql, file system, etc) + // Ordering the tasks - so no multiple tasks run at the same time + // put the longest running task at the last (i.e. thumbnailing) iArrayTasks.AppendL(ETaskCreateMedia); - iArrayTasks.AppendL(ETaskAddMetadata); + iArrayTasks.AppendL(ETaskAddExtMetadata); // Get the MMF first + iArrayTasks.AppendL(ETaskAddMetadata); // Get metadata & maybe drm data iArrayTasks.AppendL(ETaskCheckBeforeSend); - iArrayTasks.AppendL(ETaskAddAlbumArt); - iArrayTasks.AppendL(ETaskAddExtMetadata); + iArrayTasks.AppendL(ETaskAddAlbumArt); // Get album art / thumbnail last } else { @@ -1075,9 +1023,12 @@ { MPX_FUNC("CMPXMetadataExtractor::HandleTaskTimerExpired()"); - iTaskTimer->Cancel(); + if ( iTaskTimer && iTaskTimer->IsActive() ) + { + iTaskTimer->Cancel(); + } // execute task at index 0 - TRAPD( error, ExecuteTaskL() ); + MPX_TRAPD( error, ExecuteTaskL() ); if ( error || iCancelled ) { // cleanup @@ -1107,6 +1058,7 @@ if ( iObs && !iCancelled ) { iObs->HandleCreateMediaComplete( iMedia, error ); + iMedia = NULL; // ownership transferred. } CleanUp(); @@ -1124,3 +1076,106 @@ iFile.Close(); } + +// --------------------------------------------------------------------------- +// Sets DRRM media properties not returned by metadata utilities +// --------------------------------------------------------------------------- +// +void CMPXMetadataExtractor::SetDrmMediaPropertiesL(const CMetaDataFieldContainer& aMetaCont) + { + MPX_FUNC("CMPXMetadataExtractor::SetDrmMediaPropertiesL()"); + + TBool prot(EFalse); + // DB Flags to set + TUint dbFlags(KMPXMediaGeneralFlagsSetOrUnsetBit); + // Validate the objects to be used + MPX_ASSERT(iMedia); + MPX_ASSERT(iDrmMediaUtility); + + // File Path + TParsePtrC parse( iFileName ); + iMedia->SetTextValueL( KMPXMediaGeneralUri, iFileName ); + iMedia->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); + MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL - Filename=%S", &iFileName); + + // get the protected flag from MetadataUtility Container + TPtrC ptr = aMetaCont.Field( EMetaDataProtected ); + MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL -- status=%S", &ptr); + _LIT( KNonProtected, "0" ); + if ( ptr.Compare( KNonProtected ) == 0 ) + { + // this is non-protected file + // prot = EFalse + MPX_DEBUG1("CMPXMetadataExtractor::SetDrmMediaPropertiesL - non protected"); + iMedia->SetTObjectValueL( KMPXMediaDrmProtected, prot ); + iMedia->SetTObjectValueL( KMPXMediaMTPDrmStatus, (TUint16)prot ); + } + else + { // DRM file + + // DRM Rights + // + CMPXMedia* drm = NULL; + MPX_TRAPD( drmError, iDrmMediaUtility->InitL( iFileName ); + drm = CMPXMedia::NewL( *iDrmMediaUtility->GetMediaL( KMPXMediaDrmProtected.iAttributeId | + KMPXMediaDrmRightsStatus.iAttributeId ) ); + ); + + TBool prot(EFalse); + if( drm ) + { + CleanupStack::PushL( drm ); + MPX_DEBUG1("CMPXMetadataExtractor::SetDrmMediaPropertiesL -- is a drm file"); + if( drm->IsSupported( KMPXMediaDrmProtected ) ) + { + prot = drm->ValueTObjectL( KMPXMediaDrmProtected ); + MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL protected %i", prot); + } + + TMPXMediaDrmRightsStatus status(EMPXDrmRightsFull); + if( drm->IsSupported( KMPXMediaDrmRightsStatus ) ) + { + status = drm->ValueTObjectL(KMPXMediaDrmRightsStatus); + iMedia->SetTObjectValueL(KMPXMediaDrmRightsStatus, status ); + MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL -- status %i", status); + } + + // Set DB flags + dbFlags |= KMPXMediaGeneralFlagsIsDrmProtected; + if( status != EMPXDrmRightsFull && status != EMPXDrmRightsRestricted && status != EMPXDrmRightsPreview ) + { + dbFlags |= KMPXMediaGeneralFlagsIsDrmLicenceInvalid; + } + CleanupStack::PopAndDestroy( drm ); + } + + // Trapped PV DRM error. If -46, we know the file has no rights + // + if( drmError == KErrPermissionDenied ) + { + dbFlags |= KMPXMediaGeneralFlagsIsDrmLicenceInvalid; + } + else + { + User::LeaveIfError( drmError ); + } + + iMedia->SetTObjectValueL( KMPXMediaDrmProtected, prot ); + iMedia->SetTObjectValueL( KMPXMediaMTPDrmStatus, (TUint16)prot ); + + iDrmMediaUtility->Close(); + + } // DRM file + + + // verify the file open status + if( iFileOpenError == KErrNotFound || iFileOpenError == KErrPathNotFound ) + { + dbFlags |= KMPXMediaGeneralFlagsIsInvalid; + } + + // Finally set the db flag + // + iMedia->SetTObjectValueL( KMPXMediaGeneralFlags, dbFlags ); + + } diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/server/group/mpxharvester.mmp --- a/mmappcomponents/harvester/server/group/mpxharvester.mmp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/server/group/mpxharvester.mmp Thu Jul 22 16:38:21 2010 +0100 @@ -43,7 +43,7 @@ // System events SOURCE mpxfsformatmonitor.cpp SOURCE mpxmediaremovalmonitor.cpp -SOURCE mpxusbeventhandler.cpp +SOURCE mpxconnectioneventhandler.cpp USERINCLUDE ../inc USERINCLUDE ../../inc diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/server/inc/mpxconnectioneventhandler.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappcomponents/harvester/server/inc/mpxconnectioneventhandler.h Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,133 @@ +/* +* Copyright (c) 2006 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: Monitors USB events +* +*/ + + +#ifndef CMPXCONNECTIONEVENTHANDLER_H +#define CMPXCONNECTIONEVENTHANDLER_H + +#include +#include +#include "mpxsystemeventobserver.h" + +class CMPXPSKeyWatcher; + +/** + * USB Monitoring class + * + * @lib mpxharvesterserver.exe + * @since S60 3.0 + */ +NONSHARABLE_CLASS( CMPXConnectionEventHandler ) : public CActive, + public MMPXPSKeyObserver + { +public: + + /** + * Two-phase constructor + * @param aObserver observer to the event handler + */ + static CMPXConnectionEventHandler* NewL( MMPXSystemEventObserver& aObserver ); + + /** + * Two-phase constructor + * @param aObserver observer to the event handler + */ + static CMPXConnectionEventHandler* NewLC( MMPXSystemEventObserver& aObserver ); + + /** + * Virtual destructor + */ + virtual ~CMPXConnectionEventHandler(); + +public: + + /** + * Polls for the current monitor status + * If an event is happening, it will callback the observer of the event + */ + void PollStatus(); + +protected: // From Base Class + + /** + * From CActive + */ + void RunL(); + void DoCancel(); + + /** + * From MMPXPSKeyObserver + */ + void HandlePSEvent( TUid aUid, TInt aKey ); + +private: // New Methods + + /** + * Handle the PS Key event + * @param aUid UID of the key + * @param aKey ID of the key + */ + void DoHandlePSEventL( TUid aUid, TInt aKey ); + + void DoMSStartEventL(); + void DoMTPStartEventL(); + void DoMTPNotActiveEventL(); + + /** + * Connect to usbman. + * If error, default iDeviceState to EUsbDeviceStateConfigured so this would not + * block usb event mode change. + */ + void ConnectUsbMan(); + +private: + + /** + * C++ constructor + */ + CMPXConnectionEventHandler( MMPXSystemEventObserver& aObserver ); + + /* + * Second phased constructor + */ + void ConstructL(); + +private: // data + + enum TMPXConnectionState + { + EMPXConnectionNone, + EMPXConnectionMassStorage, + EMPXConnectionMTPIdle, + EMPXConnectionMTPActive + }; + + CMPXPSKeyWatcher* iUSBKeyWatcher; // PS key watcher for USB PS key + CMPXPSKeyWatcher* iMTPKeyWatcher; // PS key watcher for MTP PS key + + /* + * Observer interface to callback to an observer + */ + MMPXSystemEventObserver& iObserver; + TInt iState; + + RUsb iUsbMan; + TUsbDeviceState iDeviceState; + TBool iUsbManConnected; + }; + +#endif // CMPXCONNECTIONEVENTHANDLER_H diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/server/inc/mpxharvesterengine.h --- a/mmappcomponents/harvester/server/inc/mpxharvesterengine.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/server/inc/mpxharvesterengine.h Thu Jul 22 16:38:21 2010 +0100 @@ -31,7 +31,7 @@ class CMPXHarvesterFileHandler; class CMPXFsFormatMonitor; class CMPXMediaRemovalMonitor; -class CMPXUsbEventHandler; +class CMPXConnectionEventHandler; class CMPXMedia; class CMPXActiveTaskQueue; class CMPXPlaylistEngine; @@ -304,7 +304,7 @@ // Move to RPointerArrays of monitors in the future CMPXFsFormatMonitor* iFormatMonitor; CMPXMediaRemovalMonitor* iMediaRemovalMonitor; - CMPXUsbEventHandler* iUSBMonitor; + CMPXConnectionEventHandler* iConnectionMonitor; // Internal task queue for async operations CMPXActiveTaskQueue* iTaskQueue; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,314 @@ +/* +* Copyright (c) 2006 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: Monitors for USB events +* +*/ + + +#include +#include +#include +#ifdef RD_MULTIPLE_DRIVE +#include +#endif //RD_MULTIPLE_DRIVE +#include +#include +#include +#include +#include +#include +#include "mpxconnectioneventhandler.h" + +// CONSTANTS +const TUint KUsbAllStates = 0xFFFFFFFF; + +// --------------------------------------------------------------------------- +// Default Constructor +// --------------------------------------------------------------------------- +// +CMPXConnectionEventHandler::CMPXConnectionEventHandler( MMPXSystemEventObserver& aObserver ) : + CActive( EPriorityStandard ), + iObserver( aObserver ), + iState ( EMPXConnectionNone ), + iUsbManConnected( EFalse ) + + + { + CActiveScheduler::Add( this ); + } + + +// --------------------------------------------------------------------------- +// 2nd Phase Constructor +// --------------------------------------------------------------------------- +// +void CMPXConnectionEventHandler::ConstructL() + { + MPX_DEBUG1(_L("CMPXConnectionEventHandler::ConstructL <---")); + iUSBKeyWatcher = CMPXPSKeyWatcher::NewL( KPSUidUsbWatcher, + KUsbWatcherSelectedPersonality, + this ); + + //for checking MTP status key whether a client has started + iMTPKeyWatcher = CMPXPSKeyWatcher::NewL( KMtpPSUid, + KMtpPSStatus, + this ); + + // Connect to usbman + ConnectUsbMan(); + MPX_DEBUG1(_L("CMPXConnectionEventHandler::ConstructL --->")); + } + + +// --------------------------------------------------------------------------- +// Two Phased Constructor +// --------------------------------------------------------------------------- +// +CMPXConnectionEventHandler* CMPXConnectionEventHandler::NewL + ( MMPXSystemEventObserver& aObserver ) + { + CMPXConnectionEventHandler* self = CMPXConnectionEventHandler::NewLC( aObserver ); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// Two Phased Constructor +// --------------------------------------------------------------------------- +// +CMPXConnectionEventHandler* CMPXConnectionEventHandler::NewLC + ( MMPXSystemEventObserver& aObserver ) + + { + CMPXConnectionEventHandler* self = new( ELeave ) CMPXConnectionEventHandler( aObserver); + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } + + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CMPXConnectionEventHandler::~CMPXConnectionEventHandler() + { + Cancel(); + if ( iUsbManConnected ) + { + iUsbMan.Close(); + } + delete iUSBKeyWatcher; + delete iMTPKeyWatcher; + } + +// --------------------------------------------------------------------------- +// Poll for any ongoing USB / MTP event +// --------------------------------------------------------------------------- +// +void CMPXConnectionEventHandler::PollStatus() + { + // only call back on connection state != EMPXConnectionNone + if (iState == EMPXConnectionMassStorage) + { + TRAP_IGNORE( DoMSStartEventL() ); + } + else if (iState == EMPXConnectionMTPActive) + { + TRAP_IGNORE( DoMTPStartEventL() ); + } + else if (iState == EMPXConnectionMTPIdle) + { + TRAP_IGNORE( DoMTPNotActiveEventL() ); + } + } + +// --------------------------------------------------------------------------- +// Handle the PS key event +// --------------------------------------------------------------------------- +// +void CMPXConnectionEventHandler::HandlePSEvent( TUid aUid, TInt aKey ) + { + TRAP_IGNORE( DoHandlePSEventL(aUid,aKey) ); + } + +// --------------------------------------------------------------------------- +// Handle the PS key event +// --------------------------------------------------------------------------- +// +void CMPXConnectionEventHandler::DoHandlePSEventL( TUid /*aUid*/, TInt /*aKey*/ ) + { + MPX_FUNC("CMPXConnectionEventHandler::DoHandlePSEvent()"); + if ( !iUsbManConnected ) + { + ConnectUsbMan(); + } + + // Handle the Key event + TInt usbStatus; + iUSBKeyWatcher->GetValue( usbStatus ); + + TInt mtpStatus; + TInt err = iMTPKeyWatcher->GetValue(mtpStatus); + + 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); + + // 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)) + { + if ((iState == EMPXConnectionMTPIdle) || (iState == EMPXConnectionMTPActive)) + { + MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End"); + iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 ); + iState = EMPXConnectionNone; + } + + if (iState != EMPXConnectionMassStorage) + { + DoMSStartEventL(); + } + } + else if (iState == EMPXConnectionMassStorage) + { + if (usbStatus != KUsbPersonalityIdMS) + { + MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - USB MassStorage End"); + iObserver.HandleSystemEventL( EUSBMassStorageEndEvent, -1 ); + iState = EMPXConnectionNone; + } + } + + // after MassStorage End, it is possible that MTP is still connected + if (iState != EMPXConnectionMassStorage) + { + if (err == KErrNone) + { + if ((mtpStatus == EMtpPSStatusUninitialized) && (iState != EMPXConnectionNone)) + { + MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End"); + iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 ); + iState = EMPXConnectionNone; + } + else if ((mtpStatus == EMtpPSStatusActive) && (iState != EMPXConnectionMTPActive) + && ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP))) // only trigger MusicPlayer fully block and RAM Drive if USB MTP/PCSuiteMTP is connected + { + DoMTPStartEventL(); + } + else if ((mtpStatus == EMtpPSStatusReadyToSync) && (iState != EMPXConnectionMTPIdle) && (iState != EMPXConnectionMTPActive)) + { + DoMTPNotActiveEventL(); + } + } + else + { + // mtpwatcher can err out because the mtp ps key would only be defined and default after first use, + // and this logic here might hit before that + MPX_DEBUG2("CMPXConnectionEventHandler::DoHandlePSEvent - MTPWatcher err = %d", err); + } + } + } + +void CMPXConnectionEventHandler::DoMSStartEventL() + { + MPX_DEBUG1("CMPXConnectionEventHandler::DoMSStartEventL - USB MassStorage Start"); + iObserver.HandleSystemEventL( EUSBMassStorageStartEvent, -1 ); + iState = EMPXConnectionMassStorage; + } + +void CMPXConnectionEventHandler::DoMTPStartEventL() + { + MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPStartEventL - MTP Start"); + iObserver.HandleSystemEventL( EUSBMTPStartEvent, -1 ); + iState = EMPXConnectionMTPActive; + } + +void CMPXConnectionEventHandler::DoMTPNotActiveEventL() + { + MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPNotActiveEventL - MTP Not Active"); + iObserver.HandleSystemEventL( EUSBMTPNotActiveEvent, -1 ); + iState = EMPXConnectionMTPIdle; + } + +// --------------------------------------------------------------------------- +// CMPXConnectionEventHandler::RunL +// --------------------------------------------------------------------------- +// +void CMPXConnectionEventHandler::RunL() + { + MPX_FUNC("CMPXConnectionEventHandler::RunL()"); + TInt status( iStatus.Int() ); + + MPX_DEBUG2("CMPXConnectionEventHandler::RunL status=%d", status ); + if ( status != KErrCancel && status != KErrServerTerminated ) + { + iUsbMan.DeviceStateNotification( KUsbAllStates, iDeviceState, iStatus ); + SetActive(); + } + + if ( status == KErrNone ) + { + MPX_DEBUG2("CMPXConnectionEventHandler::RunL - DeviceState = %d", iDeviceState); + HandlePSEvent( TUid::Uid(0), 0 ); + } + } + +// --------------------------------------------------------------------------- +// CMPXConnectionEventHandler::DoCancel +// --------------------------------------------------------------------------- +// +void CMPXConnectionEventHandler::DoCancel() + { + MPX_FUNC("CMPXConnectionEventHandler::DoCancel()"); + if ( iUsbManConnected ) + { + iUsbMan.DeviceStateNotificationCancel(); + } + } + +// --------------------------------------------------------------------------- +// CMPXConnectionEventHandler::ConnectUsbMan +// If error, default iDeviceState to EUsbDeviceStateConfigured so this would not +// block usb event mode change. +// --------------------------------------------------------------------------- +void CMPXConnectionEventHandler::ConnectUsbMan() + { + MPX_FUNC("CMPXConnectionEventHandler::ConnectUsbMan()"); + if ( iUsbMan.Connect() == KErrNone ) + { + iUsbManConnected = ETrue; + // get device state + TInt err = iUsbMan.GetDeviceState( iDeviceState ); + if ( err ) + { + iDeviceState = EUsbDeviceStateUndefined; + } + + // start active object + if ( !IsActive() ) + { + iUsbMan.DeviceStateNotification( KUsbAllStates, iDeviceState, iStatus ); + SetActive(); + } + } + else + { + iDeviceState = EUsbDeviceStateConfigured; + } + } +// END OF FILE + diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/server/src/mpxharvesterengine.cpp --- a/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -35,7 +35,7 @@ #include "mpxharvesterengine.h" #include "mpxfsformatmonitor.h" #include "mpxmediaremovalmonitor.h" -#include "mpxusbeventhandler.h" +#include "mpxconnectioneventhandler.h" #include "mpxharvesterfilehandler.h" #include "mpxharvesterengineobserver.h" #include "mpxhvsmsg.h" @@ -60,7 +60,7 @@ delete iFormatMonitor; delete iMediaRemovalMonitor; - delete iUSBMonitor; + delete iConnectionMonitor; delete iFileHandler; iFsSession.Close(); @@ -101,8 +101,8 @@ iMediaRemovalMonitor = CMPXMediaRemovalMonitor::NewL( removableDrive, iFsSession, *this ); - // USB Event monitor - iUSBMonitor = CMPXUsbEventHandler::NewL( *this ); + // Connection Event monitor + iConnectionMonitor = CMPXConnectionEventHandler::NewL( *this ); // File handler to handle file related events @@ -426,7 +426,7 @@ // wont be able to open the db anyways. // iFormatMonitor->PollStatus(); - iUSBMonitor->PollStatus(); + iConnectionMonitor->PollStatus(); } // --------------------------------------------------------------------------- diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/harvester/server/src/mpxharvesterserver.cpp --- a/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -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); } @@ -117,9 +117,9 @@ // void CMPXHarvesterServer::ConstructL() { - iEngine = CMPXHarvesterEngine::NewL(); StartL(KMPXHarvesterServerName); - RProcess().SetPriority(::EPriorityLow); + RProcess().SetPriority(::EPriorityBackground); + iEngine = CMPXHarvesterEngine::NewL(); } // ---------------------------------------------------------------------------- diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp --- a/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp Thu Jul 22 16:38:21 2010 +0100 @@ -15,11 +15,11 @@ * */ -// Version : %version: 4.1.5 % - +// Version : %version: 4.1.6 % #include + TARGET mpsettengine.dll TARGETTYPE dll UID 0x1000006C 0x101F853D @@ -36,13 +36,13 @@ LIBRARY ecom.lib #if defined(EABI) -deffile ../eabi/ +deffile ../eabi/ #elif defined(WINSCW) -deffile ../bwinscw/ +deffile ../bwinscw/ #elif defined(WINS) -deffile ../bwins/ +deffile ../bwins/ #else -deffile ../bmarm/ +deffile ../bmarm/ #endif //end of file diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h --- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h Thu Jul 22 16:38:21 2010 +0100 @@ -53,6 +53,18 @@ */ IMPORT_C static void CloseSessionL(); + /** + * Issue ActiveToIdle Status Change (ActiveObject) + * this function is to be called after an MTP operation is finish to change status from Active to Idle + * observer of the status might not get the notification if idle->active->idle happens in one synchronous operation + */ + IMPORT_C static void ActiveToIdleStatusChange(); + + /** + * Cancel Outstanding ActiveToIdle Status Change + */ + IMPORT_C static void CancelActiveToIdleStatusChange(); + private: /* * get singleton instance, for internal use @@ -73,8 +85,20 @@ */ ~CMmMtpDpAccessSingleton(); + /** + * get DelayStatusChanger instance, internal use only + */ + static CIdle* DelayStatusChanger(); + + /** + * Perform actural ActiveToIdle Status Change after active object callback + */ + static TInt DoActiveToIdleStatusChange(TAny* Any); + private: CMmMtpDpMetadataAccessWrapper* iWrapper; + + CIdle* iDelayStatusChanger; }; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h --- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h Thu Jul 22 16:38:21 2010 +0100 @@ -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 @@ -165,9 +157,10 @@ /** * Updated Music DB + * @param aStorageRoot, the root path of storage * @return void */ - IMPORT_C void UpdateMusicCollectionL(); + IMPORT_C void UpdateMusicCollectionL( const TDesC& aStorageRoot ); /* * Called when the MTP session is initialised @@ -229,7 +222,7 @@ MMTPDataProviderFramework& iFramework; RFs& iFs; // should not remove this member data!!! - TInt iOpenCount; // introduce to fix CollectionHelper Flush problem + TInt iOpenCount; // introduce to fix CollectionHelper Flush problem CDesCArray* iAbstractMediaArray; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h --- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadatampxaccess.h Thu Jul 22 16:38:21 2010 +0100 @@ -72,7 +72,7 @@ * @param aCategory, indicate the category of abstract medias */ void GetAllAbstractMediaL( const TDesC& aStoreRoot, - CMPXMediaArray** aAbstractMedias, + CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory ); /** @@ -80,19 +80,11 @@ * @param aAbstractMedia, specify of which reference should be get * @param aReferences, return result array which stored handles of all references */ - void GetAllReferenceL( CMPXMedia* aAbstractMedia, + void GetAllReferenceL( const TDesC& aRefOwnerSuid, + TMPXGeneralCategory aCategory, CDesCArray& aReferences ); /** - * Get an abstract media name from CMPXMedia object - * @param aAbstractMedia, specify the source - * @param aCategory, specify the category - * @return, name of the source, ownership transferred - */ - HBufC* GetAbstractMediaNameL( CMPXMedia* aAbstractMedia, - TMPXGeneralCategory aCategory ); - - /** * Adds Songs info to Mpx DB * @param aFullFileName, full file name of Media file */ @@ -215,6 +207,8 @@ MMPXCollectionHelper* iCollectionHelper; HBufC8* iSampleData; + TBool iHasCleanUp; + #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) CMmMtpDpPerfLog* iPerfLog; #endif diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpperflog.inl --- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpperflog.inl Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpperflog.inl Thu Jul 22 16:38:21 2010 +0100 @@ -72,7 +72,7 @@ VA_START( list, aFmt ); HBufC* buf = HBufC::New( KMtpLogBufferSize ); - if ( buf ) + if ( buf != NULL ) { buf->Des().AppendFormatList( aFmt, list, &iOverflowHandler ); Write( *buf ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh --- a/mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh Thu Jul 22 16:38:21 2010 +0100 @@ -28,4 +28,7 @@ // flag to enable support for non embedded album art, should be ON by default #define MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT +// flag to enable reset of MTP PS Status flag at CloseSession +#define MMMTPDP_RESET_STATUS_CLOSESESSION + #endif // MMMTPDP_VARIANT_HRH diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/mmmtpdpfiledefs.h --- a/mmappcomponents/mmmtpdataprovider/inc/mmmtpdpfiledefs.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdpfiledefs.h Thu Jul 22 16:38:21 2010 +0100 @@ -47,29 +47,29 @@ _LIT( KTxtExtensionPLA, ".pla" ); _LIT( KTxtExtensionVIR, ".vir" ); // virtual playlist from MPX -_LIT(KFormatExtensionMP3, "0x3009:mp3"); -_LIT(KFormatExtensionWMA, "0xb901:wma"); -_LIT(KFormatExtensionMP4, "0xb982:mp4"); -_LIT(KFormatExtension3GP, "0xb984:3gp"); -_LIT(KFormatExtension3G2, "0xb984:3g2"); -_LIT(KFormatExtensionAAC, "0xb903:aac"); -_LIT(KFormatExtensionWAV, "0x3008:wav"); -_LIT(KFormatExtensionWMV, "0xb981:wmv"); -_LIT(KFormatExtensionASF, "0x300c:asf"); +_LIT(KFormatExtensionMP3, "0x3009:mp3::3"); +_LIT(KFormatExtensionWMA, "0xb901:wma::3"); +_LIT(KFormatExtensionMP4, "0xb982:mp4::3"); +_LIT(KFormatExtension3GP, "0xb984:3gp::3"); +_LIT(KFormatExtension3G2, "0xb984:3g2::3"); +_LIT(KFormatExtensionAAC, "0xb903:aac::3"); +_LIT(KFormatExtensionWAV, "0x3008:wav::3"); +_LIT(KFormatExtensionWMV, "0xb981:wmv::3"); +_LIT(KFormatExtensionASF, "0x300c:asf::3"); //ODF container -_LIT(KFormatExtensionODFAudio3GPP, "0xB984:ODF:audio/3gpp"); -_LIT(KFormatExtensionODFVideo3GPP, "0xB984:ODF:video/3gpp"); +_LIT(KFormatExtensionODFAudio3GPP, "0xB984:ODF:audio/3gpp:3"); +_LIT(KFormatExtensionODFVideo3GPP, "0xB984:ODF:video/3gpp:3"); -_LIT(KFormatExtensionM4A, "0xB982:m4a"); -_LIT(KFormatExtensionO4A, "0xB984:o4a"); -_LIT(KFormatExtensionO4V, "0xB984:o4v"); +_LIT(KFormatExtensionM4A, "0xB982:m4a::3"); +_LIT(KFormatExtensionO4A, "0xB984:o4a::3"); +_LIT(KFormatExtensionO4V, "0xB984:o4v::3"); //Abstract Album -_LIT(KFormatExtensionALB, "0xBA03:alb"); +_LIT(KFormatExtensionALB, "0xBA03:alb::3"); //Playlists -_LIT(KFormatExtensionM3U, "0xba11:m3u"); +_LIT(KFormatExtensionM3U, "0xba11:m3u::3"); _LIT(KFormatExtensionPLA, "0xBA05:pla"); _LIT(KFormatExtensionVIR, "0xBA05:vir"); //abstract audio & video playlist 0xBA05 //-------------------------------------------------------------------------------------------- diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h --- a/mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,6 +20,7 @@ #define MMMTPDPUTILITY_H #include +#include #include "mmmtpdpfiledefs.h" @@ -143,6 +144,34 @@ * @return return DRM status code */ IMPORT_C static TInt GetDrmStatus( const TDesC& aFullFileName ); + + /** + * Set MTP PS Status + * @param aStatus, next TMtpPSStatus + * + * newly implemented function to as enabler + * to provide more state transition on application (MusicPlayer/MPX) during MTP by fully utilize the 3 PSStatus: + * + * EMtpPSStatusActive, == MTP operation related Media Files is performaning + * EMtpPSStatusUninitialized == MTP not in use + * EMtpPSStatusReadyToSync == MTP is connected, but no active operation related to Media Files + * + * this CAN enable 2 new behaviors: + * 1. MTP status monitor is extracted out from USB Event Observer in harvester + * Harvester and Music player should be fully blocked if PS Status is EMtpPSStatusActive + * Music Player would prevent refresh/delete/add on UI level if PS Status is EMtpPSStatusReadyToSync + * 2. collectioncachedhelper to observed this status. + * when the ps status changed from EMtpPSStatusActive to EMtpPSStatusReadyToSync, it starts timer. + * and when it is reached, it flush all cache. + * the timer is canceled when ps status is back to active. + */ + IMPORT_C static void SetPSStatus( TMtpPSStatus aStatus ); + + /** + * Set MTP PS Status (actually) + * @param aStatus, next TMtpPSStatus + */ + static void DoSetPSStatus( TMtpPSStatus aStatus ); }; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg has changed diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg has changed diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg has changed diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,7 +20,6 @@ #define CABSTRACTMEDIAMTPDATAPROVIDERENUMERATOR_H #include -#include #include "mmmtpenumerationcallback.h" #include "cmmmtpdpperflog.h" @@ -29,8 +28,6 @@ class MMTPDataProviderFramework; class MMTPObjectMgr; class CAbstractMediaMtpDataProvider; -class CMTPObjectMetaData; -class CMmMtpDpMetadataAccessWrapper; class CMPXMediaArray; /** @@ -77,6 +74,7 @@ enum TEnumState { + EEnumNone, EEnumPlaylist, EEnumAbstractAlbum, EEnumCount @@ -106,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 @@ -128,18 +125,16 @@ /** Provides Callback mechanism for completion of enumeration*/ CAbstractMediaMtpDataProvider& iDataProvider; - TParse iPath; - TEntryArray iEntries; - TInt iFirstUnprocessed; RArray iStorages; TUint32 iStorageId; - TUint32 iParentHandle; - CMPXMediaArray* iAbstractMedias; + CDesCArray* iAbstractMedias; TInt iCount; TInt iCurrentIndex; TInt iEnumState; - + + TInt iResetCount; + #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) CMmMtpDpPerfLog* iPerfLog; #endif diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -22,16 +22,15 @@ #include #include #include +#include #include #include -#include "abstractmediamtpdataproviderconst.h" #include "cabstractmediamtpdataproviderenumerator.h" #include "cabstractmediamtpdataprovider.h" #include "mmmtpdplogger.h" #include "mmmtpdputility.h" #include "cmmmtpdpmetadataaccesswrapper.h" -#include "cmmmtpdpmetadatampxaccess.h" const TInt KMTPDriveGranularity = 5; @@ -41,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 // ----------------------------------------------------------------------------- @@ -82,7 +79,8 @@ iAbstractMedias( NULL ), iCount( 0 ), iCurrentIndex( 0 ), - iEnumState ( EEnumPlaylist ) + iEnumState ( EEnumNone ), + iResetCount( 0 ) { PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::CAbstractMediaMtpDataProviderEnumerator, iDataProviderId = %d" ), iDataProviderId ); } @@ -150,9 +148,9 @@ } CleanupStack::PopAndDestroy( &storages ); // - storages } - else if ( aStorageId != KMTPNotSpecified32 ) + else if ( aStorageId != KMTPNotSpecified32 + && storageMgr.ValidStorageId( aStorageId ) ) { - __ASSERT_DEBUG( storageMgr.ValidStorageId( aStorageId ), User::Invariant() ); const CMTPStorageMetaData& storage( storageMgr.StorageL( aStorageId ) ); if ( storage.Uint( CMTPStorageMetaData::EStorageSystemType ) == @@ -181,11 +179,7 @@ // keep in mind for notification when enumeration complete iStorageId = aStorageId; - iEnumState = EEnumPlaylist; - if ( iStorages.Count() > 0 ) - { - InitStorageL(); - } + iEnumState = EEnumNone; ScanNextL(); PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::StartL" ) ); @@ -206,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 ) @@ -233,6 +227,7 @@ folder ); // + object object->SetUint( CMTPObjectMetaData::EParentHandle, KMTPHandleNoParent ); object->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPAssociationTypeGenericFolder ); + object->SetDesCL( CMTPObjectMetaData::EName, KPlaylistFilePath().Left( KPlaylistFilePath().Length() - 1 ) ); PERFLOGSTART( KObjectManagerInsert ); iObjectMgr.InsertObjectL( *object ); PERFLOGSTOP( KObjectManagerInsert ); @@ -244,9 +239,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 ) @@ -269,42 +265,48 @@ // void CAbstractMediaMtpDataProviderEnumerator::ScanNextL() { - while ( iStorages.Count() > 0 ) + PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::ScanNextL" ) ); + + if ( iCurrentIndex >= iCount ) + { + iEnumState++; + } + + if ( iEnumState >= EEnumCount ) { - while ( 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 ); + } + + if ( iStorages.Count() > 0 ) + { + if( iCurrentIndex >= iCount ) { - if ( iCurrentIndex < iCount ) - { - TRequestStatus* status = &iStatus; - User::RequestComplete( status, iStatus.Int() ); - SetActive(); - PRINT2( _L( "MM MTP <> Current storage is still being scanned, current index = %d, total AbstractMedia count = %d" ), - iCurrentIndex, - iCount ); - return; - } - ++iEnumState; - if ( iEnumState == EEnumCount ) - { - break; - } InitStorageL(); } - iStorages.Remove( 0 ); - if ( iStorages.Count() == 0 ) - { - break; - } - iEnumState = EEnumPlaylist; - InitStorageL(); + TRequestStatus* status = &iStatus; + User::RequestComplete( status, iStatus.Int() ); + SetActive(); } - // We are done - PRINT( _L( "MM MTP <> Objects enumeration completed" ) ); - delete iAbstractMedias; - iAbstractMedias = NULL; - iStorages.Reset(); - SignalCompleteL( iDataProvider ); + else + { + // We are done + PRINT( _L( "MM MTP <> Objects enumeration completed" ) ); + delete iAbstractMedias; + iAbstractMedias = NULL; + iStorages.Reset(); + SignalCompleteL( iDataProvider ); + } + + PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::ScanNextL" ) ); } // ----------------------------------------------------------------------------- @@ -314,43 +316,35 @@ // void CAbstractMediaMtpDataProviderEnumerator::RunL() { - // 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 - TBool ret = ETrue; - if ( iEnumState == EEnumAbstractAlbum ) + PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::RunL" ) ); + if ( iCurrentIndex < iCount ) { - //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 ); + 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 + iCurrentIndex++; // Increase the index first in case of leave + TPtrC entrySuid( ( *iAbstractMedias )[iCurrentIndex-1] ); + + if ( iEnumState == EEnumAbstractAlbum ) + { + // The abstract album may be removed, check it first + 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( entrySuid ); + } + + // Getting all reference during internal enumeration takes too long, query later on demand } - if ( ret ) - { - PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunL abstractMedia=%S" ), abstractMedia ); - AddEntryL( *abstractMedia ); + ScanNextL(); - // 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 - - ScanNextL(); + PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::RunL" ) ); } // ----------------------------------------------------------------------------- @@ -363,6 +357,7 @@ if ( aError != KErrNone ) PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunError with error %d" ), aError ); + TRAP_IGNORE( SignalCompleteL( iDataProvider ) ); return KErrNone; } @@ -427,69 +422,71 @@ if ( parentHandle != KMTPHandleNone ) { - object->SetUint( CMTPObjectMetaData::EParentHandle, parentHandle ); - - PERFLOGSTART( KObjectManagerInsert ); - iObjectMgr.InsertObjectL( *object ); - PERFLOGSTOP( KObjectManagerInsert ); + // Handle .m3u playlist like abstract playlist in two situations: + // 1. The .m3u file is not on the file system. + // 2. The .m3u file is hidden and 0 size + TBool add = ETrue; + if ( format == EMTPFormatCodeM3UPlaylist ) + { + TEntry entry; + TInt err = iFramework.Fs().Entry( aSuid, entry ); + add = ( err != KErrNone) || ( entry.iSize == 0 && entry.IsHidden() ); + } - CleanupStack::PopAndDestroy( object );// - object + if ( add ) + { + object->SetUint( CMTPObjectMetaData::EParentHandle, parentHandle ); - //Only remember the playlist file for clean up - if( iEnumState == EEnumPlaylist ) - { + PERFLOGSTART( KObjectManagerInsert ); + iObjectMgr.InsertObjectL( *object ); + PERFLOGSTOP( KObjectManagerInsert ); + + //Create the dummy file on file system iDataProvider.GetWrapperL().CreateDummyFile( aSuid ); - // remember the abstract media file for clean up iDataProvider.GetWrapperL().AddDummyFileL( aSuid ); } } + CleanupStack::PopAndDestroy( object );// - object + PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddEntryL" ) ); } -// ----------------------------------------------------------------------------- -// CAbstractMediaMtpDataProviderEnumerator::AddReferencesL -// Add references into reference db according to abstract media name -// ----------------------------------------------------------------------------- -// -void CAbstractMediaMtpDataProviderEnumerator::AddReferencesL( const TDesC& aAbstractMediaName, - CDesCArray& aReferences ) +void CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL( TUint32 aStorageId ) { - TInt count = aReferences.Count(); - PRINT2( _L("MM MTP => CAbstractMediaMtpDataProviderEnumerator::AddReferencesL AbstractMedia name = %S, ref count = %d"), &aAbstractMediaName, count ); - - // check if references are valid - CMTPObjectMetaData* object = CMTPObjectMetaData::NewLC(); // + object - MMTPObjectMgr& objectMgr = iFramework.ObjectMgr(); + PRINT1( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL, StorageId = 0x%x" ), + aStorageId ); + RMTPObjectMgrQueryContext context; + RArray handles; + CleanupClosePushL( context ); // + context + CleanupClosePushL( handles ); // + handles + + // search all handles in desired storage with desired DP id + TMTPObjectMgrQueryParams params( aStorageId, KMTPFormatsAll, KMTPHandleNone, iFramework.DataProviderId() ); - TInt removeCount = 0; - for ( TInt i = 0; i < count; i++ ) + do { - TInt index = i - removeCount; - TPtrC temp( aReferences[index] ); - PRINT2( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL ref[%d]'s name = %S" ), index, &temp ); - PERFLOGSTART( KObjectManagerHandle ); - TUint32 handle = iFramework.ObjectMgr().HandleL( temp ); - PERFLOGSTOP( KObjectManagerHandle ); - if ( handle == KMTPHandleNone ) // object doesn't exist + iObjectMgr.GetObjectHandlesL( params, context, handles ); + + for ( TInt i = 0; i < handles.Count(); i++ ) { - PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp ); - - // if handle is invalid, remove from reference array - aReferences.Delete( index, 1 ); - removeCount++; + CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo + + iResetCount++; + iObjectMgr.ObjectL( handles[i], *objectInfo ); + // EMTPSubFormatCodeUnknown means references of the object haven't been insert into reference db of fw. + objectInfo->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUnknown ); + iObjectMgr.ModifyObjectL( *objectInfo ); + CleanupStack::PopAndDestroy( objectInfo ); // - objectInfo } } - CleanupStack::PopAndDestroy( object ); // - object + while ( !context.QueryComplete() ); - // add all references into references db - MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr(); - PERFLOGSTART( KReferenceManagerSetReference ); - referenceMgr.SetReferencesL( aAbstractMediaName, aReferences ); - PERFLOGSTOP( KReferenceManagerSetReference ); + CleanupStack::PopAndDestroy( &handles ); // - handles + CleanupStack::PopAndDestroy( &context ); // - context - PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddReferencesL" ) ); + PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL" ) ); } //end of file diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderdescriptionutility.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderdescriptionutility.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderdescriptionutility.h Thu Jul 22 16:38:21 2010 +0100 @@ -51,6 +51,13 @@ CMTPTypeObjectPropDesc* NewSpecificPropDescL( TUint aFormatCode, TUint16 aPropCode ); private: + + /** + * Append WM Audio specific to interdpendent property description. + * @return None + */ + void AppendWMAudioInterdepentPropDescL(CMTPTypeInterdependentPropDesc* aInterdependentPropDesc); + /** * Construct audio wave codec property description. * @param aFormatCode diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderenumerator.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderenumerator.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderenumerator.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,15 +20,11 @@ #define CMEDIAMTPDATAPROVIDERENUMERATOR_H #include -#include - #include "mmmtpenumerationcallback.h" #include "cmmmtpdpperflog.h" // Forward declarations class MMTPDataProviderFramework; -class MMTPObjectMgr; -class CMTPObjectMetaData; class CMediaMtpDataProvider; /** @@ -68,6 +64,9 @@ */ void DoCancel(); + /** + * Update the mpx db flag for round trip + */ void RunL(); /** @@ -92,85 +91,6 @@ void SignalCompleteL( MMTPEnumerationCallback& aCallback, TInt aError = KErrNone ); - void ScanStorageL( TUint32 aStorageId ); - - /** - * Scan next storage - */ - void ScanNextStorageL(); - - /** - * Scans directory at aPath recursing into subdirectories on a depth - * first basis. - * - * Directory entries are kept in iDirStack - which is a LIFO stack. - * The current path, needed since TEntries don't keep track of it, - * is kept in iPath. - * - * The algorithm works as follows: - * - * 1. Read directory entries. - * 2. ProcessEntriesL is called if no error occurs and >= 1 entries are - * read. - * 3. ProcessEntriesL adds entries to database, if entry is directory - * add to iDirStack. - * 4. When all entries are processed pop entry off the dirstack, - * if entry is empty TEntry remove one directory from iPath. - * 5. Append entry name onto iPath - to update path with new depth - * (parent/subdir). - * 6. Push an empty TEntry onto iDirStack - this tells us we have - * recursed one, think of it as pushing the '\' separator onto - * iDirStack. - * 7. Repeat 1-7 until iDirStack is empty. - */ - void ScanDirL(); - - /** - * Recurse into the next directory on the stack - * and scan it for entries. - */ - void ScanNextDirL(); - - /** - * Scan next sub dir - */ - void ScanNextSubdirL(); - - /** - * Iterates iEntries adding entries as needed to object manager and - * iDirStack. - */ - void ProcessEntriesL(); - - /** - * Add a file entry to the object store - * @param aFullFileName current scanned file path - */ - void AddEntryL( const TDesC& aFullFileName ); - - /** - * Returns a TMTPFormatCode for the requested object - */ - TMTPFormatCode GetObjectFormatCode( const TDesC& aFullFileName ); - - /** - * @param aFullFileName the object file name - * @return the file if needed to be enumeratored? - */ - TBool IsFileAccepted( const TDesC& aFullFileName ); - - /** - * start count system tick - */ - void StartEnumerationCount(); - - /** - * check if the system tick more than predefined value - * @retuan if more than the predefined value, return true - * else return false - */ - TBool IsOverThreshold(); - /** * Get modified content and report to Symbian MTP Framework */ @@ -181,27 +101,9 @@ /** MMTPDataProviderFramework used to access MTP components*/ MMTPDataProviderFramework& iFramework; - /** MTP Object Manager */ - MMTPObjectMgr& iObjectMgr; - - /** MTP Data Provider ID */ - TUint iDataProviderId; - CMediaMtpDataProvider& iDataProvider; - TParse iPath; - RDir iDir; - TEntryArray iEntries; - TInt iFirstUnprocessed; - RPointerArray iDirStack; RArray iStorages; TUint32 iStorageId; - TUint32 iParentHandle; - TMTPFormatCode iFormatCode; - TBool iScanningDir; - - // record the system tick - TUint iTickCountBegin; - TInt iTickPeriod; #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) CMmMtpDpPerfLog* iPerfLog; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h Thu Jul 22 16:38:21 2010 +0100 @@ -35,6 +35,7 @@ enum TMmMtpSampleRateValue { EMTPSampleRate8K = 0x00001F40, + EMTPSampleRate11_025K = 0x00002B11, EMTPSampleRate16K = 0x00003E80, EMTPSampleRate22_05K = 0x00005622, EMTPSampleRate24K = 0x00005DC0, @@ -46,10 +47,11 @@ // WAVECodec value enum TMmMtpWAVECodecValue { - EMTPAudioWAVECodecMP3 = 0x00000055, - EMTPAudioWAVECodecWMA = 0x00000161, - EMTPAudioWAVECodecAAC = 0x0000A106, - EMTPAudioWAVECodecPCM = 0x00000001 + EMTPAudioWAVECodecMP3 = 0x00000055, + EMTPAudioWAVECodecWMA = 0x00000161, + EMTPAudioWAVECodecWMAPro = 0x00000162, + EMTPAudioWAVECodecAAC = 0x0000A106, + EMTPAudioWAVECodecPCM = 0x00000001 }; // Bitrate value scope @@ -58,7 +60,9 @@ EMTPMP3MinBitrate = 0x00001F40, //8 kbps EMTPMP3MaxBitrate = 0x0004E200, //320 kbps EMTPWMAMinBitrate = 0x00001388, //5 kbps - EMTPWMAMaxBitrate = 0x0004E200, //320 kbps + EMTPWMAMaxBitrate = 0x0005DC00, //384 kbps + EMTPWMAProMinBitrate = 0x00001388, //5 kbps + EMTPWMAProMaxBitrate = 0x000BB800, //768 kbps EMTPAACMinBitrate = 0x00001F40, //8 kbps EMTPAACMaxBitrate = 0x0004E200, //320 kbps EMTPPCMMinBitrate = 0x00003E80, //16 kbps diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderdescriptionutility.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderdescriptionutility.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderdescriptionutility.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -84,28 +84,125 @@ } CMTPTypeInterdependentPropDesc* interdependentPropDesc = CMTPTypeInterdependentPropDesc::NewL(); + CleanupStack::PushL( interdependentPropDesc ); // + interdependentPropDesc if ( audioWaveCodecSupported && audioBitRateSupported ) { - CMTPTypeInterdependentProperties* properties = CMTPTypeInterdependentProperties::NewL(); - properties->AppendL( NewAudioWaveCodecPropDescL( aFormatCode ) ); - properties->AppendL( NewAudioBitratePropDescL( aFormatCode ) ); - interdependentPropDesc->AppendL( properties ); + if ( ( aFormatCode == EMTPFormatCodeWMA ) + || ( aFormatCode == EMTPFormatCodeWMV ) + || ( aFormatCode == EMTPFormatCodeASF ) ) + { + AppendWMAudioInterdepentPropDescL( interdependentPropDesc ); + } + else + { + CMTPTypeInterdependentProperties* properties = CMTPTypeInterdependentProperties::NewL(); + CleanupStack::PushL( properties ); + + CMTPTypeObjectPropDesc* propertyDesc1 = NewAudioWaveCodecPropDescL( aFormatCode ); + CleanupStack::PushL( propertyDesc1 ); // + propertyDesc1 + properties->AppendL( propertyDesc1 ); + CleanupStack::Pop( propertyDesc1 ); // - propertyDesc1 + + CMTPTypeObjectPropDesc* propertyDesc2 = NewAudioBitratePropDescL( aFormatCode ); + CleanupStack::PushL( propertyDesc2 ); // + propertyDesc2 + properties->AppendL( propertyDesc2 ); + CleanupStack::Pop( propertyDesc2 ); // - propertyDesc2 + + interdependentPropDesc->AppendL( properties ); + CleanupStack::Pop( properties ); + } } if ( videoFourCcCodecSupported && videoBitRateSupported ) { CMTPTypeInterdependentProperties* properties = CMTPTypeInterdependentProperties::NewL(); - properties->AppendL( NewVideoFourCCCodecPropDescL( aFormatCode ) ); - properties->AppendL( NewVideoBitratePropDescL( aFormatCode ) ); + CleanupStack::PushL( properties ); // + properties + + CMTPTypeObjectPropDesc* propertyDesc1 = NewVideoFourCCCodecPropDescL( aFormatCode ); + CleanupStack::PushL( propertyDesc1 ); // + propertyDesc1 + properties->AppendL( propertyDesc1 ); + CleanupStack::Pop( propertyDesc1 ); // - propertyDesc1 + + CMTPTypeObjectPropDesc* propertyDesc2 = NewVideoBitratePropDescL( aFormatCode ); + CleanupStack::PushL( propertyDesc2 ); // + propertyDesc2 + properties->AppendL( propertyDesc2 ); + CleanupStack::Pop( propertyDesc2 ); // - propertyDesc2 + interdependentPropDesc->AppendL( properties ); + CleanupStack::Pop( properties ); // - properties } PRINT( _L( "MM MTP <= CMediaMtpDataProviderDescriptionUtility::NewInterdepentPropDescL" ) ); + CleanupStack::Pop( interdependentPropDesc ); // - interdependentPropDesc return interdependentPropDesc; } // ----------------------------------------------------------------------------- +// CMediaMtpDataProviderDescriptionUtility::NewWMAudioInterdepentPropDescL +// Append WM Audio specific to interdpendent property description. +// ----------------------------------------------------------------------------- +// +void CMediaMtpDataProviderDescriptionUtility::AppendWMAudioInterdepentPropDescL(CMTPTypeInterdependentPropDesc* aInterdependentPropDesc) + { + PRINT( _L( "MM MTP => CMediaMtpDataProviderDescriptionUtility::AppendWMAudioInterdepentPropDescL" ) ); + + CMTPTypeInterdependentProperties* properties1 = CMTPTypeInterdependentProperties::NewL(); + CleanupStack::PushL( properties1 ); // + properties1 + + CMTPTypeObjectPropDescEnumerationForm* form = CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT32 ); + CleanupStack::PushL( form ); // + form + form->AppendSupportedValueL( TMTPTypeUint32( EMTPAudioWAVECodecWMA ) ); + + CMTPTypeObjectPropDesc* propertyDesc1 = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeAudioWAVECodec, *form ); + + CleanupStack::PopAndDestroy( form ); // - form + CleanupStack::PushL( propertyDesc1 ); // + propertyDesc1 + properties1->AppendL( propertyDesc1 ); + CleanupStack::Pop( propertyDesc1 ); // - propertyDesc1 + + CMTPTypeObjectPropDesc* propertyDesc2 = NewRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate, + EMTPWMAMinBitrate, + EMTPWMAMaxBitrate, + EMTPAudioBitrateStep ); + + CleanupStack::PushL( propertyDesc2 ); // + propertyDesc2 + properties1->AppendL( propertyDesc2 ); + CleanupStack::Pop( propertyDesc2 ); // - propertyDesc2 + + aInterdependentPropDesc->AppendL( properties1 ); + CleanupStack::Pop( properties1 ); // - properties1 + + CMTPTypeInterdependentProperties* properties2 = CMTPTypeInterdependentProperties::NewL(); + CleanupStack::PushL( properties2 ); // + properties2 + + form = CMTPTypeObjectPropDescEnumerationForm::NewL( EMTPTypeUINT32 ); + CleanupStack::PushL( form ); // + form + form->AppendSupportedValueL( TMTPTypeUint32( EMTPAudioWAVECodecWMAPro ) ); + + CMTPTypeObjectPropDesc* propertyDesc3 = CMTPTypeObjectPropDesc::NewL( EMTPObjectPropCodeAudioWAVECodec, *form ); + + CleanupStack::PopAndDestroy( form ); // - form + CleanupStack::PushL( propertyDesc3 ); // + propertyDesc3 + properties2->AppendL( propertyDesc3 ); + CleanupStack::Pop( propertyDesc3 ); // - propertyDesc3 + + CMTPTypeObjectPropDesc* propertyDesc4 = NewRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate, + EMTPWMAProMinBitrate, + EMTPWMAProMaxBitrate, + EMTPAudioBitrateStep ); + + CleanupStack::PushL( propertyDesc4 ); // + propertyDesc4 + properties2->AppendL( propertyDesc4 ); + CleanupStack::Pop( propertyDesc4 ); // - propertyDesc4 + + aInterdependentPropDesc->AppendL( properties2 ); + CleanupStack::Pop( properties2 ); // - properties2 + + PRINT( _L( "MM MTP <= CMediaMtpDataProviderDescriptionUtility::AppendWMAudioInterdepentPropDescL" ) ); + } + +// ----------------------------------------------------------------------------- // CMediaMtpDataProviderDescriptionUtility::NewSpecificPropDescL // Construct media dp specific property description. // ----------------------------------------------------------------------------- @@ -236,6 +333,7 @@ case EMTPFormatCodeWMV: case EMTPFormatCodeASF: form->AppendSupportedValueL( TMTPTypeUint32( EMTPAudioWAVECodecWMA ) ); + form->AppendSupportedValueL( TMTPTypeUint32( EMTPAudioWAVECodecWMAPro ) ); break; case EMTPFormatCodeMP3: @@ -281,7 +379,7 @@ case EMTPFormatCodeASF: propertyDesc = NewRangeFormDescriptionL( EMTPObjectPropCodeAudioBitRate, EMTPWMAMinBitrate, - EMTPWMAMaxBitrate, + EMTPWMAProMaxBitrate, EMTPAudioBitrateStep ); break; @@ -383,7 +481,7 @@ ETrue ); } - PRINT( _L( "MM MTP <= MmMtpDpDescriptionUtiliNewviceVideoBitratePropDescL" ) ); + PRINT( _L( "MM MTP <= CMediaMtpDataProviderDescriptionUtility::NewVideoBitratePropDescL" ) ); return propertyDesc; } @@ -438,6 +536,7 @@ TUint32 values[] = { EMTPSampleRate8K, + EMTPSampleRate11_025K, EMTPSampleRate16K, EMTPSampleRate22_05K, EMTPSampleRate24K, diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -20,27 +20,12 @@ #include #include #include -#include -#include "mediamtpdataproviderconst.h" #include "cmediamtpdataproviderenumerator.h" #include "cmediamtpdataprovider.h" #include "mmmtpdplogger.h" -#include "mmmtpdputility.h" -#include "cmmmtpdpaccesssingleton.h" #include "cmmmtpdpmetadataaccesswrapper.h" - -#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) -_LIT( KDirectoryScan, "DirectoryScan" ); -_LIT( KFormatFilter, "FormatFilter" ); -_LIT( KObjectManagerObjectUid, "ObjectManagerObjectUid" ); -_LIT( KObjectManagerInsert, "ObjectManagerInsert" ); -#endif - -// Unit: microsecond -const TInt KThresholdOfEnumerationLoopDuration = 1000 * 1000; // microsecond - const TInt KMTPDriveGranularity = 5; const TInt KMediaDpArrayGranularity = 2; @@ -73,14 +58,10 @@ CMediaMtpDataProvider& aDataProvider ) : CActive( EPriorityLow ), // EPriorityStandard ? sure? iFramework( aFramework ), - iObjectMgr( aFramework.ObjectMgr() ), - iDataProviderId( aFramework.DataProviderId() ), iDataProvider( aDataProvider ), - iDirStack( KMediaDpArrayGranularity ), - iStorages( KMediaDpArrayGranularity ), - iScanningDir( EFalse ) + iStorages( KMediaDpArrayGranularity ) { - PRINT1( _L( "MM MTP <> CMediaMtpDataProviderEnumerator::CMediaMtpDataProviderEnumerator, iDataProviderId = %d" ), iDataProviderId ); + PRINT1( _L( "MM MTP <> CMediaMtpDataProviderEnumerator::CMediaMtpDataProviderEnumerator, DataProviderId = %d" ), iFramework.DataProviderId() ); } // ----------------------------------------------------------------------------- @@ -92,8 +73,6 @@ { PRINT( _L( "MM MTP => CMediaMtpDataProviderEnumerator::~CMediaMtpDataProviderEnumerator" ) ); Cancel(); - iDir.Close(); - iDirStack.Close(); iStorages.Close(); #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) @@ -129,10 +108,9 @@ } CleanupStack::PopAndDestroy( &storages ); // - storages } - else if ( aStorageId != KMTPNotSpecified32 ) + else if ( aStorageId != KMTPNotSpecified32 + && storageMgr.ValidStorageId( aStorageId ) ) { - __ASSERT_DEBUG( storageMgr.ValidStorageId( aStorageId ), User::Invariant() ); - const CMTPStorageMetaData& storage( storageMgr.StorageL( aStorageId ) ); if ( storage.Uint( CMTPStorageMetaData::EStorageSystemType ) @@ -157,15 +135,9 @@ } iStorageId = aStorageId; - - if ( iStorages.Count() > 0 ) - { - ScanStorageL( iStorages[0] ); - } - else - { - SignalCompleteL( iDataProvider ); - } + TRequestStatus* status = &iStatus; + User::RequestComplete( status, iStatus.Int() ); + SetActive(); PRINT( _L( "MM MTP <= CMediaMtpDataProviderEnumerator::StartL" ) ); } @@ -177,243 +149,38 @@ // void CMediaMtpDataProviderEnumerator::DoCancel() { - iDir.Close(); - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::ScanStorageL -// -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::ScanStorageL( TUint32 aStorageId ) - { - const CMTPStorageMetaData& storage( iFramework.StorageMgr().StorageL( aStorageId ) ); - - __ASSERT_DEBUG( ( storage.Uint( CMTPStorageMetaData::EStorageSystemType ) == CMTPStorageMetaData::ESystemTypeDefaultFileSystem ), - User::Invariant() ); - - TFileName root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); - PRINT2( _L("MM MTP <> CMediaMtpDataProviderEnumerator::ScanStorageL aStorageId = 0x%x, StorageSuid = %S"), aStorageId, &root ); - - iParentHandle = KMTPHandleNoParent; - iPath.Set( root, NULL, NULL); - iDir.Close(); - User::LeaveIfError( iDir.Open( iFramework.Fs(), - iPath.DriveAndPath(), - KEntryAttNormal | KEntryAttDir ) ); - ScanDirL(); - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::ScanNextStorageL -// -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::ScanNextStorageL() - { - // If there are one or more unscanned storages left - // (the currently scanned one is still on the list) - if ( iStorages.Count() > 1 ) - { - // Round trip suppport - const CMTPStorageMetaData& storage( iFramework.StorageMgr().StorageL( iStorages[0] ) ); - TFileName root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); - GetModifiedContentL( root ); - TRAPD( err, iDataProvider.GetWrapperL().UpdateMusicCollectionL() ); - if ( err != KErrNone ) - { - PRINT1( _L("MM MTP <> ScanNextStorageL, UpdateMusicCollectionL err =%d "), err ); - } - - iStorages.Remove( 0 ); - ScanStorageL( iStorages[0] ); - } - else - { - // Round trip suppport - const CMTPStorageMetaData& storage( iFramework.StorageMgr().StorageL( iStorages[0] ) ); - TFileName root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); - GetModifiedContentL( root ); - - // We are done - iStorages.Reset(); - - SignalCompleteL( iDataProvider ); - } - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::ScanDirL -// -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::ScanDirL() - { - PRINT( _L( "MM MTP => CMediaMtpDataProviderEnumerator::ScanDirL" ) ); - - StartEnumerationCount(); - - iFirstUnprocessed = 0; - - iScanningDir = ETrue; - PERFLOGSTART( KDirectoryScan ); - iDir.Read( iEntries, iStatus ); - SetActive(); - - PRINT( _L( "MM MTP <= CMediaMtpDataProviderEnumerator::ScanDirL" ) ); - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::ScanNextDirL -// Recurse into the next directory on the stack -// and scan it for entries. -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::ScanNextDirL() - { - TInt count = iDirStack.Count(); - - if ( count == 0 ) - { - // No more directories on the stack, try the next storage - ScanNextStorageL(); - } - else - { - TEntry* entry = iDirStack[count - 1]; - if ( entry != NULL ) - { - - // Empty TEntry, no more subdirectories in - // the current path - if ( entry->iName == KNullDesC ) - { - // Remove current dir from path - iPath.PopDir(); - iDirStack.Remove( count - 1 ); - delete entry; - entry = NULL; - iDir.Close(); - - // Scan the next directory of the parent - ScanNextDirL(); - } - // Going into a subdirectory of current - else - { - // Add directory to path - iPath.AddDir( entry->iName ); - // Remove directory so we don't think it's a subdirectory - iDirStack.Remove( count - 1 ); - delete entry; - entry = NULL; - ScanNextSubdirL(); - } - } - } - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::ScanNextSubdirL -// Scan next sub dir -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::ScanNextSubdirL() - { - PRINT( _L( "MM MTP => CMediaMtpDataProviderEnumerator::ScanNextSubdirL" ) ); - - // A empty (non-constructed) TEntry is our marker telling us to pop a directory - // from iPath when we see this - TEntry* entry = new TEntry( TEntry() ); - - User::LeaveIfNull( entry ); - - iDirStack.AppendL( entry ); - - // Leave with KErrNotFound if we don't find the object handle since it shouldn't be on the - // dirstack if the entry wasn't added - TPtrC suid = iPath.DriveAndPath().Left( iPath.DriveAndPath().Length() ); - // Update the current parenthandle with object of the directory - PERFLOGSTART( KObjectManagerObjectUid ); - iParentHandle = iFramework.ObjectMgr().HandleL( suid ); - PERFLOGSTOP( KObjectManagerObjectUid ); - PRINT1( _L( "MM MTP <> iParentHandle = 0x%x" ), iParentHandle ); - - // Kick-off a scan of the next directory - iDir.Close(); - - TInt err = iDir.Open( iFramework.Fs(), - iPath.DriveAndPath(), - KEntryAttNormal | KEntryAttDir ); - - PRINT1( _L( "MM MTP <> CMediaMtpDataProviderEnumerator::ScanNextSubdirL, RDir::Open err = %d" ), err ); - - if ( err == KErrNone ) - ScanDirL(); - else - { - iEntries = TEntryArray(); - - TRequestStatus* status = &iStatus; - User::RequestComplete( status, iStatus.Int() ); - SetActive(); - } - - - PRINT( _L( "MM MTP <= CMediaMtpDataProviderEnumerator::ScanNextSubdirL" ) ); } // ----------------------------------------------------------------------------- // CMediaMtpDataProviderEnumerator::RunL -// +// Update the mpx db flag for round trip // ----------------------------------------------------------------------------- // void CMediaMtpDataProviderEnumerator::RunL() { - if ( iScanningDir ) - { - PERFLOGSTOP( KDirectoryScan ); - } + PRINT1( _L( "MM MTP => CMediaMtpDataProviderEnumerator::RunL iStorages.Count() = %d" ), iStorages.Count() ); - iScanningDir = EFalse; - if ( iEntries.Count() == 0 ) + if ( iStorages.Count() > 0 ) { - // No entries to process, scan next dir or storage - ScanNextDirL(); - } - else if ( iFirstUnprocessed < iEntries.Count() ) - { - PRINT1( _L( "MM MTP <> CMediaMtpDataProviderEnumerator::RunL iFirstUnprocessed = %d" ), iFirstUnprocessed); - TRAPD( err, ProcessEntriesL();); + const CMTPStorageMetaData& storage( iFramework.StorageMgr().StorageL( iStorages[0] ) ); + TPtrC root( storage.DesC( CMTPStorageMetaData::EStorageSuid ) ); + GetModifiedContentL( root ); + TRAPD( err, iDataProvider.GetWrapperL().UpdateMusicCollectionL( root ) ); if ( err != KErrNone ) { - iFirstUnprocessed++; + PRINT1( _L("MM MTP <> CMediaMtpDataProviderEnumerator::RunL, UpdateMusicCollectionL err =%d "), err ); } - - // Complete ourselves with current TRequestStatus - // since we need to run again to either scan a new dir or drive - // or process more entries + iStorages.Remove( 0 ); TRequestStatus* status = &iStatus; User::RequestComplete( status, iStatus.Int() ); SetActive(); } else { - switch ( iStatus.Int() ) - { - case KErrNone: - // There are still entries left to be read - ScanDirL(); - break; - - case KErrEof: - // There are no more entries - default: - // Error, ignore and continue with next dir - ScanNextDirL(); - break; - } + iStorages.Reset(); + SignalCompleteL( iDataProvider ); } + PRINT( _L( "MM MTP <= CMediaMtpDataProviderEnumerator::RunL" ) ); } // ----------------------------------------------------------------------------- @@ -440,13 +207,6 @@ { CActiveScheduler::Add( this ); - TTimeIntervalMicroSeconds32 tickPeriod = 0; - TInt err = UserHal::TickPeriod(tickPeriod); - - PRINT1( _L( "MM MTP <> CMediaMtpDataProviderEnumerator::ConstructL, UserHal::TickPeriod err = %d" ), err); - User::LeaveIfError( err ); - iTickPeriod = tickPeriod.Int(); - #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) iPerfLog = CMmMtpDpPerfLog::NewL( _L( "MediaMtpDataProviderEnumerator" ) ); #endif @@ -465,159 +225,6 @@ } // ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::ProcessEntriesL -// Iterates iEntries adding entries as needed to object manager and iDirStack. -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::ProcessEntriesL() - { - PRINT( _L( "MM MTP => CMediaMtpDataProviderEnumerator::ProcessEntriesL" ) ); - - TFileName path = iPath.DriveAndPath(); - - while ( !IsOverThreshold() && iFirstUnprocessed < iEntries.Count() ) - { - const TEntry& entry = iEntries[iFirstUnprocessed]; - - TInt len = entry.iName.Length(); - - // Skip object with too long name - if ( KMaxFileName >= path.Length() + len ) - { - path.Append( entry.iName ); - PRINT1( _L( "MM MTP <> path = %S" ), &path ); - - if ( entry.IsDir() ) - { - path.Append( '\\' ); - ++len; - - // we don't need to process folder, just remember - // the folder - TEntry* dirEntry = new TEntry( entry ); - User::LeaveIfNull( dirEntry ); - iDirStack.AppendL( dirEntry ); - } - else if ( IsFileAccepted( path ) ) - { - AddEntryL( path ); - } - - // Remove filename part - path.SetLength( path.Length() - len ); - } - - iFirstUnprocessed++; - } - - StartEnumerationCount(); - PRINT( _L( "MM MTP <= CMediaMtpDataProviderEnumerator::ProcessEntriesL" ) ); - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::AddEntryL -// Add a file entry to the object store -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::AddEntryL( const TDesC& aFullFileName ) - { - PRINT1( _L( "MM MTP => CMediaDataProviderEnumerator::AddEntryL aFullFileName = %S" ), &aFullFileName ); - - CMTPObjectMetaData* object( CMTPObjectMetaData::NewLC( iDataProviderId, - iFormatCode, - iStorages[0], - aFullFileName ) ); // + object - - object->SetUint( CMTPObjectMetaData::EParentHandle, iParentHandle ); - - if ( ( iFormatCode == EMTPFormatCodeMP4Container ) - || ( iFormatCode == EMTPFormatCode3GPContainer ) - || ( iFormatCode == EMTPFormatCodeASF ) ) - { - TMmMtpSubFormatCode subFormatCode; - - // Note: Delay the file parsing until external enumeration phase to avoid time-out - subFormatCode = EMTPSubFormatCodeUnknown; - - object->SetUint( CMTPObjectMetaData::EFormatSubCode, (TUint)subFormatCode ); - } - - PERFLOGSTART( KObjectManagerInsert ); - iObjectMgr.InsertObjectL( *object ); - PERFLOGSTOP( KObjectManagerInsert ); - - CleanupStack::PopAndDestroy( object ); // - object - - PRINT1( _L( "MM MTP <= CMediaMtpDataProviderEnumerator::AddEntryL, entry inserted, iFormatCode = 0x%x" ), iFormatCode); - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::GetObjectFormatCode -// Returns a TMTPFormatCode for the requested object -// ----------------------------------------------------------------------------- -// -TMTPFormatCode CMediaMtpDataProviderEnumerator::GetObjectFormatCode( const TDesC& aFullFileName ) - { - PRINT1( _L("MM MTP <> CMediaMtpDataProviderEnumerator::GetObjectFormatCodeL aFullFileName = %S"), &aFullFileName ); - TMTPFormatCode formatCode = MmMtpDpUtility::FormatFromFilename( aFullFileName ); - return formatCode; - } - -// ----------------------------------------------------------------------------- -// CMediaMtpDataProviderEnumerator::IsFileAccepted -// Is the file format is supported by this Dp -// ----------------------------------------------------------------------------- -// -TBool CMediaMtpDataProviderEnumerator::IsFileAccepted( const TDesC& aFullFileName ) - { - PERFLOGSTART( KFormatFilter ); - iFormatCode = GetObjectFormatCode( aFullFileName ); - PRINT1( _L( "MM MTP <> CMediaMtpDataProviderEnumerator::IsFileAcceptedL formatCode = 0x%x" ), iFormatCode ); - TBool accepted = EFalse; - TInt count = sizeof( KMediaMtpDataProviderSupportedFormats ) / sizeof( TUint16 ); - for ( TInt i = 0; i < count; i++ ) - { - if ( iFormatCode == KMediaMtpDataProviderSupportedFormats[i] ) - { - accepted = ETrue; - break; - } - } - - PERFLOGSTOP( KFormatFilter ); - return accepted; - } - -// ----------------------------------------------------------------------------- -// CMediaDpMtpEnumerator::StartEnumerationCount -// start record system tick -// ----------------------------------------------------------------------------- -// -void CMediaMtpDataProviderEnumerator::StartEnumerationCount() - { - iTickCountBegin = User::TickCount(); - } - -// ----------------------------------------------------------------------------- -// CMediaDpMtpEnumerator::IsOverThreshold -// Is system tick more than the predefined value? -// ----------------------------------------------------------------------------- -// -TBool CMediaMtpDataProviderEnumerator::IsOverThreshold() - { - TUint tcNow = User::TickCount(); - - if ( ( tcNow - iTickCountBegin ) * iTickPeriod >= KThresholdOfEnumerationLoopDuration ) - { - return ETrue; - } - else - { - return EFalse; - } - } - -// ----------------------------------------------------------------------------- // CMediaDpMtpEnumerator::GetModifiedContentL() // Get Modified Content and report to Framework // ----------------------------------------------------------------------------- @@ -638,7 +245,6 @@ CMTPObjectMetaData* object = CMTPObjectMetaData::NewLC(); // + object for ( TInt i = 0; i < arrayCount; i++ ) { - if ( iFramework.ObjectMgr().ObjectL( ( *modifiedContents )[i], *object ) ) { object->SetUint( CMTPObjectMetaData::EObjectMetaDataUpdate , 1 ); @@ -661,7 +267,6 @@ // void CMediaMtpDataProviderEnumerator::SessionClosedL() { - iDataProvider.GetWrapperL().UpdateMusicCollectionL(); iDataProvider.GetWrapperL().CleanupDatabaseL(); } diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Thu Jul 22 16:38:21 2010 +0100 @@ -5,12 +5,12 @@ ?StartL@CRenameObject@@QAEXKABVTDesC16@@@Z @ 4 NONAME ; void CRenameObject::StartL(unsigned long, class TDesC16 const &) ??1CRequestUnknown@@UAE@XZ @ 5 NONAME ; CRequestUnknown::~CRequestUnknown(void) ?DeleteObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 6 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteObjectL(class CMTPObjectMetaData const &) - ?Release@CRequestProcessor@@MAEXXZ @ 7 NONAME ; void CRequestProcessor::Release(void) - ?HandleRequestL@CRequestProcessor@@MAEHABVTMTPTypeRequest@@W4TMTPTransactionPhase@@@Z @ 8 NONAME ; int CRequestProcessor::HandleRequestL(class TMTPTypeRequest const &, enum TMTPTransactionPhase) - ??1CGetInterdependentPropDesc@@UAE@XZ @ 9 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void) - ?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 10 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void) - ?ServiceL@CGetPartialObject@@MAEXXZ @ 11 NONAME ; void CGetPartialObject::ServiceL(void) - ??0CGetObjectInfo@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 12 NONAME ; CGetObjectInfo::CGetObjectInfo(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?UpdateMusicCollectionL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 7 NONAME ; void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL(class TDesC16 const &) + ?Release@CRequestProcessor@@MAEXXZ @ 8 NONAME ; void CRequestProcessor::Release(void) + ?HandleRequestL@CRequestProcessor@@MAEHABVTMTPTypeRequest@@W4TMTPTransactionPhase@@@Z @ 9 NONAME ; int CRequestProcessor::HandleRequestL(class TMTPTypeRequest const &, enum TMTPTransactionPhase) + ??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) ?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 &) @@ -24,137 +24,127 @@ ?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) - ?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXPAVCMPXMedia@@AAVCDesC16Array@@@Z @ 26 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMPXMedia *, class CDesC16Array &) - ??1CSetObjectPropList@@UAE@XZ @ 27 NONAME ; CSetObjectPropList::~CSetObjectPropList(void) - ?ServiceL@CSetObjectPropList@@MAEXXZ @ 28 NONAME ; void CSetObjectPropList::ServiceL(void) - ??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 29 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??0CRequestUnknown@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 30 NONAME ; CRequestUnknown::CRequestUnknown(class MMTPDataProviderFramework &, class MMTPConnection &) - ?ConstructL@CGetObjectPropList@@IAEXXZ @ 31 NONAME ; void CGetObjectPropList::ConstructL(void) - ??1CSendObject@@UAE@XZ @ 32 NONAME ; CSendObject::~CSendObject(void) - ?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 33 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) - ?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 34 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??1CGetObjectPropValue@@UAE@XZ @ 35 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void) - ?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 36 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &) - ??1CGetFormatCapabilities@@UAE@XZ @ 37 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void) - ?ServiceL@CSetObjectReferences@@EAEXXZ @ 38 NONAME ; void CSetObjectReferences::ServiceL(void) - ?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 39 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void) - ??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 40 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?ConstructL@CCopyObject@@IAEXXZ @ 41 NONAME ; void CCopyObject::ConstructL(void) - ?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 42 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &) - ?ServiceL@CGetObjectPropValue@@MAEXXZ @ 43 NONAME ; void CGetObjectPropValue::ServiceL(void) - ??1CRenameObject@@UAE@XZ @ 44 NONAME ; CRenameObject::~CRenameObject(void) - ?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 45 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const - ?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 46 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void) - ?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 47 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &) - ?RunL@CRenameObject@@MAEXXZ @ 48 NONAME ; void CRenameObject::RunL(void) - ??0CSetObjectReferences@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 49 NONAME ; CSetObjectReferences::CSetObjectReferences(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 50 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *) - ?ServiceL@CSendObject@@MAEXXZ @ 51 NONAME ; void CSendObject::ServiceL(void) - ?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 52 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const + ??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) - ?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 54 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void) - ?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 55 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &) - ??0CGetFormatCapabilities@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 56 NONAME ; CGetFormatCapabilities::CGetFormatCapabilities(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) - ?ConstructL@CGetObjectInfo@@AAEXXZ @ 57 NONAME ; void CGetObjectInfo::ConstructL(void) - ?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 58 NONAME ; void CRequestProcessor::UsbDisconnect(void) - ?UpdateMusicCollectionL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 59 NONAME ; void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL(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 &) + ?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 54 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &) + ?ConstructL@CGetObjectInfo@@AAEXXZ @ 55 NONAME ; void CGetObjectInfo::ConstructL(void) + ?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 56 NONAME ; void CRequestProcessor::UsbDisconnect(void) + ??1CMoveObject@@UAE@XZ @ 57 NONAME ; CMoveObject::~CMoveObject(void) + ?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 58 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void) + ??1CRequestProcessor@@MAE@XZ @ 59 NONAME ; CRequestProcessor::~CRequestProcessor(void) + ?DoCancel@CDeleteObject@@MAEXXZ @ 60 NONAME ; void CDeleteObject::DoCancel(void) + ??1CGetObject@@UAE@XZ @ 61 NONAME ; CGetObject::~CGetObject(void) + ?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 62 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 63 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &) + ?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 64 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void) + ?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 65 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void) + ??1CGetObjectPropsSupported@@UAE@XZ @ 66 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void) + ?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 67 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void) + ?HasDataphase@CRequestProcessor@@MBEHXZ @ 68 NONAME ; int CRequestProcessor::HasDataphase(void) const + ?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 69 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 70 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const + ??1CPropertySettingUtility@@UAE@XZ @ 71 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void) + ??1CGetPartialObject@@UAE@XZ @ 72 NONAME ; CGetPartialObject::~CGetPartialObject(void) + ?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 73 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?RunError@CSetObjectPropList@@MAEHH@Z @ 74 NONAME ; int CSetObjectPropList::RunError(int) + ?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 75 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void) + ?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 76 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const + ?ServiceL@CMoveObject@@MAEXXZ @ 77 NONAME ; void CMoveObject::ServiceL(void) + ?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 78 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &) + ?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 79 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void) + ?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 80 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void) + ?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 81 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) + ?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 82 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &) + ?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 83 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &) + ?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 84 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void) + ??0CPropertySettingUtility@@IAE@XZ @ 85 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void) + ?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 86 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const + ??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 87 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 88 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void) + ?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 89 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *) + ?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 90 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void) + ?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 91 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void) + ?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 92 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &) + ??1CGetObjectInfo@@UAE@XZ @ 93 NONAME ; CGetObjectInfo::~CGetObjectInfo(void) + ?ServiceL@CRequestUnknown@@MAEXXZ @ 94 NONAME ; void CRequestUnknown::ServiceL(void) + ?HasDataphase@CSetObjectPropList@@MBEHXZ @ 95 NONAME ; int CSetObjectPropList::HasDataphase(void) const + ?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 96 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?DoCancel@CRenameObject@@MAEXXZ @ 97 NONAME ; void CRenameObject::DoCancel(void) + ??1CSetObjectReferences@@UAE@XZ @ 98 NONAME ; CSetObjectReferences::~CSetObjectReferences(void) + ?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 99 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const + ?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ??1CCopyObject@@UAE@XZ @ 101 NONAME ; CCopyObject::~CCopyObject(void) + ?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 102 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &) + ?RunL@CGetObjectPropList@@MAEXXZ @ 103 NONAME ; void CGetObjectPropList::RunL(void) + ?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 104 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int) + ?RunError@CRequestProcessor@@MAEHH@Z @ 105 NONAME ; int CRequestProcessor::RunError(int) + ?SessionId@CRequestProcessor@@MAEKXZ @ 106 NONAME ; unsigned long CRequestProcessor::SessionId(void) + ??0CDescriptionUtility@@IAE@XZ @ 107 NONAME ; CDescriptionUtility::CDescriptionUtility(void) + ?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 108 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &) + ?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 109 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?HasDataphase@CSetObjectReferences@@EBEHXZ @ 110 NONAME ; int CSetObjectReferences::HasDataphase(void) const + ?RunError@CGetObjectPropList@@MAEHH@Z @ 111 NONAME ; int CGetObjectPropList::RunError(int) + ?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 112 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void) + ?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 113 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &) + ?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 114 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &) + ?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 115 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &) + ?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAVCDesC16Array@@W4TMPXGeneralCategory@@@Z @ 116 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CDesC16Array &, enum TMPXGeneralCategory) + ?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 117 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &) + ??1CGetObjectPropDesc@@UAE@XZ @ 118 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void) + ?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 119 NONAME ; void CGetObjectPropDesc::ServiceL(void) + ?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 120 NONAME ; int CSetObjectPropValue::HasDataphase(void) const + ?ServiceL@CCopyObject@@MAEXXZ @ 121 NONAME ; void CCopyObject::ServiceL(void) + ?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 122 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void) + ?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 123 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void) + ?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 125 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &) + ??1CDescriptionUtility@@UAE@XZ @ 126 NONAME ; CDescriptionUtility::~CDescriptionUtility(void) + ?ConstructL@CMoveObject@@IAEXXZ @ 127 NONAME ; void CMoveObject::ConstructL(void) + ?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 128 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ?RunL@CSetObjectPropList@@MAEXXZ @ 129 NONAME ; void CSetObjectPropList::RunL(void) + ??1CGetObjectReferences@@UAE@XZ @ 130 NONAME ; CGetObjectReferences::~CGetObjectReferences(void) + ?HasDataphase@CSendObject@@MBEHXZ @ 131 NONAME ; int CSendObject::HasDataphase(void) const + ??1CSetObjectPropValue@@UAE@XZ @ 132 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void) + ?ConstructL@CRenameObject@@IAEXXZ @ 133 NONAME ; void CRenameObject::ConstructL(void) + ?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 134 NONAME ; int CSendObject::DoHandleResponsePhaseL(void) + ?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 135 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &) + ?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 136 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &) + ?DoCancel@CGetObjectPropList@@MAEXXZ @ 137 NONAME ; void CGetObjectPropList::DoCancel(void) + ?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 138 NONAME ; void CGetInterdependentPropDesc::ServiceL(void) + ?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 139 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void) + ?ServiceL@CSetObjectPropValue@@MAEXXZ @ 140 NONAME ; void CSetObjectPropValue::ServiceL(void) + ?RunError@CRenameObject@@MAEHH@Z @ 141 NONAME ; int CRenameObject::RunError(int) + ??1CDeleteObject@@UAE@XZ @ 142 NONAME ; CDeleteObject::~CDeleteObject(void) + ?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 143 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void) + ??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 144 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &) + ??1CGetObjectPropList@@UAE@XZ @ 145 NONAME ; CGetObjectPropList::~CGetObjectPropList(void) + ?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 146 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void) + ??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 147 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &) + ?ServiceL@CGetObjectPropList@@MAEXXZ @ 148 NONAME ; void CGetObjectPropList::ServiceL(void) diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Thu Jul 22 16:38:21 2010 +0100 @@ -47,233 +47,219 @@ _ZN14CGetObjectInfoD0Ev @ 46 NONAME _ZN14CGetObjectInfoD1Ev @ 47 NONAME _ZN14CGetObjectInfoD2Ev @ 48 NONAME - _ZN14MmMtpDpUtility12GetDrmStatusERK7TDesC16 @ 49 NONAME - _ZN14MmMtpDpUtility18FormatFromFilenameERK7TDesC16 @ 50 NONAME - _ZN15CRequestUnknown4NewLER25MMTPDataProviderFrameworkR14MMTPConnection @ 51 NONAME - _ZN15CRequestUnknown8ServiceLEv @ 52 NONAME - _ZN15CRequestUnknownC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 53 NONAME - _ZN15CRequestUnknownC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 54 NONAME - _ZN15CRequestUnknownD0Ev @ 55 NONAME - _ZN15CRequestUnknownD1Ev @ 56 NONAME - _ZN15CRequestUnknownD2Ev @ 57 NONAME - _ZN17CGetPartialObject13CheckRequestLEv @ 58 NONAME - _ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 59 NONAME - _ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 60 NONAME - _ZN17CGetPartialObject8ServiceLEv @ 61 NONAME - _ZN17CGetPartialObjectC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 62 NONAME - _ZN17CGetPartialObjectC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 63 NONAME - _ZN17CGetPartialObjectD0Ev @ 64 NONAME - _ZN17CGetPartialObjectD1Ev @ 65 NONAME - _ZN17CGetPartialObjectD2Ev @ 66 NONAME - _ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 67 NONAME - _ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 68 NONAME - _ZN17CRequestProcessor13CheckRequestLEv @ 69 NONAME - _ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 70 NONAME - _ZN17CRequestProcessor13UsbDisconnectEv @ 71 NONAME - _ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 72 NONAME - _ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 73 NONAME - _ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 74 NONAME - _ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 75 NONAME - _ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 76 NONAME - _ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 77 NONAME - _ZN17CRequestProcessor4RunLEv @ 78 NONAME - _ZN17CRequestProcessor7ReleaseEv @ 79 NONAME - _ZN17CRequestProcessor8DoCancelEv @ 80 NONAME - _ZN17CRequestProcessor8RunErrorEi @ 81 NONAME - _ZN17CRequestProcessor9SendDataLERK8MMTPType @ 82 NONAME - _ZN17CRequestProcessor9SessionIdEv @ 83 NONAME - _ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 84 NONAME - _ZN17CRequestProcessorD0Ev @ 85 NONAME - _ZN17CRequestProcessorD1Ev @ 86 NONAME - _ZN17CRequestProcessorD2Ev @ 87 NONAME - _ZN18CGetObjectPropDesc10ConstructLEv @ 88 NONAME - _ZN18CGetObjectPropDesc13CheckRequestLEv @ 89 NONAME - _ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 90 NONAME - _ZN18CGetObjectPropDesc8ServiceLEv @ 91 NONAME - _ZN18CGetObjectPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 92 NONAME - _ZN18CGetObjectPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 93 NONAME - _ZN18CGetObjectPropDescD0Ev @ 94 NONAME - _ZN18CGetObjectPropDescD1Ev @ 95 NONAME - _ZN18CGetObjectPropDescD2Ev @ 96 NONAME - _ZN18CGetObjectPropList10ConstructLEv @ 97 NONAME - _ZN18CGetObjectPropList13CheckRequestLEv @ 98 NONAME - _ZN18CGetObjectPropList4RunLEv @ 99 NONAME - _ZN18CGetObjectPropList8DoCancelEv @ 100 NONAME - _ZN18CGetObjectPropList8RunErrorEi @ 101 NONAME - _ZN18CGetObjectPropList8ServiceLEv @ 102 NONAME - _ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 103 NONAME - _ZN18CGetObjectPropListD0Ev @ 104 NONAME - _ZN18CGetObjectPropListD1Ev @ 105 NONAME - _ZN18CGetObjectPropListD2Ev @ 106 NONAME - _ZN18CSetObjectPropList13CheckRequestLEv @ 107 NONAME - _ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 108 NONAME - _ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 109 NONAME - _ZN18CSetObjectPropList4RunLEv @ 110 NONAME - _ZN18CSetObjectPropList8DoCancelEv @ 111 NONAME - _ZN18CSetObjectPropList8RunErrorEi @ 112 NONAME - _ZN18CSetObjectPropList8ServiceLEv @ 113 NONAME - _ZN18CSetObjectPropListD0Ev @ 114 NONAME - _ZN18CSetObjectPropListD1Ev @ 115 NONAME - _ZN18CSetObjectPropListD2Ev @ 116 NONAME - _ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 117 NONAME - _ZN19CDescriptionUtilityC2Ev @ 118 NONAME - _ZN19CDescriptionUtilityD0Ev @ 119 NONAME - _ZN19CDescriptionUtilityD1Ev @ 120 NONAME - _ZN19CDescriptionUtilityD2Ev @ 121 NONAME - _ZN19CGetObjectPropValue13CheckRequestLEv @ 122 NONAME - _ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 123 NONAME - _ZN19CGetObjectPropValue8ServiceLEv @ 124 NONAME - _ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 125 NONAME - _ZN19CGetObjectPropValueD0Ev @ 126 NONAME - _ZN19CGetObjectPropValueD1Ev @ 127 NONAME - _ZN19CGetObjectPropValueD2Ev @ 128 NONAME - _ZN19CSetObjectPropValue13CheckRequestLEv @ 129 NONAME - _ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 130 NONAME - _ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 131 NONAME - _ZN19CSetObjectPropValue8ServiceLEv @ 132 NONAME - _ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 133 NONAME - _ZN19CSetObjectPropValueD0Ev @ 134 NONAME - _ZN19CSetObjectPropValueD1Ev @ 135 NONAME - _ZN19CSetObjectPropValueD2Ev @ 136 NONAME - _ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 137 NONAME - _ZN20CGetObjectReferencesD0Ev @ 138 NONAME - _ZN20CGetObjectReferencesD1Ev @ 139 NONAME - _ZN20CGetObjectReferencesD2Ev @ 140 NONAME - _ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 141 NONAME - _ZN20CSetObjectReferences22DoSetObjectReferencesLERK18CMTPObjectMetaData @ 142 NONAME - _ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 143 NONAME - _ZN20CSetObjectReferences8ServiceLEv @ 144 NONAME - _ZN20CSetObjectReferencesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 145 NONAME - _ZN20CSetObjectReferencesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 146 NONAME - _ZN20CSetObjectReferencesD0Ev @ 147 NONAME - _ZN20CSetObjectReferencesD1Ev @ 148 NONAME - _ZN20CSetObjectReferencesD2Ev @ 149 NONAME - _ZN22CGetFormatCapabilities10ConstructLEv @ 150 NONAME - _ZN22CGetFormatCapabilities13CheckRequestLEv @ 151 NONAME - _ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 152 NONAME - _ZN22CGetFormatCapabilities8ServiceLEv @ 153 NONAME - _ZN22CGetFormatCapabilitiesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 154 NONAME - _ZN22CGetFormatCapabilitiesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 155 NONAME - _ZN22CGetFormatCapabilitiesD0Ev @ 156 NONAME - _ZN22CGetFormatCapabilitiesD1Ev @ 157 NONAME - _ZN22CGetFormatCapabilitiesD2Ev @ 158 NONAME - _ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 159 NONAME - _ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 160 NONAME - _ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 161 NONAME - _ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 162 NONAME - _ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 163 NONAME - _ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 164 NONAME - _ZN23CPropertySettingUtilityC2Ev @ 165 NONAME - _ZN23CPropertySettingUtilityD0Ev @ 166 NONAME - _ZN23CPropertySettingUtilityD1Ev @ 167 NONAME - _ZN23CPropertySettingUtilityD2Ev @ 168 NONAME - _ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 169 NONAME - _ZN24CGetObjectPropsSupported8ServiceLEv @ 170 NONAME - _ZN24CGetObjectPropsSupportedD0Ev @ 171 NONAME - _ZN24CGetObjectPropsSupportedD1Ev @ 172 NONAME - _ZN24CGetObjectPropsSupportedD2Ev @ 173 NONAME - _ZN26CGetInterdependentPropDesc10ConstructLEv @ 174 NONAME - _ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 175 NONAME - _ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 176 NONAME - _ZN26CGetInterdependentPropDesc8ServiceLEv @ 177 NONAME - _ZN26CGetInterdependentPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 178 NONAME - _ZN26CGetInterdependentPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 179 NONAME - _ZN26CGetInterdependentPropDescD0Ev @ 180 NONAME - _ZN26CGetInterdependentPropDescD1Ev @ 181 NONAME - _ZN26CGetInterdependentPropDescD2Ev @ 182 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 183 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 184 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 185 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 186 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 187 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 188 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 189 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 190 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 191 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 192 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 193 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 194 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLEv @ 195 NONAME - _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 196 NONAME - _ZNK11CSendObject12HasDataphaseEv @ 197 NONAME - _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 198 NONAME - _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 199 NONAME - _ZNK17CRequestProcessor10ConnectionEv @ 200 NONAME - _ZNK17CRequestProcessor12HasDataphaseEv @ 201 NONAME - _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 202 NONAME - _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 203 NONAME - _ZNK17CRequestProcessor7RequestEv @ 204 NONAME - _ZNK18CSetObjectPropList12HasDataphaseEv @ 205 NONAME - _ZNK19CSetObjectPropValue12HasDataphaseEv @ 206 NONAME - _ZNK20CSetObjectReferences12HasDataphaseEv @ 207 NONAME - _ZTI10CGetObject @ 208 NONAME - _ZTI11CCopyObject @ 209 NONAME - _ZTI11CMoveObject @ 210 NONAME - _ZTI11CSendObject @ 211 NONAME - _ZTI13CDeleteObject @ 212 NONAME - _ZTI13CRenameObject @ 213 NONAME - _ZTI14CGetObjectInfo @ 214 NONAME - _ZTI15CRequestChecker @ 215 NONAME - _ZTI15CRequestUnknown @ 216 NONAME - _ZTI15TMTPTypeFlatBuf @ 217 NONAME - _ZTI17CGetPartialObject @ 218 NONAME - _ZTI17CRequestProcessor @ 219 NONAME - _ZTI18CGetObjectPropDesc @ 220 NONAME - _ZTI18CGetObjectPropList @ 221 NONAME - _ZTI18CHXMetaDataUtility @ 222 NONAME - _ZTI18CSetObjectPropList @ 223 NONAME - _ZTI19CDescriptionUtility @ 224 NONAME - _ZTI19CGetObjectPropValue @ 225 NONAME - _ZTI19CSetObjectPropValue @ 226 NONAME - _ZTI20CGetObjectReferences @ 227 NONAME - _ZTI20CSetObjectReferences @ 228 NONAME - _ZTI22CGetFormatCapabilities @ 229 NONAME - _ZTI23CMmMtpDpAccessSingleton @ 230 NONAME - _ZTI23CPropertySettingUtility @ 231 NONAME - _ZTI24CGetObjectPropsSupported @ 232 NONAME - _ZTI25CMmMtpDpMetadataMpxAccess @ 233 NONAME - _ZTI26CGetInterdependentPropDesc @ 234 NONAME - _ZTI27CMmMtpDpMetadataVideoAccess @ 235 NONAME - _ZTI29CMmMtpDpMetadataAccessWrapper @ 236 NONAME - _ZTV10CGetObject @ 237 NONAME - _ZTV11CCopyObject @ 238 NONAME - _ZTV11CMoveObject @ 239 NONAME - _ZTV11CSendObject @ 240 NONAME - _ZTV13CDeleteObject @ 241 NONAME - _ZTV13CRenameObject @ 242 NONAME - _ZTV14CGetObjectInfo @ 243 NONAME - _ZTV15CRequestChecker @ 244 NONAME - _ZTV15CRequestUnknown @ 245 NONAME - _ZTV15TMTPTypeFlatBuf @ 246 NONAME - _ZTV17CGetPartialObject @ 247 NONAME - _ZTV17CRequestProcessor @ 248 NONAME - _ZTV18CGetObjectPropDesc @ 249 NONAME - _ZTV18CGetObjectPropList @ 250 NONAME - _ZTV18CHXMetaDataUtility @ 251 NONAME - _ZTV18CSetObjectPropList @ 252 NONAME - _ZTV19CDescriptionUtility @ 253 NONAME - _ZTV19CGetObjectPropValue @ 254 NONAME - _ZTV19CSetObjectPropValue @ 255 NONAME - _ZTV20CGetObjectReferences @ 256 NONAME - _ZTV20CSetObjectReferences @ 257 NONAME - _ZTV22CGetFormatCapabilities @ 258 NONAME - _ZTV23CMmMtpDpAccessSingleton @ 259 NONAME - _ZTV23CPropertySettingUtility @ 260 NONAME - _ZTV24CGetObjectPropsSupported @ 261 NONAME - _ZTV25CMmMtpDpMetadataMpxAccess @ 262 NONAME - _ZTV26CGetInterdependentPropDesc @ 263 NONAME - _ZTV27CMmMtpDpMetadataVideoAccess @ 264 NONAME - _ZTV29CMmMtpDpMetadataAccessWrapper @ 265 NONAME - _ZThn28_N11CSendObject13UsbDisconnectEv @ 266 NONAME - _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 267 NONAME - _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 268 NONAME - _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 269 NONAME - _ZThn28_N17CRequestProcessor7ReleaseEv @ 270 NONAME - _ZThn28_N17CRequestProcessor9SessionIdEv @ 271 NONAME - _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 272 NONAME - _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 273 NONAME - _ZThn28_NK17CRequestProcessor10ConnectionEv @ 274 NONAME - _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 275 NONAME - _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME - _ZThn28_NK17CRequestProcessor7RequestEv @ 277 NONAME + _ZN14MmMtpDpUtility11SetPSStatusE12TMtpPSStatus @ 49 NONAME + _ZN14MmMtpDpUtility12GetDrmStatusERK7TDesC16 @ 50 NONAME + _ZN14MmMtpDpUtility18FormatFromFilenameERK7TDesC16 @ 51 NONAME + _ZN15CRequestUnknown4NewLER25MMTPDataProviderFrameworkR14MMTPConnection @ 52 NONAME + _ZN15CRequestUnknown8ServiceLEv @ 53 NONAME + _ZN15CRequestUnknownD0Ev @ 54 NONAME + _ZN15CRequestUnknownD1Ev @ 55 NONAME + _ZN15CRequestUnknownD2Ev @ 56 NONAME + _ZN17CGetPartialObject13CheckRequestLEv @ 57 NONAME + _ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 58 NONAME + _ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 59 NONAME + _ZN17CGetPartialObject8ServiceLEv @ 60 NONAME + _ZN17CGetPartialObjectD0Ev @ 61 NONAME + _ZN17CGetPartialObjectD1Ev @ 62 NONAME + _ZN17CGetPartialObjectD2Ev @ 63 NONAME + _ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 64 NONAME + _ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 65 NONAME + _ZN17CRequestProcessor13CheckRequestLEv @ 66 NONAME + _ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 67 NONAME + _ZN17CRequestProcessor13UsbDisconnectEv @ 68 NONAME + _ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 69 NONAME + _ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 70 NONAME + _ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 71 NONAME + _ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 72 NONAME + _ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 73 NONAME + _ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 74 NONAME + _ZN17CRequestProcessor4RunLEv @ 75 NONAME + _ZN17CRequestProcessor7ReleaseEv @ 76 NONAME + _ZN17CRequestProcessor8DoCancelEv @ 77 NONAME + _ZN17CRequestProcessor8RunErrorEi @ 78 NONAME + _ZN17CRequestProcessor9SendDataLERK8MMTPType @ 79 NONAME + _ZN17CRequestProcessor9SessionIdEv @ 80 NONAME + _ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 81 NONAME + _ZN17CRequestProcessorD0Ev @ 82 NONAME + _ZN17CRequestProcessorD1Ev @ 83 NONAME + _ZN17CRequestProcessorD2Ev @ 84 NONAME + _ZN18CGetObjectPropDesc13CheckRequestLEv @ 85 NONAME + _ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 86 NONAME + _ZN18CGetObjectPropDesc8ServiceLEv @ 87 NONAME + _ZN18CGetObjectPropDescD0Ev @ 88 NONAME + _ZN18CGetObjectPropDescD1Ev @ 89 NONAME + _ZN18CGetObjectPropDescD2Ev @ 90 NONAME + _ZN18CGetObjectPropList10ConstructLEv @ 91 NONAME + _ZN18CGetObjectPropList13CheckRequestLEv @ 92 NONAME + _ZN18CGetObjectPropList4RunLEv @ 93 NONAME + _ZN18CGetObjectPropList8DoCancelEv @ 94 NONAME + _ZN18CGetObjectPropList8RunErrorEi @ 95 NONAME + _ZN18CGetObjectPropList8ServiceLEv @ 96 NONAME + _ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 97 NONAME + _ZN18CGetObjectPropListD0Ev @ 98 NONAME + _ZN18CGetObjectPropListD1Ev @ 99 NONAME + _ZN18CGetObjectPropListD2Ev @ 100 NONAME + _ZN18CSetObjectPropList13CheckRequestLEv @ 101 NONAME + _ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 102 NONAME + _ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 103 NONAME + _ZN18CSetObjectPropList4RunLEv @ 104 NONAME + _ZN18CSetObjectPropList8DoCancelEv @ 105 NONAME + _ZN18CSetObjectPropList8RunErrorEi @ 106 NONAME + _ZN18CSetObjectPropList8ServiceLEv @ 107 NONAME + _ZN18CSetObjectPropListD0Ev @ 108 NONAME + _ZN18CSetObjectPropListD1Ev @ 109 NONAME + _ZN18CSetObjectPropListD2Ev @ 110 NONAME + _ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 111 NONAME + _ZN19CDescriptionUtilityC2Ev @ 112 NONAME + _ZN19CDescriptionUtilityD0Ev @ 113 NONAME + _ZN19CDescriptionUtilityD1Ev @ 114 NONAME + _ZN19CDescriptionUtilityD2Ev @ 115 NONAME + _ZN19CGetObjectPropValue13CheckRequestLEv @ 116 NONAME + _ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 117 NONAME + _ZN19CGetObjectPropValue8ServiceLEv @ 118 NONAME + _ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 119 NONAME + _ZN19CGetObjectPropValueD0Ev @ 120 NONAME + _ZN19CGetObjectPropValueD1Ev @ 121 NONAME + _ZN19CGetObjectPropValueD2Ev @ 122 NONAME + _ZN19CSetObjectPropValue13CheckRequestLEv @ 123 NONAME + _ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 124 NONAME + _ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 125 NONAME + _ZN19CSetObjectPropValue8ServiceLEv @ 126 NONAME + _ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 127 NONAME + _ZN19CSetObjectPropValueD0Ev @ 128 NONAME + _ZN19CSetObjectPropValueD1Ev @ 129 NONAME + _ZN19CSetObjectPropValueD2Ev @ 130 NONAME + _ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 131 NONAME + _ZN20CGetObjectReferencesD0Ev @ 132 NONAME + _ZN20CGetObjectReferencesD1Ev @ 133 NONAME + _ZN20CGetObjectReferencesD2Ev @ 134 NONAME + _ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 135 NONAME + _ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 136 NONAME + _ZN20CSetObjectReferences8ServiceLEv @ 137 NONAME + _ZN20CSetObjectReferencesD0Ev @ 138 NONAME + _ZN20CSetObjectReferencesD1Ev @ 139 NONAME + _ZN20CSetObjectReferencesD2Ev @ 140 NONAME + _ZN22CGetFormatCapabilities13CheckRequestLEv @ 141 NONAME + _ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 142 NONAME + _ZN22CGetFormatCapabilities8ServiceLEv @ 143 NONAME + _ZN22CGetFormatCapabilitiesD0Ev @ 144 NONAME + _ZN22CGetFormatCapabilitiesD1Ev @ 145 NONAME + _ZN22CGetFormatCapabilitiesD2Ev @ 146 NONAME + _ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 147 NONAME + _ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 148 NONAME + _ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 149 NONAME + _ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 150 NONAME + _ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 151 NONAME + _ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 152 NONAME + _ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 153 NONAME + _ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 154 NONAME + _ZN23CPropertySettingUtilityC2Ev @ 155 NONAME + _ZN23CPropertySettingUtilityD0Ev @ 156 NONAME + _ZN23CPropertySettingUtilityD1Ev @ 157 NONAME + _ZN23CPropertySettingUtilityD2Ev @ 158 NONAME + _ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 159 NONAME + _ZN24CGetObjectPropsSupported8ServiceLEv @ 160 NONAME + _ZN24CGetObjectPropsSupportedD0Ev @ 161 NONAME + _ZN24CGetObjectPropsSupportedD1Ev @ 162 NONAME + _ZN24CGetObjectPropsSupportedD2Ev @ 163 NONAME + _ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 164 NONAME + _ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 165 NONAME + _ZN26CGetInterdependentPropDesc8ServiceLEv @ 166 NONAME + _ZN26CGetInterdependentPropDescD0Ev @ 167 NONAME + _ZN26CGetInterdependentPropDescD1Ev @ 168 NONAME + _ZN26CGetInterdependentPropDescD2Ev @ 169 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 170 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 171 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 172 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 173 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 174 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 175 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 176 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 177 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 178 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 179 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16R12CDesC16Array19TMPXGeneralCategory @ 180 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 181 NONAME + _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 182 NONAME + _ZNK11CSendObject12HasDataphaseEv @ 183 NONAME + _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 184 NONAME + _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 185 NONAME + _ZNK17CRequestProcessor10ConnectionEv @ 186 NONAME + _ZNK17CRequestProcessor12HasDataphaseEv @ 187 NONAME + _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 188 NONAME + _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 189 NONAME + _ZNK17CRequestProcessor7RequestEv @ 190 NONAME + _ZNK18CSetObjectPropList12HasDataphaseEv @ 191 NONAME + _ZNK19CSetObjectPropValue12HasDataphaseEv @ 192 NONAME + _ZNK20CSetObjectReferences12HasDataphaseEv @ 193 NONAME + _ZTI10CGetObject @ 194 NONAME + _ZTI11CCopyObject @ 195 NONAME + _ZTI11CMoveObject @ 196 NONAME + _ZTI11CSendObject @ 197 NONAME + _ZTI13CDeleteObject @ 198 NONAME + _ZTI13CRenameObject @ 199 NONAME + _ZTI14CGetObjectInfo @ 200 NONAME + _ZTI15CRequestChecker @ 201 NONAME + _ZTI15CRequestUnknown @ 202 NONAME + _ZTI15TMTPTypeFlatBuf @ 203 NONAME + _ZTI17CGetPartialObject @ 204 NONAME + _ZTI17CRequestProcessor @ 205 NONAME + _ZTI18CGetObjectPropDesc @ 206 NONAME + _ZTI18CGetObjectPropList @ 207 NONAME + _ZTI18CHXMetaDataUtility @ 208 NONAME + _ZTI18CSetObjectPropList @ 209 NONAME + _ZTI19CDescriptionUtility @ 210 NONAME + _ZTI19CGetObjectPropValue @ 211 NONAME + _ZTI19CSetObjectPropValue @ 212 NONAME + _ZTI20CGetObjectReferences @ 213 NONAME + _ZTI20CSetObjectReferences @ 214 NONAME + _ZTI22CGetFormatCapabilities @ 215 NONAME + _ZTI23CMmMtpDpAccessSingleton @ 216 NONAME + _ZTI23CPropertySettingUtility @ 217 NONAME + _ZTI24CGetObjectPropsSupported @ 218 NONAME + _ZTI25CMmMtpDpMetadataMpxAccess @ 219 NONAME + _ZTI26CGetInterdependentPropDesc @ 220 NONAME + _ZTI27CMmMtpDpMetadataVideoAccess @ 221 NONAME + _ZTI29CMmMtpDpMetadataAccessWrapper @ 222 NONAME + _ZTV10CGetObject @ 223 NONAME + _ZTV11CCopyObject @ 224 NONAME + _ZTV11CMoveObject @ 225 NONAME + _ZTV11CSendObject @ 226 NONAME + _ZTV13CDeleteObject @ 227 NONAME + _ZTV13CRenameObject @ 228 NONAME + _ZTV14CGetObjectInfo @ 229 NONAME + _ZTV15CRequestChecker @ 230 NONAME + _ZTV15CRequestUnknown @ 231 NONAME + _ZTV15TMTPTypeFlatBuf @ 232 NONAME + _ZTV17CGetPartialObject @ 233 NONAME + _ZTV17CRequestProcessor @ 234 NONAME + _ZTV18CGetObjectPropDesc @ 235 NONAME + _ZTV18CGetObjectPropList @ 236 NONAME + _ZTV18CHXMetaDataUtility @ 237 NONAME + _ZTV18CSetObjectPropList @ 238 NONAME + _ZTV19CDescriptionUtility @ 239 NONAME + _ZTV19CGetObjectPropValue @ 240 NONAME + _ZTV19CSetObjectPropValue @ 241 NONAME + _ZTV20CGetObjectReferences @ 242 NONAME + _ZTV20CSetObjectReferences @ 243 NONAME + _ZTV22CGetFormatCapabilities @ 244 NONAME + _ZTV23CMmMtpDpAccessSingleton @ 245 NONAME + _ZTV23CPropertySettingUtility @ 246 NONAME + _ZTV24CGetObjectPropsSupported @ 247 NONAME + _ZTV25CMmMtpDpMetadataMpxAccess @ 248 NONAME + _ZTV26CGetInterdependentPropDesc @ 249 NONAME + _ZTV27CMmMtpDpMetadataVideoAccess @ 250 NONAME + _ZTV29CMmMtpDpMetadataAccessWrapper @ 251 NONAME + _ZThn28_N11CSendObject13UsbDisconnectEv @ 252 NONAME + _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 253 NONAME + _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 254 NONAME + _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 255 NONAME + _ZThn28_N17CRequestProcessor7ReleaseEv @ 256 NONAME + _ZThn28_N17CRequestProcessor9SessionIdEv @ 257 NONAME + _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 258 NONAME + _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 259 NONAME + _ZThn28_NK17CRequestProcessor10ConnectionEv @ 260 NONAME + _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 261 NONAME + _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 262 NONAME + _ZThn28_NK17CRequestProcessor7RequestEv @ 263 NONAME diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h Thu Jul 22 16:38:21 2010 +0100 @@ -55,7 +55,7 @@ * @param aConnection The connection from which the request comes * @param aWrapper medadata access interface */ - IMPORT_C CDeleteObject( MMTPDataProviderFramework& aFramework, + CDeleteObject( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectinfo.h Thu Jul 22 16:38:21 2010 +0100 @@ -61,7 +61,7 @@ * @param aConnection The connection from which the request comes * @param aWrapper medadata access interface */ - IMPORT_C CGetObjectInfo( MMTPDataProviderFramework& aFramework, + CGetObjectInfo( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetobjectreferences.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,6 +20,7 @@ #define CGETOBJECTREFERENCES_H #include "crequestprocessor.h" +#include "cmmmtpdpperflog.h" // forward declaration class CMTPTypeArray; @@ -62,16 +63,31 @@ * @param aWrapper Medadata access interface */ CGetObjectReferences( MMTPDataProviderFramework& aFramework, - MMTPConnection& aConnection ); + MMTPConnection& aConnection, + MMmMtpDpConfig& aDpConfig ); /** * Two-phase construction */ void ConstructL(); + /** + * Add references of specified object into reference db, + * for the insertion delayed until the first time it was queried by pc + * @param aRefOwnerSuid, specify the reference owner of which references should be added into db + * @param aReferences, suid array which stored references + */ + void AddReferencesL( const TDesC& aRefOwnerSuid, + CDesCArray& aReferences ); + private: // Array object to store object references CMTPTypeArray* iReferences; + MMmMtpDpConfig& iDpConfig; + +#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) + CMmMtpDpPerfLog* iPerfLog; +#endif }; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cgetpartialobject.h Thu Jul 22 16:38:21 2010 +0100 @@ -53,7 +53,7 @@ * @param aFramework The data provider framework * @param aConnection The connection from which the request comes */ - IMPORT_C CGetPartialObject( MMTPDataProviderFramework& aFramework, + CGetPartialObject( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ); protected: diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h Thu Jul 22 16:38:21 2010 +0100 @@ -311,7 +311,6 @@ /** * Set P&S Status to avoid MPX access conflict */ - void SetPSStatus(); private: /** diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestunknown.h Thu Jul 22 16:38:21 2010 +0100 @@ -45,7 +45,7 @@ /** * Standard c++ constructor */ - IMPORT_C CRequestUnknown( MMTPDataProviderFramework& aFramework, + CRequestUnknown( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ); protected: diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csendobject.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csendobject.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csendobject.h Thu Jul 22 16:38:21 2010 +0100 @@ -187,12 +187,6 @@ TBool IsTooLarge( TUint64 aObjectSize ) const; /** - * Check if we can store the file on the storage - * @return ETrue if yes, otherwise EFalse - */ - TBool CanStoreFileL( TUint32 aStorageId, TInt64 aObjectSize ) const; - - /** * Get the full path name of the object to be saved * @param aFileName, on entry, contains the file name of the object, * on return, contains the full path name of the object to be saved @@ -208,7 +202,7 @@ /** * Reserve object information before SendObject */ - void ReserveObjectL(); + TInt ReserveObjectL(); /** * Set protection status of object which could be read/write-only @@ -227,10 +221,13 @@ void AddMediaToStoreL(); /** - * delete the file, which transfer incompletely + * Rollback functions */ void Rollback(); + void UnreserveObjectL(); + void RemoveObjectFromDbL(); + void RemoveObjectFromFs(); private: enum TMTPSendingObjectState @@ -244,6 +241,8 @@ ESendObjectFail }; + typedef void ( CSendObject::*TMmMtpRollbackAction )(); + private: RFs& iFs; MMTPObjectMgr& iObjectMgr; @@ -282,7 +281,7 @@ // params which is needed for reserve handle TMTPTypeRequest iExpectedSendObjectRequest; - TBool iNoRollback; + RArray iRollbackList; TUint32 iPreviousTransactionID; TUint32 iPreviousOperation; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csetobjectreferences.h Thu Jul 22 16:38:21 2010 +0100 @@ -57,7 +57,7 @@ * @param aConnection The connection from which the request comes * @param aWrapper medadata access interface */ - IMPORT_C CSetObjectReferences( MMTPDataProviderFramework& aFramework, + CSetObjectReferences( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -107,10 +107,6 @@ EXPORT_C void CCopyObject::ConstructL() { iPropertyList = CMTPTypeObjectPropList::NewL(); - - // Set the CenRep value of MTP status, - // also need to do in other processors which related to MPX - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -122,6 +118,7 @@ { PRINT( _L( "MM MTP => CCopyObject::ServiceL" ) ); + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); CopyObjectL(); PRINT( _L( "MM MTP <= CCopyObject::ServiceL" ) ); @@ -453,7 +450,6 @@ case EMTPObjectPropCodeNonConsumable: iTargetObject->SetUint( CMTPObjectMetaData::ENonConsumable, element.Uint8L( CMTPTypeObjectPropListElement::EValue ) ); - // TODO: need to reconsider, // should wait all property setting finished then insert object, or not? // need to investigate if it will affect performance result iFramework.ObjectMgr().ModifyObjectL( *iTargetObject ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -64,7 +64,6 @@ void CDeleteObject::ConstructL() { CActiveScheduler::Add( this ); - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -104,6 +103,8 @@ // EXPORT_C void CDeleteObject::ServiceL() { + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); + iObjectsToDelete.Reset(); iDeleteError = KErrNone; TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); @@ -125,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 ) @@ -191,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 ) { @@ -221,11 +222,9 @@ // 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 ); - iDpConfig.GetWrapperL().SetStorageRootL( fileName ); - // To capture special situation: After copy, move, rename playlist folder name, // record in MPX is not inlined with framework db, playlist should not be deleted // until next session. diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdescriptionutility.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -134,7 +134,7 @@ TUint32 CDescriptionUtility::GetGroupCode( TUint32 aPropCode ) { TInt count = sizeof( KPropGroupMapTable ) / sizeof( KPropGroupMapTable[0] ); - // TODO: if need to refine the search approach to improve performance + for( TInt i = 0; i < count; i++ ) { if ( aPropCode == KPropGroupMapTable[i].iPropCode ) diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetformatcapabilities.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -46,7 +46,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetFormatCapabilities::CGetFormatCapabilities( MMTPDataProviderFramework& aFramework, +CGetFormatCapabilities::CGetFormatCapabilities( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, aConnection, 0, NULL ), @@ -60,7 +60,7 @@ // The second phase constructor // ----------------------------------------------------------------------------- // -EXPORT_C void CGetFormatCapabilities::ConstructL() +void CGetFormatCapabilities::ConstructL() { // Do nothing } diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetinterdependentpropdesc.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -56,7 +56,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetInterdependentPropDesc::CGetInterdependentPropDesc( MMTPDataProviderFramework& aFramework, +CGetInterdependentPropDesc::CGetInterdependentPropDesc( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, aConnection, 0, NULL ), @@ -70,7 +70,7 @@ // Two-phase construction method // ----------------------------------------------------------------------------- // -EXPORT_C void CGetInterdependentPropDesc::ConstructL() +void CGetInterdependentPropDesc::ConstructL() { // Do nothing } diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -19,6 +19,7 @@ #include #include "cgetobject.h" +#include "mmmtpdputility.h" #include "mmmtpdplogger.h" // ----------------------------------------------------------------------------- @@ -60,7 +61,6 @@ // void CGetObject::ConstructL() { - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -99,6 +99,8 @@ void CGetObject::ServiceL() { PRINT( _L( "MM MTP => CGetObject::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); // Get the objectinfo TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -96,8 +96,6 @@ EXPORT_C void CGetObjectInfo::ConstructL() { CActiveScheduler::Add( this ); - - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -108,6 +106,8 @@ void CGetObjectInfo::ServiceL() { PRINT( _L( "MM MTP => CGetObjectInfo::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); delete iObjectInfo; iObjectInfo = NULL; diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropdesc.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -57,7 +57,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetObjectPropDesc::CGetObjectPropDesc( MMTPDataProviderFramework& aFramework, +CGetObjectPropDesc::CGetObjectPropDesc( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, aConnection, 0, NULL ), @@ -72,7 +72,7 @@ // The second phase constructor // ----------------------------------------------------------------------------- // -EXPORT_C void CGetObjectPropDesc::ConstructL() +void CGetObjectPropDesc::ConstructL() { // Do nothing } diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -98,8 +98,6 @@ iPropertyList = CMTPTypeObjectPropList::NewL(); - SetPSStatus(); - #if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) iPerfLog = CMmMtpDpPerfLog::NewL( _L( "MediaMtpDataProviderEnumerator" ) ); #endif @@ -143,6 +141,8 @@ // EXPORT_C void CGetObjectPropList::ServiceL() { + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + GetObjectHandlesL(); TInt numOfObjects = iHandles.Count(); PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceL, numOfObjects = %d, iPropCode = 0x%x" ), @@ -354,8 +354,6 @@ else { CMTPObjectMetaData* meta( iRequestChecker->GetObjectInfo( iHandle ) ); - TPtrC suid( meta->DesC( CMTPObjectMetaData::ESuid ) ); - iDpConfig.GetWrapperL().SetStorageRootL( suid ); __ASSERT_DEBUG( meta, Panic( EMmMTPDpObjectNull ) ); @@ -488,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" ), @@ -536,7 +534,7 @@ { PRINT1( _L( "MM MTP => CGetObjectPropList::ServiceGroupPropertiesL aHandle = 0x%x" ), aHandle ); - TFileName fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) ); + TPtrC fileName( iObject->DesC( CMTPObjectMetaData::ESuid ) ); TUint32 formatCode = iObject->Uint( CMTPObjectMetaData::EFormatCode ); PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceGroupPropertiesL, fileName = %S, formatCode = 0x%x" ), diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -70,7 +70,6 @@ KMTPGetObjectPropValuePolicy ), iDpConfig( aDpConfig ) { - SetPSStatus(); PRINT( _L( "Operation: GetObjectPropValue(0x9803)" ) ); } @@ -96,10 +95,13 @@ return EMTPRespCodeInvalidObjectHandle; } - TFileName fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid ); TUint32 formatCode = objectInfo->Uint( CMTPObjectMetaData::EFormatCode ); - PRINT3( _L( "MM MTP <> CGetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ), objectHandle, &fileName, formatCode); + PRINT3( _L( "MM MTP <> CGetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ), + objectHandle, + &( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ), + formatCode ); + const RArray* properties = iDpConfig.GetSupportedPropertiesL( formatCode ); TInt count = properties->Count(); @@ -130,6 +132,8 @@ EXPORT_C void CGetObjectPropValue::ServiceL() { PRINT( _L( "MM MTP => CGetObjectPropValue::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); //Get the request information TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); @@ -141,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 ) { @@ -176,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; @@ -186,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; @@ -195,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 ); } @@ -237,9 +234,7 @@ case EMTPObjectPropCodeDateModified: { TBuf timeStr; - MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(), - iObjectInfo->DesC( CMTPObjectMetaData::ESuid ), - timeStr ); + MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(), suid, timeStr ); PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL Date time %S" ), &timeStr ); iMTPTypeString = CMTPTypeString::NewL( timeStr ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -18,13 +18,26 @@ #include #include +#include #ifdef _DEBUG -#include #include #endif #include "cgetobjectreferences.h" +#include "mmmtpdputility.h" #include "mmmtpdplogger.h" +#include "cmmmtpdpperflog.h" +#include "mmmtpdpconfig.h" +#include "cmmmtpdpmetadataaccesswrapper.h" +#include "tmmmtpdppanic.h" + +const TInt KMTPDriveGranularity = 5; + +#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG) +_LIT( KMpxQueryAbstractMediaReference, "MpxQueryAbstractMediaReference" ); +_LIT( KReferenceManagerSetReference, "ReferenceManagerSetReference" ); +_LIT( KObjectManagerHandle, "ObjectManagerHandle" ); +#endif // ----------------------------------------------------------------------------- // Verification data for the GetReferences request @@ -49,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 ); @@ -67,7 +81,9 @@ // void CGetObjectReferences::ConstructL() { - SetPSStatus(); +#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)" ) ); } @@ -103,13 +125,45 @@ void CGetObjectReferences::ServiceL() { PRINT( _L( "MM MTP => CGetObjectReferences::ServiceL" ) ); + + 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 ); @@ -138,4 +192,44 @@ PRINT( _L( "MM MTP <= CGetObjectReferences::ServiceL" ) ); } +// ----------------------------------------------------------------------------- +// CGetObjectReferences::AddReferencesL +// GetObjectInfo request handler +// ----------------------------------------------------------------------------- +// +void CGetObjectReferences::AddReferencesL( const TDesC& aRefOwnerSuid, + CDesCArray& aReferences ) + { + TInt count = aReferences.Count(); + PRINT2( _L("MM MTP => CGetObjectReferences::AddReferencesL aRefOwnerSuid = %S, ref count = %d"), &aRefOwnerSuid, count ); + + // check if references are valid + TInt removeCount = 0; + for ( TInt i = 0; i < count; i++ ) + { + TInt index = i - removeCount; + TPtrC temp( aReferences[index] ); + PRINT2( _L( "MM MTP <> CGetObjectReferences::AddReferencesL ref[%d]'s name = %S" ), index, &temp ); + PERFLOGSTART( KObjectManagerHandle ); + TUint32 handle = iFramework.ObjectMgr().HandleL( temp ); + PERFLOGSTOP( KObjectManagerHandle ); + if ( handle == KMTPHandleNone ) // object doesn't exist + { + PRINT1( _L( "MM MTP <> CGetObjectReferences::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp ); + + // if handle is invalid, remove from reference array + aReferences.Delete( index, 1 ); + removeCount++; + } + } + + // add all references into references db + MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr(); + PERFLOGSTART( KReferenceManagerSetReference ); + referenceMgr.SetReferencesL( aRefOwnerSuid, aReferences ); + PERFLOGSTOP( KReferenceManagerSetReference ); + + PRINT( _L( "MM MTP <= CGetObjectReferences::AddReferencesL" ) ); + } + // end of file diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -19,6 +19,7 @@ #include #include "cgetpartialobject.h" +#include "mmmtpdputility.h" #include "mmmtpdplogger.h" #include "tmmmtpdppanic.h" #include "mmmtpdpconfig.h" @@ -62,7 +63,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CGetPartialObject::CGetPartialObject( MMTPDataProviderFramework& aFramework, +CGetPartialObject::CGetPartialObject( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ) : CRequestProcessor( aFramework, aConnection, @@ -80,7 +81,6 @@ // void CGetPartialObject::ConstructL() { - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -147,17 +147,17 @@ EXPORT_C void CGetPartialObject::ServiceL() { PRINT( _L( "MM MTP => CGetPartialObject::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); // Get file information CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( iObjectHandle ); __ASSERT_DEBUG( objectInfo, Panic( EMmMTPDpObjectNull ) ); - // NOTE: Change all TBuf into TFileName for easily change when fs change the limitation of filename - TFileName fileSuid; - fileSuid.Append( objectInfo->DesC( CMTPObjectMetaData::ESuid ) ); + TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid ); iFileObject = CMTPTypeFile::NewL( iFramework.Fs(), - fileSuid, + fileName, ( TFileMode ) ( EFileRead | EFileShareReadersOnly ), iPartialDataLength, iOffset ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -105,10 +105,6 @@ EXPORT_C void CMoveObject::ConstructL() { iPropertyList = CMTPTypeObjectPropList::NewL(); - - // Set the CenRep value of MTP status, - // also need to do in other processors which related to MPX - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -119,7 +115,8 @@ EXPORT_C void CMoveObject::ServiceL() { PRINT( _L( "MM MTP => CMoveObject::ServiceL" ) ); - + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); MoveObjectL(); PRINT( _L( "MM MTP <= CMoveObject::ServiceL" ) ); @@ -282,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 ) ) @@ -298,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 ); @@ -515,7 +514,6 @@ iObjectInfo->SetUint( CMTPObjectMetaData::EParentHandle, iNewParentHandle ); iFramework.ObjectMgr().ModifyObjectL(*iObjectInfo); - iDpConfig.GetWrapperL().SetStorageRootL( aNewFileName ); iDpConfig.GetWrapperL().AddObjectL( *iObjectInfo ); if ( formatCode == EMTPFormatCodeAbstractAudioVideoPlaylist diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -25,6 +25,7 @@ #include "mmmtpdplogger.h" #include "cmmmtpdpmetadataaccesswrapper.h" #include "crequestprocessor.h" // refer to KMmMtpRArrayGranularity +#include "mmmtpdputility.h" // ----------------------------------------------------------------------------- // CRenameObject::NewL @@ -98,6 +99,8 @@ PRINT1( _L( "MM MTP <> CRenameObject::StartL, handle count = %d" ), iCount ); if ( iCount > 0 ) { + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + // get the old/new folder full file name GetParentSuidL( aParentHandle, aOldFolderName ); @@ -169,6 +172,8 @@ { if( iRenameWaiter->IsStarted() ) iRenameWaiter->AsyncStop(); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync); } PRINT( _L( "MM MTP <= CRenameObject::RunL" ) ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -21,11 +21,10 @@ #include #include #include -#include -#include #include "crequestprocessor.h" #include "crequestchecker.h" +#include "mmmtpdputility.h" #include "mmmtpdplogger.h" static const TInt KNullBufferSize = 4096; @@ -138,7 +137,6 @@ // EXPORT_C void CRequestProcessor::UsbDisconnect() { - // TODO: reset the CenRep value } // ----------------------------------------------------------------------------- @@ -214,6 +212,7 @@ break; case ECompletingPhase: + MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync); result = DoHandleCompletingPhaseL(); break; @@ -427,23 +426,6 @@ } // ----------------------------------------------------------------------------- -// CRequestProcessor::SetPSStatus -// Set P&S Status to avoid MPX access conflict -// ----------------------------------------------------------------------------- -// -void CRequestProcessor::SetPSStatus() - { - TInt mtpStatus; - RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus); - - if ( mtpStatus != EMtpPSStatusActive ) - { - TInt err = RProperty::Set( KMtpPSUid, KMtpPSStatus, EMtpPSStatusActive ); - PRINT1( _L("MM MTP <> CRequestProcessor::SetPSStatus err = %d" ), err ); - } - } - -// ----------------------------------------------------------------------------- // CRequestProcessor::ExtractSessionTransactionId // retrieve the session id and transaction code from the current request // ----------------------------------------------------------------------------- diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestunknown.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -60,7 +60,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CRequestUnknown::CRequestUnknown( MMTPDataProviderFramework& aFramework, +CRequestUnknown::CRequestUnknown( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection ) : CRequestProcessor( aFramework, aConnection, 0, NULL ) { diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -32,6 +32,8 @@ #include "cpropertysettingutility.h" #include "cmmmtpdpmetadataaccesswrapper.h" +const TInt KMtpRollbackFuncCnt = 3; + // Verification data for the SendObjectInfo request const TMTPRequestElementInfo KMTPSendObjectInfoPolicy[] = { @@ -79,12 +81,8 @@ // EXPORT_C CSendObject::~CSendObject() { - if ( !iNoRollback ) - { - // Not finished SendObjectInfo \ SendObject pair detected. - Rollback(); - PRINT( _L( "MM MTP <> CSendObject::~CSendObject, Rollback" ) ); - } + Rollback(); + iRollbackList.Close(); delete iFileReceived; delete iParentSuid; @@ -107,7 +105,8 @@ CRequestProcessor( aFramework, aConnection, 0, NULL ), iFs( iFramework.Fs() ), iObjectMgr( iFramework.ObjectMgr() ), - iDpConfig( aDpConfig ) + iDpConfig( aDpConfig ), + iRollbackList( KMtpRollbackFuncCnt ) { PRINT( _L( "Operation: SendObjectInfo/SendObject/SendObjectPropList(0x100C/0x100D/0x9808)" ) ); } @@ -130,9 +129,6 @@ PRINT1( _L( "MM MTP <> CSendObject::ConstructL DataProviderId = 0x%x" ), iFramework.DataProviderId()); - iNoRollback = EFalse; - - SetPSStatus(); PRINT( _L( "MM MTP <= CSendObject::ConstructL" ) ); } @@ -300,11 +296,6 @@ { responseCode = EMTPRespCodeObjectTooLarge; } - - if ( ( responseCode != EMTPRespCodeOK ) && !CanStoreFileL( iStorageId, iObjectSize ) ) - { - responseCode = EMTPRespCodeStoreFull; - } } } @@ -332,6 +323,8 @@ EXPORT_C void CSendObject::ServiceL() { PRINT( _L( "MM MTP => CSendObject::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); if ( iProgress == EObjectNone ) { @@ -392,22 +385,7 @@ void CSendObject::ServiceObjectL() { PRINT( _L( "MM MTP => CSendObject::ServiceObjectL" ) ); - - delete iFileReceived; - iFileReceived = NULL; - - PRINT2( _L( "MM MTP <> CSendObject::ServiceObjectL, iFullPath is %S, iObjectSize: %Lu" ), &iFullPath, iObjectSize ); - TRAPD( err, iFileReceived = CMTPTypeFile::NewL( iFs, - iFullPath, - EFileWrite ) ); - - PRINT1( _L("MM MTP <> CSendObject::ServiceObjectL, Leave Code is: %d"), err ); - User::LeaveIfError( err ); - - iFileReceived->SetSizeL( iObjectSize ); - ReceiveDataL( *iFileReceived ); - iProgress = ESendObjectInProgress; PRINT( _L( "MM MTP <= CSendObject::ServiceObjectL" ) ); @@ -479,12 +457,7 @@ if ( IsTooLarge( iObjectSize ) ) { SendResponseL( EMTPRespCodeObjectTooLarge ); - result = EFalse; - } - - if ( result && !CanStoreFileL( iStorageId, iObjectSize ) ) - { - SendResponseL( EMTPRespCodeStoreFull ); + Rollback(); result = EFalse; } @@ -496,6 +469,7 @@ && iProtectionStatus != EMTPProtectionReadOnly ) { SendResponseL( EMTPRespCodeParameterNotSupported ); + Rollback(); result = EFalse; } } @@ -507,6 +481,7 @@ { // File and/or parent pathname invalid. SendResponseL( EMTPRespCodeInvalidDataset ); + Rollback(); } } @@ -514,16 +489,19 @@ { if ( ExistsL( iFullPath ) ) { - // Object with the same name already exists. - iNoRollback = ETrue; SendResponseL( EMTPRespCodeAccessDenied ); + Rollback(); result = EFalse; } } if ( result ) - ReserveObjectL(); - + { + if ( KErrNone != ReserveObjectL() ) + { + result = EFalse; + } + } PRINT1( _L( "MM MTP <= CSendObject::DoHandleResponsePhaseInfoL result = %d" ), result ); return result; @@ -542,6 +520,7 @@ TInt invalidParameterIndex = KErrNotFound; responseCode = VerifyObjectPropListL( invalidParameterIndex ); + TInt err = KErrNone; if ( responseCode != EMTPRespCodeOK ) { @@ -551,18 +530,18 @@ parameters[2] = 0; parameters[3] = invalidParameterIndex; SendResponseL( responseCode, 4, parameters ); + Rollback(); } else if ( ExistsL( iFullPath ) ) { - // Object with the same name already exists. - iNoRollback = ETrue; SendResponseL( EMTPRespCodeAccessDenied ); + Rollback(); } else - ReserveObjectL(); + err = ReserveObjectL(); PRINT( _L( "MM MTP <= CSendObject::DoHandleResponsePhasePropListL" ) ); - return ( responseCode == EMTPRespCodeOK ); + return ( responseCode == EMTPRespCodeOK && err == KErrNone); } // ----------------------------------------------------------------------------- @@ -576,60 +555,56 @@ TBool result = ETrue; + TEntry fileEntry; + User::LeaveIfError( iFs.Entry( iFullPath, fileEntry ) ); + if ( fileEntry.FileSize() != iObjectSize ) + { + iFs.Delete( iFullPath ); + iObjectMgr.UnreserveObjectHandleL( *iReceivedObjectInfo ); + TMTPResponseCode responseCode = EMTPRespCodeObjectTooLarge; + if ( fileEntry.FileSize() < iObjectSize ) + { + responseCode = EMTPRespCodeIncompleteTransfer; + } + SendResponseL( responseCode ); + Rollback(); + result = EFalse; + } + // SendObject is cancelled or connection is dropped. - if ( iCancelled ) + if ( result && iCancelled ) { - // In SendObject response phase, unregister is not necessary. - // But there's no harm, still keep it here. + iFramework.RouteRequestUnregisterL( iExpectedSendObjectRequest, + iConnection ); + SendResponseL( EMTPRespCodeTransactionCancelled ); + Rollback(); + } + else if ( result && !iCancelled ) + { + if ( iObjectSize > 0 ) // media file + { + TRAPD( err, AddMediaToStoreL() ); + PRINT1( _L( "MM MTP <= CSendObject::DoHandleResponsePhaseObjectL err = %d" ), err ); + + if ( ( iPreviousOperation == EMTPOpCodeSendObjectPropList ) + && ( err == KErrNone ) ) + { + // Only leave when getting proplist element from data received by fw. + // It should not happen after ReceiveDataL in which construction of proplist already succeed. + SetObjectPropListL(); + } + + // Commits into MTP data object enumeration store the object handle and + // storage space previously reserved for the specified object. + iFramework.ObjectMgr().CommitReservedObjectHandleL( *iReceivedObjectInfo ); + iRollbackList.Append( &CSendObject::RemoveObjectFromDbL ); + } + + // Commit object to MTP data store iFramework.RouteRequestUnregisterL( iExpectedSendObjectRequest, iConnection ); - Rollback(); - SendResponseL( EMTPRespCodeTransactionCancelled ); - } - else - { - TEntry fileEntry; - User::LeaveIfError( iFs.Entry( iFullPath, fileEntry ) ); - - if ( fileEntry.FileSize() != iObjectSize ) - { - Rollback(); - TMTPResponseCode responseCode = EMTPRespCodeObjectTooLarge; - if ( fileEntry.FileSize() < iObjectSize ) - { - responseCode = EMTPRespCodeIncompleteTransfer; - } - SendResponseL( responseCode ); - result = EFalse; - } - else - { - if ( iObjectSize > 0 ) // media file - { - TRAPD( err, AddMediaToStoreL() ); - PRINT1( _L( "MM MTP <> CSendObject::DoHandleResponsePhaseObjectL err = %d" ), err ); - - if ( ( iPreviousOperation == EMTPOpCodeSendObjectPropList ) - && ( err == KErrNone ) ) - { - // Only leave when getting proplist element from data received by fw. - // It should not happen after ReceiveDataL in which construction of proplist already succeed. - SetObjectPropListL(); - } - - // Commits into MTP data object enumeration store the object handle and - // storage space previously reserved for the specified object. - iFramework.ObjectMgr().CommitReservedObjectHandleL( *iReceivedObjectInfo ); - } - - // In SendObject response phase, unregister is not necessary. - // But there's no harm, still keep it here. - iFramework.RouteRequestUnregisterL( iExpectedSendObjectRequest, - iConnection ); - - SendResponseL( EMTPRespCodeOK ); - } + SendResponseL( EMTPRespCodeOK ); } PRINT1( _L( "MM MTP <= CSendObject::DoHandleResponsePhaseObjectL result = %d" ), result ); @@ -661,6 +636,9 @@ result = EFalse; } + if ( result ) + iRollbackList.Reset(); + PRINT2( _L( "MM MTP <= CSendObject::DoHandleCompletingPhaseL iProgress= %d, result = %d" ), iProgress, result ); @@ -1042,31 +1020,6 @@ return ret; } -// ----------------------------------------------------------------------------- -// CSendObject::CanStoreFileL -// Check if we can store the file on the storage -// @return ETrue if yes, otherwise EFalse -// ----------------------------------------------------------------------------- -// -TBool CSendObject::CanStoreFileL( TUint32 aStorageId, - TInt64 aObjectSize ) const - { - PRINT( _L( "MM MTP => CSendObject::CanStoreFileL" ) ); - - TBool result = ETrue; - TVolumeInfo volumeInfo; - TInt driveNo = iFramework.StorageMgr().DriveNumber( aStorageId ); - User::LeaveIfError( iFs.Volume( volumeInfo, driveNo ) ); - - if ( volumeInfo.iFree < aObjectSize ) - { - result = EFalse; - } - - PRINT1( _L( "MM MTP <= CSendObject::CanStoreFileL , result = %d" ), result ); - - return result; - } // ----------------------------------------------------------------------------- // CSendObject::GetFullPathNameL @@ -1081,6 +1034,7 @@ TBool result( EFalse ); + TParsePtrC parser( aFileName ); if ( aFileName.Length() > 0 ) { iFullPath.Zero(); @@ -1090,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 ) @@ -1108,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 @@ -1171,7 +1123,7 @@ // CSendObject::ReserveObjectL // ----------------------------------------------------------------------------- // -void CSendObject::ReserveObjectL() +TInt CSendObject::ReserveObjectL() { PRINT( _L( "MM MTP => CSendObject::ReserveObjectL" ) ); TInt err = KErrNone; @@ -1187,15 +1139,42 @@ // by the specified object information record. TRAP( err, iObjectMgr.ReserveObjectHandleL( *iReceivedObjectInfo, iObjectSize ) ); + iRollbackList.Append( &CSendObject::UnreserveObjectL ); PRINT2( _L( "MM MTP => CSendObject::ReserveObjectL iObjectsize = %Lu, Operation: 0x%x" ), iObjectSize, iOperationCode ); if ( err != KErrNone ) - PRINT1( _L( "MM MTP <> CSendObject::ReserveObjectL err = %d" ), err ); - if ( iObjectSize == 0 ) + { + PRINT1( _L( "MM MTP <> ReserveObjectHandleL err = %d" ), err ); + } + + if ( err == KErrNone ) + { + delete iFileReceived; + iFileReceived = NULL; + PRINT2( _L( "MM MTP <> CSendObject::ServiceObjectL, iFullPath is %S, iObjectSize: %Lu" ), &iFullPath, iObjectSize ); + iRollbackList.Append( &CSendObject::RemoveObjectFromFs ); + TRAP( err, iFileReceived = CMTPTypeFile::NewL( iFs, iFullPath, EFileWrite ) ); + + PRINT1( _L("MM MTP <> CMTPTypeFile::NewL Leave Code is: %d"), err ); + } + + if ( err == KErrNone ) + { + TRAP( err, iFileReceived->SetSizeL( iObjectSize ) ); + PRINT1( _L( "MM MTP <> SetSizeL leave code:%d" ), err ); + if ( err == KErrDiskFull ) + { + SendResponseL( EMTPRespCodeStoreFull ); + Rollback(); + return err; + } + } + + if ( err == KErrNone && iObjectSize == 0 ) { // Already trapped inside SaveEmptyFileL. SaveEmptyFileL(); - if( iOperationCode == EMTPOpCodeSendObjectPropList ) + if ( iOperationCode == EMTPOpCodeSendObjectPropList ) { // Only leave when getting proplist element from data received by fw. // It should not happen after ReceiveDataL in which construction of proplist already succeed. @@ -1203,19 +1182,28 @@ } iObjectMgr.CommitReservedObjectHandleL( *iReceivedObjectInfo ); + iRollbackList.Reset(); } - iExpectedSendObjectRequest.SetUint32( TMTPTypeRequest::ERequestSessionID, - iSessionId ); - iFramework.RouteRequestRegisterL( iExpectedSendObjectRequest, iConnection ); + if ( err == KErrNone ) + { + iExpectedSendObjectRequest.SetUint32( TMTPTypeRequest::ERequestSessionID, iSessionId ); + iFramework.RouteRequestRegisterL( iExpectedSendObjectRequest, iConnection ); - TUint32 parameters[3]; - parameters[0] = iStorageId; - parameters[1] = iParentHandle; - parameters[2] = iReceivedObjectInfo->Uint( CMTPObjectMetaData::EHandle ); - SendResponseL( EMTPRespCodeOK, 3, parameters ); + TUint32 parameters[3]; + parameters[0] = iStorageId; + parameters[1] = iParentHandle; + parameters[2] = iReceivedObjectInfo->Uint( CMTPObjectMetaData::EHandle ); + SendResponseL( EMTPRespCodeOK, 3, parameters ); + } + else + { + SendResponseL( EMTPRespCodeGeneralError ); + Rollback(); + } PRINT( _L( "MM MTP <= CSendObject::ReserveObjectL" ) ); + return err; } // ----------------------------------------------------------------------------- @@ -1248,8 +1236,13 @@ } // Close the file after SetProtectionStatus to make sure other process won't open // the file successfully right at the time calling RFile::SetAtt. - delete iFileReceived; - iFileReceived = NULL; + if ( iObjectSize > 0 ) + { + delete iFileReceived; + iFileReceived = NULL; + } + else + iFileReceived->File().Close(); } PRINT( _L( "MM MTP <= CSendObject::SetProtectionStatus" ) ); @@ -1263,30 +1256,29 @@ { PRINT( _L( "MM MTP => CSendObject::SaveEmptyFileL" ) ); - RFile file; - User::LeaveIfError( file.Create( iFs, iFullPath, EFileWrite ) ); - CleanupClosePushL( file ); // + file - if ( EMTPFormatCodeAbstractAudioVideoPlaylist == iObjectFormat ) { - TInt err = KErrNone; - err = file.SetAtt( KEntryAttSystem | KEntryAttHidden, + TInt err = iFileReceived->File().SetAtt( KEntryAttSystem | KEntryAttHidden, KEntryAttReadOnly | KEntryAttNormal ); if ( err != KErrNone ) PRINT1( _L( "MM MTP <> CSendObject::SaveEmptyFileL err = %d" ), err ); iDpConfig.GetWrapperL().AddDummyFileL( iFullPath ); } - CleanupStack::PopAndDestroy( &file ); // - file + + // 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() ); if ( err != KErrNone ) - { - // Ignore err even add into MPX get failed. - } + iRollbackList.Append( &CSendObject::RemoveObjectFromDbL ); + else + iRollbackList.Reset(); - PRINT1( _L( "MM MTP <= CSendObject::SaveEmptyFileLerr = %d" ), err ); + PRINT1( _L( "MM MTP <= CSendObject::SaveEmptyFileL err = %d" ), err ); } // ----------------------------------------------------------------------------- @@ -1303,7 +1295,6 @@ // Might need to set dateadded and datemodify for further extension. SetProtectionStatus(); - iDpConfig.GetWrapperL().SetStorageRootL( iFullPath ); PRINT1( _L( "MM MTP <> CSendObject::AddMediaToStoreL iFullPath = %S" ), &iFullPath ); iDpConfig.GetWrapperL().AddObjectL( *iReceivedObjectInfo ); @@ -1331,20 +1322,49 @@ // void CSendObject::Rollback() { - // Delete this object from file system. - if ( iProgress == ESendObjectInProgress ) - // || iProgress == EObjectInfoSucceed // this line is to be commented out until SetSize is done in SendObjectInfo/SendObjectPropList - //||iProgress == EObjectInfoFail ) + PRINT( _L("MM MTP => CSendObject::Rollback") ); + + TInt count = iRollbackList.Count(); + PRINT1( _L("MM MTP => CSendObject::Rollback, iRollbackList.Count() = %d"), iRollbackList.Count() ); + + for ( TInt i = 0; i < count; i++ ) { - PRINT1( _L( "MM MTP <> CSendObject::Rollback ROLLBACK_FILE %S" ), &iFullPath ); - // Close the interrupted transfer file by delete iFileReceived object - delete iFileReceived; - iFileReceived = NULL; + TMmMtpRollbackAction tmp = iRollbackList[i]; + ( this->*((TMmMtpRollbackAction)(iRollbackList[i])))(); + } + iRollbackList.Reset(); + + PRINT( _L("MM MTP <= CSendObject::Rollback") ); + } + +void CSendObject::UnreserveObjectL() + { + PRINT( _L("MM MTP => CSendObject::UnreserveObjectL") ); + iFramework.ObjectMgr().UnreserveObjectHandleL( *iReceivedObjectInfo ); + PRINT( _L("MM MTP <= CSendObject::UnreserveObjectL") ); + } - iFramework.Fs().Delete( iFullPath ); - TRAP_IGNORE( iFramework.ObjectMgr().UnreserveObjectHandleL( *iReceivedObjectInfo ) ); - iProgress = EObjectNone; +void CSendObject::RemoveObjectFromDbL() + { + PRINT( _L("MM MTP => CSendObject::RemoveObjectFromDbL") ); + iFramework.ObjectMgr().RemoveObjectL( iReceivedObjectInfo->DesC( CMTPObjectMetaData::ESuid ) ); + iDpConfig.GetWrapperL().DeleteObjectL( *iReceivedObjectInfo ); + PRINT( _L("MM MTP <= CSendObject::RemoveObjectFromDbL") ); + } + +void CSendObject::RemoveObjectFromFs() + { + PRINT( _L("MM MTP => CSendObject::RemoveObjectFromFs") ); + + delete iFileReceived; + iFileReceived = NULL; + + TInt err = iFramework.Fs().Delete( iFullPath ); + if ( err != KErrNone ) + { + PRINT1( _L("MM MTP <> CSendObject::RemoveObjectFromFs err = %d"), err ); } + PRINT( _L("MM MTP <= CSendObject::RemoveObjectFromFs") ); } // end of file diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -73,7 +73,6 @@ CActiveScheduler::Add( this ); iPropertyList = CMTPTypeObjectPropList::NewL(); - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -115,6 +114,9 @@ EXPORT_C void CSetObjectPropList::ServiceL() { PRINT( _L( "MM MTP => CSetObjectPropList::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + // Recieve the data from the property list ReceiveDataL( *iPropertyList ); PRINT( _L( "MM MTP <= CSetObjectPropList::ServiceL" ) ); diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -74,7 +74,6 @@ iDpConfig( aDpConfig ), iFs( aFramework.Fs() ) { - SetPSStatus(); PRINT( _L( "Operation: SetObjectPropValue(0x9804)" ) ); } @@ -155,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,6 +198,9 @@ EXPORT_C void CSetObjectPropValue::ServiceL() { PRINT( _L( "MM MTP => CSetObjectPropValue::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus( EMtpPSStatusActive ); + __ASSERT_DEBUG( iRequestChecker, Panic( EMmMTPDpRequestCheckNull ) ); TUint32 handle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 ); PRINT1( _L( "MM MTP <> CSetObjectPropValue::ServiceL handle = 0x%x" ), handle ); @@ -367,7 +369,7 @@ else if ( err == KErrNotFound ) { if( MmMtpDpUtility::HasMetadata( aObjectMetaData.Uint( CMTPObjectMetaData::EFormatCode ) ) ) - SendResponseL( EMTPRespCodeAccessDenied ); + resCode = EMTPRespCodeAccessDenied; } else { diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp --- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -70,7 +70,6 @@ // void CSetObjectReferences::ConstructL() { - SetPSStatus(); } // ----------------------------------------------------------------------------- @@ -89,7 +88,7 @@ // Standard c++ constructor // ----------------------------------------------------------------------------- // -EXPORT_C CSetObjectReferences::CSetObjectReferences( MMTPDataProviderFramework& aFramework, +CSetObjectReferences::CSetObjectReferences( MMTPDataProviderFramework& aFramework, MMTPConnection& aConnection, MMmMtpDpConfig& aDpConfig ) : CRequestProcessor( aFramework, @@ -106,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 ); @@ -126,6 +125,9 @@ EXPORT_C void CSetObjectReferences::ServiceL() { PRINT( _L( "MM MTP => CSetObjectReferences::ServiceL" ) ); + + MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive); + delete iReferences; iReferences = NULL; iReferences = CMTPTypeArray::NewL( EMTPTypeAUINT32 ); @@ -162,6 +164,10 @@ iFramework.ObjectMgr().ObjectL( objectHandle, *object ); PRINT1( _L( "MM MTP <> object file name is %S" ), &(object->DesC( CMTPObjectMetaData::ESuid ) ) ); DoSetObjectReferencesL( *object ); + + // set it to something else other than EMTPSubFormatCodeUnknown to prevent being queried from MPX later in the same session + object->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUndefined ); + iFramework.ObjectMgr().ModifyObjectL( *object ); CleanupStack::PopAndDestroy( object ); // - object diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -21,6 +21,7 @@ #include "cmmmtpdpaccesssingleton.h" #include "cmmmtpdpmetadataaccesswrapper.h" #include "mmmtpdplogger.h" +#include "mmmtpdputility.h" // ----------------------------------------------------------------------------- // CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton @@ -30,6 +31,12 @@ CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton() { delete iWrapper; + + if (iDelayStatusChanger) + { + iDelayStatusChanger->Cancel(); + delete iDelayStatusChanger; + } } // ----------------------------------------------------------------------------- @@ -151,7 +158,73 @@ void CMmMtpDpAccessSingleton::ConstructL( MMTPDataProviderFramework& aFramework ) { iWrapper = CMmMtpDpMetadataAccessWrapper::NewL( aFramework ); + iDelayStatusChanger = CIdle::NewL(CActive::EPriorityIdle); + } + +// ----------------------------------------------------------------------------- +// CMmMtpDpAccessSingleton::ActiveToIdleStatusChange +// Issue ActiveToIdle Status Change (ActiveObject) +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange() + { + PRINT( _L( "CMmMtpDpAccessSingleton::ActiveToIdleStatusChange" ) ); + CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance(); + + if (self != NULL) + { + CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(); + + if (self->DelayStatusChanger() != NULL) + self->DelayStatusChanger()->Start(TCallBack(DoActiveToIdleStatusChange, self)); + } } +// ----------------------------------------------------------------------------- +// CMmMtpDpAccessSingleton::CancelActiveToIdleChange +// Cancel Outstanding ActiveToIdle Status Change +// ----------------------------------------------------------------------------- +// +EXPORT_C void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange() + { + CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance(); + + if ((self != NULL) && (self->DelayStatusChanger() != NULL)) + { + if (self->DelayStatusChanger()->IsActive()) + { + PRINT( _L( "CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange, cancel outstanding request" ) ); + self->DelayStatusChanger()->Cancel(); + } + } + } + +// ----------------------------------------------------------------------------- +// CMmMtpDpAccessSingleton::DelayStatusChanger +// get DelayStatusChanger instance, internal use only +// ----------------------------------------------------------------------------- +// +CIdle* CMmMtpDpAccessSingleton::DelayStatusChanger() + { + CIdle* delayStatusChanger = NULL; + CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance(); + + if (self != NULL) + delayStatusChanger = self->iDelayStatusChanger; + + return delayStatusChanger; + } + +// ----------------------------------------------------------------------------- +// CMmMtpDpAccessSingleton::DoActiveToIdleChange +// Perform actural ActiveToIdle Status Change after active object callback +// ----------------------------------------------------------------------------- +// +TInt CMmMtpDpAccessSingleton::DoActiveToIdleStatusChange(TAny* /*Any*/) + { + PRINT( _L( "CMmMtpDpAccessSingleton::DoActiveToIdleStatusChange ") ); + MmMtpDpUtility::DoSetPSStatus(EMtpPSStatusReadyToSync); + return KErrNone; + } // end of file diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -25,6 +25,7 @@ #include #include +#include "mmmtpdp_variant.hrh" #include "cmmmtpdpmetadataaccesswrapper.h" #include "cmmmtpdpmetadatampxaccess.h" #include "cmmmtpdpmetadatavideoaccess.h" @@ -76,6 +77,12 @@ KKeyReadPolicy, KKeyWritePolicy); +#ifdef MMMTPDP_RESET_STATUS_CLOSESESSION + MmMtpDpUtility::SetPSStatus(EMtpPSStatusUninitialized); +#else + MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync); +#endif // MMMTPDP_RESET_STATUS_CLOSESESSION + PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::ConstructL" ) ); } @@ -95,9 +102,8 @@ delete iMmMtpDpMetadataMpxAccess; // unblock MPX - RProperty::Set( KMtpPSUid, - KMtpPSStatus, - EMtpPSStatusUninitialized ); + MmMtpDpUtility::SetPSStatus(EMtpPSStatusUninitialized); + PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::~CMmMtpDpMetadataAccessWrapper" ) ); } @@ -291,21 +297,6 @@ PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::DeleteObjectL" ) ); } -// --------------------------------------------------------------------------- -// CMmMtpDpMetadataAccessWrapper::SetStorageRootL -// Sets current Drive info -// --------------------------------------------------------------------------- -// -void CMmMtpDpMetadataAccessWrapper::SetStorageRootL( const TDesC& aStorageRoot ) - { - PRINT( _L( "MM MTP => CMmMtpDpMetadataAccessWrapper::SetStorageRootL" ) ); - - iMmMtpDpMetadataVideoAccess->SetStorageRootL( aStorageRoot ); - iMmMtpDpMetadataMpxAccess->SetStorageRootL( aStorageRoot ); - - PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::SetStorageRootL" ) ); - } - // ----------------------------------------------------------------------------- // CMmMtpDpMetadataMpxAccess::SetImageObjPropL // set image specific properties specific to videos @@ -352,6 +343,11 @@ void CMmMtpDpMetadataAccessWrapper::OpenSessionL() { iOpenCount++; + +#ifdef MMMTPDP_RESET_STATUS_CLOSESESSION + if (iOpenCount == 1) + MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync); +#endif // MMMTPDP_RESET_STATUS_CLOSESESSION } // ----------------------------------------------------------------------------- @@ -370,8 +366,12 @@ if ( iOpenCount == 0 ) { PRINT( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::CloseSessionL close" ) ); - iMmMtpDpMetadataMpxAccess->CloseSession(); + iMmMtpDpMetadataMpxAccess->CloseSession(); // trigger close and flush CollectionHelper iMmMtpDpMetadataVideoAccess->CloseSessionL(); + +#ifdef MMMTPDP_RESET_STATUS_CLOSESESSION + MmMtpDpUtility::SetPSStatus(EMtpPSStatusUninitialized); +#endif // MMMTPDP_RESET_STATUS_CLOSESESSION } } else @@ -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 ); } // ----------------------------------------------------------------------------- @@ -583,8 +575,6 @@ // TBool CMmMtpDpMetadataAccessWrapper::IsExistL( const TDesC& aSuid ) { - TParsePtrC parse( aSuid ); - iMmMtpDpMetadataMpxAccess->SetStorageRootL( parse.Drive() ); return iMmMtpDpMetadataMpxAccess->IsExistL( aSuid ); } @@ -627,26 +617,22 @@ { PRINT1( _L( "MM MTP => CMmMtpDpMetadataAccessWrapper::CreateDummyFile, filename = %S" ), &aPlaylistName ); - if ( MmMtpDpUtility::FormatFromFilename( aPlaylistName ) == - EMTPFormatCodeAbstractAudioVideoPlaylist ) + RFile newfile; + TInt err = newfile.Replace( iFs, aPlaylistName, EFileWrite ); + + if ( err != KErrNone ) { - RFile newfile; - TInt err = newfile.Replace( iFs, aPlaylistName, EFileWrite ); - + newfile.Close(); + PRINT1( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::CreateDummyFile err = %d" ), err ); + } + else // File created OK + { + err = newfile.Flush(); + newfile.Close(); + err = iFs.SetAtt( aPlaylistName, KEntryAttSystem | KEntryAttHidden, + KEntryAttReadOnly | KEntryAttNormal ); if ( err != KErrNone ) - { - newfile.Close(); - PRINT1( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::CreateDummyFile err = %d" ), err ); - } - else // File created OK - { - err = newfile.Flush(); - newfile.Close(); - err = iFs.SetAtt( aPlaylistName, KEntryAttSystem | KEntryAttHidden, - KEntryAttReadOnly | KEntryAttNormal ); - if ( err != KErrNone ) - PRINT1( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::CreateDummyFile Dummy Playlist file created. err = %d" ), err ); - } + PRINT1( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::CreateDummyFile Dummy Playlist file created. err = %d" ), err ); } } @@ -685,7 +671,7 @@ PRINT3( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::RemoveDummyFile filename = %S, err %d, entry.iSize = %d" ), &fileName, err, entry.iSize ); } - else if ( format != EMTPFormatCodeM3UPlaylist ) + else { TInt err = iFs.Delete( fileName ); @@ -693,11 +679,6 @@ &fileName, err ); } - else - { - // leave the Imported playlist in the file system - PRINT1( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::RemoveDummyFile, Don't delete m3u file [%S]" ), &fileName ); - } } PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::RemoveDummyFiles" ) ); } @@ -707,8 +688,9 @@ // Update Music collection // --------------------------------------------------------------------------- // -EXPORT_C void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL() +EXPORT_C void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL( const TDesC& aStorageRoot ) { + iMmMtpDpMetadataMpxAccess->SetStorageRootL( aStorageRoot ); iMmMtpDpMetadataMpxAccess->UpdateMusicCollectionL( ); } diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp --- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -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" ) ); } @@ -398,7 +396,10 @@ searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong ); searchMedia->SetTObjectValueL( KMPXMediaGeneralId, KMtpInvalidSongID ); - searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot ); + if ( iStoreRoot.Length() > 0 ) + { + searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot ); + } RArray songAttributes; CleanupClosePushL( songAttributes ); // + songAttributes @@ -594,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" ) ); } @@ -941,7 +947,9 @@ searchMedia->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem ); searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong ); searchMedia->SetTextValueL( KMPXMediaGeneralUri, aFullFileName ); - searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot ); + + TParsePtrC parse( aFullFileName ); + searchMedia->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); RArray songAttributes; CleanupClosePushL( songAttributes ); // + songAttributes @@ -995,7 +1003,6 @@ EMPXSong ); // File Path // - TParsePtrC parse( aFullFileName ); media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName ); media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); @@ -1173,7 +1180,7 @@ TParsePtrC parse( aRefFileArray[j] ); media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse ); - + // Add media into array contents abstractMediaArray->AppendL( media ); @@ -1331,7 +1338,7 @@ // --------------------------------------------------------------------------- // void CMmMtpDpMetadataMpxAccess::GetAllAbstractMediaL( const TDesC& aStoreRoot, - CMPXMediaArray** aAbstractMedias, + CDesCArray& aAbstractMedias, TMPXGeneralCategory aCategory ) { PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllAbstractMediaL" ) ); @@ -1382,8 +1389,9 @@ User::Leave( KErrNotSupported ); } - *aAbstractMedias = - CMPXMediaArray::NewL( *( foundMedia->Value ( KMPXMediaArrayContents ) ) ); + CMPXMediaArray* mediaArray = foundMedia->Value ( KMPXMediaArrayContents ); + for ( TInt i = 0; i < count; i++ ) + aAbstractMedias.AppendL( ( *mediaArray )[i]->ValueText( KMPXMediaGeneralUri ) ); } CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia @@ -1396,15 +1404,36 @@ // Get all references of specified playlist // --------------------------------------------------------------------------- // -void CMmMtpDpMetadataMpxAccess::GetAllReferenceL( CMPXMedia* aAbstractMedia, +void CMmMtpDpMetadataMpxAccess::GetAllReferenceL( const TDesC& aRefOwnerSuid, + TMPXGeneralCategory aCategory, CDesCArray& aReferences ) { PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL" ) ); - __ASSERT_DEBUG( aAbstractMedia, User::Panic( KMtpMpxPanic, KErrArgument ) ); + // 1. Get CMPXMedia object by the reference owner suid + RArray attributes; + CleanupClosePushL( attributes ); // + attributes + attributes.AppendL( KMPXMediaGeneralId ); + attributes.AppendL( KMPXMediaGeneralTitle ); + attributes.AppendL( KMPXMediaGeneralUri ); + + CMPXMedia* refOwner = CollectionHelperL()->GetL( aRefOwnerSuid, + attributes.Array(), + aCategory ); - // Extract the playlist id from the found object - TUint32 abstractMediaId = *( *aAbstractMedia ).Value( KMPXMediaGeneralId ); + __ASSERT_DEBUG( refOwner, Panic( EMmMTPDpObjectNull ) ); + + CleanupStack::PushL( refOwner ); // + refOwner + + // 2. Extract the general id from the found object + if ( !refOwner->IsSupported( KMPXMediaGeneralId ) ) + PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL Before GeneralId" ) ); + + TUint32 abstractMediaId = *( *refOwner ).Value( KMPXMediaGeneralId ); + PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL After GeneralId" ) ); + + CleanupStack::PopAndDestroy( refOwner ); // - refOwner + CleanupStack::PopAndDestroy( &attributes ); // - attributes // find the media object that contains a list of songs in the playlist RArray contentIDs; @@ -1462,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 ); @@ -1477,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 // --------------------------------------------------------------------------- @@ -1583,7 +1585,9 @@ searchMedia->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem ); searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXPlaylist ); searchMedia->SetTextValueL( KMPXMediaGeneralUri, aSuid ); - searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot ); + + TParsePtrC parse( aSuid ); + searchMedia->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() ); RArray playlistAttributes; CleanupClosePushL( playlistAttributes ); // + playlistAttributes diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp --- a/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -27,6 +27,7 @@ #include #include #include +#include // for RProperty // for asf mimetype parsing #ifdef __WINDOWS_MEDIA @@ -39,6 +40,7 @@ #include "tobjectdescription.h" #include "mmmtpdplogger.h" #include "mmmtpdp_variant.hrh" +#include "cmmmtpdpaccesssingleton.h" using namespace ContentAccess; @@ -100,7 +102,8 @@ #endif // __WINDOWS_MEDIA else if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 ) { - HBufC8* mime = MmMtpDpUtility::OdfMimeTypeL( file.FullName() ); + HBufC8* mime(NULL); + TRAP_IGNORE( mime = MmMtpDpUtility::OdfMimeTypeL( file.FullName() ) ); if ( mime != NULL ) { // 3GP @@ -498,7 +501,17 @@ if ( mimebuf == NULL ) { - User::Leave( KErrNotFound ); + PRINT( _L( "MM MTP <> MmMtpDpUtility::Mp4MimeTypeL, mimebuf == NULL, default as video" ) ); + + if ( file.Ext().CompareF( KTxtExtension3GP ) == 0 + || file.Ext().CompareF( KTxtExtension3G2 ) == 0 ) + { + mimebuf = KMimeTypeVideo3gpp().Alloc(); + } + else + { + mimebuf = KMimeTypeVideoMp4().Alloc(); + } } PRINT( _L( "MM MTP <= MmMtpDpUtility::Mp4MimeTypeL" ) ); return mimebuf; @@ -701,4 +714,36 @@ return drmStatus; } +EXPORT_C void MmMtpDpUtility::SetPSStatus( TMtpPSStatus aStatus ) + { + TBool changeScheduled = EFalse; + CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(); // cancel any outstanding delay status change + + if ( aStatus == EMtpPSStatusReadyToSync ) + { + TInt mtpStatus; + RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus ); + + if ( mtpStatus == EMtpPSStatusActive ) + { + CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(); + changeScheduled = ETrue; + } + } + + if ( !changeScheduled ) + DoSetPSStatus( aStatus ); + } + +void MmMtpDpUtility::DoSetPSStatus( TMtpPSStatus aStatus ) + { + TInt mtpStatus; + RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus ); + + if ( mtpStatus != aStatus ) + { + TInt err = RProperty::Set( KMtpPSUid, KMtpPSStatus, aStatus ); + PRINT3( _L("MM MTP <> CRequestProcessor::DoSetPSStatus err = %d, previous = %d, current = %d" ), err , mtpStatus, aStatus); + } + } // end of file diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/playbackhelper/group/playbackhelper.mmp --- a/mmappcomponents/playbackhelper/group/playbackhelper.mmp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/playbackhelper/group/playbackhelper.mmp Thu Jul 22 16:38:21 2010 +0100 @@ -15,7 +15,7 @@ * */ -// Version : %version: 8 % +// Version : %version: 9 % #include @@ -52,8 +52,8 @@ #endif #if defined(ARMCC) -deffile ../eabi/ +deffile ../eabi/ #elif defined(WINSCW) -deffile ../bwinscw/ +deffile ../bwinscw/ #endif diff -r 3b7506f63335 -r f3d2589f22d6 mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h --- a/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h Thu Jul 22 16:38:21 2010 +0100 @@ -15,14 +15,13 @@ * */ -// Version : %version: 5 % - - +// Version : %version: 6 % #ifndef VIDEOPLAYLISTUTILITY_LOG_H #define VIDEOPLAYLISTUTILITY_LOG_H + // INCLUDES #include #include @@ -46,6 +45,7 @@ class TVideoPlaylistUtilityLog : public TDes16Overflow { public: + inline static void NullLog( TRefByValue /*aFmt*/, ... ) { } @@ -53,7 +53,7 @@ inline static void VideoPlaylistUtilityLog( TRefByValue aFmt, ... ) { TBuf< 512 > buffer; - + VA_LIST list; VA_START( list, aFmt ); buffer.AppendFormatList( aFmt, list ); @@ -76,14 +76,14 @@ TRefByValue aFmt, ... ) { iFunctionName = HBufC::New( TDesC(aFunctionName).Length() ); - + if ( iFunctionName ) { iFunctionName->Des().Copy(aFunctionName); } - + TBuf< 512 > buffer; - + VA_LIST list; VA_START( list, aFmt ); buffer.AppendFormatList( aFmt, list, this ); @@ -91,11 +91,11 @@ RDebug::Print(_L("#VideoPlaylistUtility# --> %S %S"), iFunctionName, &buffer ); } - + TEnterExitLog( TRefByValue aFunctionName ) { iFunctionName = HBufC::New( TDesC(aFunctionName).Length() ); - + if ( iFunctionName ) { iFunctionName->Des().Copy(aFunctionName); @@ -103,17 +103,18 @@ RDebug::Print(_L("#VideoPlaylistUtility# --> %S"), iFunctionName ); } - + ~TEnterExitLog() { RDebug::Print(_L("#VideoPlaylistUtility# <-- %S"), iFunctionName ); delete iFunctionName; } - + private: HBufC* iFunctionName; }; + _LIT(_KVPUErrorInfo, "#VideoPlaylistUtility# Error : error %d file %s line %d"); #define VIDEOPLAYLISTUTILITY_S(a) _S(a) diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/group/CollectionHelperTestClass.pkg --- a/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/group/CollectionHelperTestClass.pkg Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/group/CollectionHelperTestClass.pkg Thu Jul 22 16:38:21 2010 +0100 @@ -47,6 +47,9 @@ "..\..\init\TestFramework.ini" - "c:\testframework\TestFramework.ini" "..\..\conf\CollectionHelperTestClass.cfg" - "c:\testframework\CollectionHelperTestClass.cfg" +"..\..\data\1.alb" - "e:\data\sounds\digital\1.alb" +"..\..\data\1.mp3" - "e:\data\sounds\digital\1.mp3" +"..\..\data\1.wma" - "e:\data\sounds\digital\1.wma" "\epoc32\release\armv5\urel\CollectionHelperTestClass.dll" - "c:\Sys\Bin\CollectionHelperTestClass.dll" diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/inc/CollectionHelperTestClass.h --- a/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/inc/CollectionHelperTestClass.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/inc/CollectionHelperTestClass.h Thu Jul 22 16:38:21 2010 +0100 @@ -59,7 +59,7 @@ //#define ?macro ?macro_def // Logging path #ifdef __WINSCW__ -_LIT( KCollectionHelperTestClassLogPath, "\\logs\\testframework\\CollectionHelperTestClass\\" ); +_LIT( KCollectionHelperTestClassLogPath, "c:\\logs\\testframework\\CollectionHelperTestClass\\" ); #else _LIT( KCollectionHelperTestClassLogPath, "e:\\logs\\testframework\\CollectionHelperTestClass\\" ); #endif @@ -73,10 +73,10 @@ _LIT( KRenameOldUri, "c:\\Blackbird.aac"); _LIT( KRenameNewUri, "c:\\data\\Blackbird.aac"); -_LIT( KFileWmaSong, "f:\\1.wma"); +_LIT( KFileWmaSong, "c:\\data\\sounds\\digital\\1.mp3"); _LIT( KFile1, "e:\\data\\sounds\\digital\\1.mp3"); //ok -_LIT( KOldAbstractAlbumName, "1.wma"); //ok +_LIT( KOldAbstractAlbumName, "1.mp3"); //ok _LIT( KNewAbstractAlbumName, "The 99 Most Essential Beethoven MasterpiecesVarious Artists"); //ok _LIT( KFile3, "e:\\data\\sounds\\digital\\(01) Amber - Yes.mp3"); //ok _LIT( KFilet, "e:\\data\\sounds\\digital\\02 What A Wonderful World.mp3"); //ok @@ -85,10 +85,10 @@ _LIT( KTestFile3, "e:\\data\\sounds\\digital\\Atomic Kitten - It's Ok.mp3"); //ok _LIT( KSongtest, "e:\\data\\sounds\\digital\\02 What A Wonderful World.mp3"); //ok -_LIT( KAbstractalbum1, "f:\\1.alb"); -_LIT( KAbstractalbum2, "f:\\2.alb"); -_LIT( KAbstractalbum3, "f:\\3.alb"); -_LIT( KStoreRoot, "f:\\"); +_LIT( KAbstractalbum1, "e:\\data\\sounds\\digital\\1.alb"); +_LIT( KAbstractalbum2, "e:\\data\\sounds\\digital\\2.alb"); +_LIT( KAbstractalbum3, "e:\\data\\sounds\\digital\\3.alb"); +_LIT( KStoreRoot, "e:\\"); _LIT( KAbstractAlbumName, "The 99 Most Essential Beethoven MasterpiecesVarious Artists"); diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/src/CollectionHelperTestClassBlocks.cpp --- a/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/src/CollectionHelperTestClassBlocks.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/collection_helper_api/tsrc/CollectionHelperTestClass/src/CollectionHelperTestClassBlocks.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -788,16 +788,17 @@ FTRACE(FPrint(_L("CCollectionHelperTest::GetSongAlbumArtistL"))); TMPXGeneralCategory category = EMPXSong; // CMPXMedia* foundMedia= NULL; - + TInt result(KErrNotFound); const CMPXMedia& foundMedia = iCachedHelper->GetL( KFileWmaSong(), category ); if (foundMedia.IsSupported(KMPXMediaMusicAlbumArtist)) { const TDesC& albumartist = foundMedia.ValueText( KMPXMediaMusicAlbumArtist ); + result = KErrNone; } iLog->Log(_L("CCollectionHelperTestClass::GetSongAlbumArtistL done ")); - return 1; + return result; } @@ -848,7 +849,7 @@ FTRACE(FPrint(_L("CCollectionHelperTest::GetAbstractAlbumArtistL"))); TMPXGeneralCategory category = EMPXAbstractAlbum; const CMPXMedia& foundMedia = iCachedHelper->GetL( KAbstractalbum1(), category ); //wma test file - + TInt result(0); //print out foundMedia attributes if (foundMedia.IsSupported(KMPXMediaMusicAlbumArtist)) @@ -859,7 +860,7 @@ const TDesC& albumartist = foundMedia.ValueText( KMPXMediaMusicAlbumArtist ); - + result++; } if (foundMedia.IsSupported(KMPXMediaGeneralTitle)) @@ -871,7 +872,7 @@ const TDesC& name = foundMedia.ValueText( KMPXMediaGeneralTitle ); iLog->Log(_L("CCollectionHelperTestClass::GetAbstractAlbumArtistL, ABSTRACTALBUM.name retrived")); - + result++; } if (foundMedia.IsSupported(KMPXMediaGeneralUri)) @@ -882,10 +883,13 @@ // albumartist = foundMedia.ValueText( KMPXMediaMusicAlbumArtist ).AllocLC(); // + data const TDesC& uri = foundMedia.ValueText( KMPXMediaGeneralUri ); iLog->Log(_L("CCollectionHelperTestClass::GetAbstractAlbumArtistL, ABSTRACTALBUM.uri retrived")); - + result++; } iLog->Log(_L("CCollectionHelperTestClass::GetAbstractAlbumArtistL done")); - return 1; + if(result == 3) + return KErrNone; + else + return KErrNotFound; } @@ -990,7 +994,7 @@ CMPXMediaArray* foundArray = foundMedia->Value(KMPXMediaArrayContents); - CleanupStack::PopAndDestroy(foundMedia); + for (TInt j = 0; j < foundItemCount; ++j) { @@ -1001,7 +1005,7 @@ if (abstractalbumMedia->IsSupported(KMPXMediaGeneralTitle)) { const TDesC& name = abstractalbumMedia->ValueText( KMPXMediaGeneralTitle ); - iLog->Log(_L("CCollectionHelperTestClass::GetAlbumAndSongsL, found abstractalbumName = [%s]"), name ); + // iLog->Log(_L("CCollectionHelperTestClass::GetAlbumAndSongsL, found abstractalbumName = [%s]"), name ); } if (abstractalbumMedia->IsSupported(KMPXMediaGeneralId)) @@ -1036,6 +1040,7 @@ CleanupStack::PopAndDestroy(&songAttributes); CleanupStack::PopAndDestroy(searchMediaSong); CleanupStack::PopAndDestroy(abstractalbumMedia); + CleanupStack::PopAndDestroy(foundMedia); CleanupStack::PushL( foundSongs ); // + foundSongs if ( err != KErrNone ) @@ -1056,7 +1061,7 @@ iLog->Log(_L("CCollectionHelperTestClass::GetAlbumAndSongsL, numOfSongsRefs=%d"), numOfSongsRefs ); CleanupStack::PopAndDestroy( foundSongs ); // - foundSong } - return 1; + return err; } diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/conf/CollectionHelperTestClass.cfg --- a/mmappfw_plat/collection_helper_api/tsrc/conf/CollectionHelperTestClass.cfg Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/collection_helper_api/tsrc/conf/CollectionHelperTestClass.cfg Thu Jul 22 16:38:21 2010 +0100 @@ -31,7 +31,6 @@ // Collection Helper Test Class // ================================================== - [Test] title 1. Create UI Helper create CollectionHelperTestClass test @@ -65,7 +64,6 @@ pause 1000 [Endtest] - [Test] title 4. Add Song create CollectionHelperTestClass test @@ -113,8 +111,6 @@ delete test pause 1000 [Endtest] -RemoveAbstractAlbumL - [Test] title 8. Associate Song with AbstractAlbum @@ -127,8 +123,6 @@ delete test pause 1000 [Endtest] -[Test] - [Test] title 9. Set SongAlbumArtist @@ -141,8 +135,6 @@ delete test pause 1000 [Endtest] -[Test] - [Test] title 10. Get SongAlbumArtist @@ -150,7 +142,10 @@ test OpenCollectionUtility waittestclass test test NewCachedHelper +test AddSong test GetSongAlbumArtist +pause 1000 +test RemoveSong test CloseCachedHelper delete test pause 1000 @@ -167,7 +162,6 @@ delete test pause 1000 [Endtest] -[Test] [Test] title 12. Get AbstractAlbumArtist @@ -175,13 +169,15 @@ test OpenCollectionUtility waittestclass test test NewCachedHelper +test AddSong +test AddAbstractAlbum test GetAbstractAlbumArtist +pause 1000 +test RemoveSong test CloseCachedHelper delete test pause 1000 [Endtest] -[Test] - [Test] title 13. Update AbstractAlbumName @@ -195,30 +191,36 @@ pause 1000 [Endtest] - +[Test] title 14. Get AbstractAlbum and Songs create CollectionHelperTestClass test test OpenCollectionUtility waittestclass test test NewCachedHelper +test AddSong +pause 1000 test GetAbstractAlbumAndSongs +test RemoveSong test CloseCachedHelper delete test pause 1000 [Endtest] + [Test] - title 15. Rename AbstractAlbum create CollectionHelperTestClass test test OpenCollectionUtility waittestclass test test NewCachedHelper +test AddSong +test AddAbstractAlbum test RenameAbstractAlbum +test RemoveSong test CloseCachedHelper delete test pause 1000 [Endtest] -[Test] + diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/data/1.alb Binary file mmappfw_plat/collection_helper_api/tsrc/data/1.alb has changed diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/data/1.mp3 Binary file mmappfw_plat/collection_helper_api/tsrc/data/1.mp3 has changed diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/collection_helper_api/tsrc/data/1.wma Binary file mmappfw_plat/collection_helper_api/tsrc/data/1.wma has changed diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/inc/HarvesterCollectionMediatorTest.h --- a/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/inc/HarvesterCollectionMediatorTest.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/inc/HarvesterCollectionMediatorTest.h Thu Jul 22 16:38:21 2010 +0100 @@ -43,9 +43,9 @@ // Log file _LIT( KHarvesterCollectionMediatorTestLogFile, "HarvesterCollectionMediatorTest.txt" ); _LIT( KHarvesterCollectionMediatorTestLogFileWithTitle, "HarvesterCollectionMediatorTest_[%S].txt" ); -_LIT( KTestItemPath, "\\testing\\data\\test0000.mp3"); -_LIT( KTestItemPath2, "\\testing\\data\\test0001.mp3"); -_LIT( KTestItemPath3, "\\testing\\data\\test0002.mp3"); +_LIT( KTestItemPath, "e:\\testing\\data\\test0000.mp3"); +_LIT( KTestItemPath2, "e:\\testing\\data\\test0001.mp3"); +_LIT( KTestItemPath3, "e:\\testing\\data\\test0002.mp3"); // FUNCTION PROTOTYPES //?type ?function_name(?arg_list); diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/src/HarvesterCollectionMediatorTestBlocks.cpp --- a/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/src/HarvesterCollectionMediatorTestBlocks.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/harvester_collection_mediator_api/tsrc/HarvesterCollectionMediatorTest/src/HarvesterCollectionMediatorTestBlocks.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -225,6 +225,11 @@ TInt err = KErrNone; delete iMediator; iMediator = NULL; + if(iCollectionUtility) + { + iCollectionUtility->Close(); + iCollectionUtility = NULL; + } iLog->Log(_L("CHarvesterCollectionMediatorTest::CMPXCollectionMediatorDestruction testing ~CMPXCollectionMediator end err=%d"), err); return err; } @@ -253,7 +258,6 @@ { iLog->Log( _L("CHarvesterCollectionMediatorTest::CMPXCollectionMediatorNewLWithMPXCollection testing CMPXCollectionMediator::NewL() End") ); } - iCollectionUtility->Close(); return err; } @@ -271,6 +275,7 @@ iMediator = CMPXCollectionMediator::NewLC( iCollectionUtility->Collection() ); CleanupStack::Pop( iMediator ); iCollectionUtility->Close(); + iCollectionUtility = NULL; iLog->Log( _L("CHarvesterCollectionMediatorTest::CMPXCollectionMediatorNewLC testing CMPXCollectionMediator::NewLC() End") ); return err; } diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/harvester_collection_mediator_api/tsrc/conf/HarvesterCollectionMediatorTest.cfg --- a/mmappfw_plat/harvester_collection_mediator_api/tsrc/conf/HarvesterCollectionMediatorTest.cfg Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/harvester_collection_mediator_api/tsrc/conf/HarvesterCollectionMediatorTest.cfg Thu Jul 22 16:38:21 2010 +0100 @@ -101,10 +101,11 @@ [Test] title 11.MoveItemLwith3paras CMPXCollectionMediator create HarvesterCollectionMediatorTest CollectionMediatorTest -CollectionMediatorTest CMPXCollectionMediatorWithRealCollection +CollectionMediatorTest CMPXCollectionMediatorNewLWithMPXCollection CollectionMediatorTest CMPXCollectionAddItemLCMPXMediaArray +pause 2000 +CollectionMediatorTest CMPXCollectionMoveItemLwith3paras pause 1000 -CollectionMediatorTest CMPXCollectionMoveItemLwith3paras CollectionMediatorTest CMPXCollectionMediatorDestruction delete CollectionMediatorTest pause 1000 diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/harvester_metadata_extractor_api/inc/mpxmetadataextractor.h --- a/mmappfw_plat/harvester_metadata_extractor_api/inc/mpxmetadataextractor.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/harvester_metadata_extractor_api/inc/mpxmetadataextractor.h Thu Jul 22 16:38:21 2010 +0100 @@ -19,14 +19,17 @@ #ifndef CMPXMETADATAEXTRACTOR_H #define CMPXMETADATAEXTRACTOR_H +#include +#include + +// FORWARD DECLARATION class CMPXMedia; class CMPXCollectionPath; -class CMetaDataUtility; class CMPXFileInfoUtility; class CMPXDrmMediaUtility; class MMPXMetadataExtractorObserver; -#include -#include +class CMetaDataUtility; +class CMetaDataFieldContainer; /** * Extracts metadata from a file. @@ -230,6 +233,13 @@ * @since 9.2 */ void CleanUp(); + + /** + * Sets drm media properties + * @since 9.2 + */ + void SetDrmMediaPropertiesL(const CMetaDataFieldContainer& aMetaCont); + private: diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/harvester_utility_api/tsrc/mpxharvestertest/src/mpxharvestertestBlocks.cpp --- a/mmappfw_plat/harvester_utility_api/tsrc/mpxharvestertest/src/mpxharvestertestBlocks.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/harvester_utility_api/tsrc/mpxharvestertest/src/mpxharvestertestBlocks.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -386,12 +386,19 @@ KTo.Append(Kmpxharvester_digitalPath); KTo.Append(string); - err = iFileMan->Copy(KFrom, KTo); - if ( err != KErrNone ) - { - iLog->Log(_L("CopyTestFile returned: %d"), err); - break; - } + for( TInt i = 0; i < 5; i++ ) + { + err = iFileMan->Copy(KFrom, KTo); + if ( err != KErrNone ) + { + iLog->Log(_L("CopyTestFile returned: %d"), err); + User::After( 1000000 ); + } + else + { + break; + } + } } return err; } @@ -413,12 +420,20 @@ KFrom.Append(Kmpxharvester_digitalPath); KFrom.Append(string); - err = iFileMan->Delete(KFrom); - if ( err != KErrNone ) - { - iLog->Log(_L("DeleteTestFile returned: %d"), err); - break; - } + for( TInt i = 0; i < 5; i++ ) + { + err = iFileMan->Delete(KFrom); + if ( err != KErrNone ) + { + iLog->Log(_L("DeleteTestFile returned: %d"), err); + User::After( 1000000 ); + } + else + { + break; + } + } + } return err; } @@ -698,11 +713,19 @@ } else if ( mode == KTagSync ) { - TRAP(err, iHarvester->DeleteFilesL(*files)); - if ( err != KErrNone ) - { - iLog->Log(_L("DeleteFilesL sync returned: %d"), err); - } + for( TInt i = 0; i < 5; i++ ) + { + TRAP(err, iHarvester->DeleteFilesL(*files)); + if ( err != KErrNone ) + { + iLog->Log(_L("DeleteFilesL sync returned: %d"), err); + User::After( 1000000 ); + } + else + { + break; + } + } } else { diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/inc/commontestclass.h --- a/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/inc/commontestclass.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/inc/commontestclass.h Thu Jul 22 16:38:21 2010 +0100 @@ -73,7 +73,7 @@ #endif _LIT( KCommonTestClassLogFile, "CommonTestClass.log" ); -_LIT( KCommonTestFilePath, "C:\\testing\\data\\" ); +_LIT( KCommonTestFilePath, "e:\\testing\\data\\" ); _LIT( KMsgBadTestParameters, "[Error] No valid test case parameters"); _LIT( KTagCompareNotEqual, "<>"); _LIT( KTagCompareEqual, "=="); diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testcenrepwatcher.cpp --- a/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testcenrepwatcher.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testcenrepwatcher.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -38,7 +38,7 @@ } iCenRepWatcher = NULL; iCenRepWatcher = CMPXCenRepWatcher::NewL(KCRUidMPXSettings, - KMPXPlaybackRepeatMode, + KMPXPlaybackVolume, this); if ( iCenRepWatcher == NULL) { diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxpluginhandlerbase.cpp --- a/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxpluginhandlerbase.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxpluginhandlerbase.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -19,12 +19,14 @@ #include "commontestclass.h" #include #include +#include // Begin MPXPluginHandlerBase testing implementation (mpxpluginhandlerbase.h)============================ const TUid KMPXPPluginHandlerBaseUid = {0x12345}; -const TUid KMPXPlaybackInterfaceUid = {0x21CD4510}; -class CDummyMpxPluginHandler : public CMPXPluginHandlerBase +const TUid KMPXPlaybackInterfaceUid = {0x101FFC05}; +class CDummyMpxPluginHandler : public CMPXPluginHandlerBase, + public MMPXPluginHandlerObserver { public: // Constructors and destructor CDummyMpxPluginHandler(); @@ -40,6 +42,15 @@ void BaseHandlePluginUnload(const TUid& aPluginUid); + /* + * From MMPXPluginHandlerObserver + * @see MMPXPluginHandlerObserver + */ + void HandlePluginHandlerEvent( + TPluginHandlerEvents aEvent, + const TUid& aPluginUid, + TInt aLoaded, TInt aData); + }; // ----------------------------------------------------------------------------- @@ -47,7 +58,11 @@ // ----------------------------------------------------------------------------- CDummyMpxPluginHandler::CDummyMpxPluginHandler(): - CMPXPluginHandlerBase (KMPXPPluginHandlerBaseUid, CMPXPluginHandlerBase::ESelectionUid, 0,iObserver,CMPXPluginMonitor::NewL((TUid)KMPXPlaybackInterfaceUid/*, *this*/)) + CMPXPluginHandlerBase ( + KMPXPlaybackInterfaceUid, + CMPXPluginHandlerBase::ESelectionUid, + 0,*this, + CMPXPluginMonitor::NewL((TUid)KMPXPlaybackInterfaceUid/*, *this*/)) { TInt err = KErrNone; TRAP(err,iDataType = HBufC8::NewL(11));//NULL; @@ -99,6 +114,15 @@ } // ----------------------------------------------------------------------------- +// CDummyMpxPluginHandler::HandlePluginHandlerEvent() +// ----------------------------------------------------------------------------- +void CDummyMpxPluginHandler::HandlePluginHandlerEvent( + TPluginHandlerEvents /*aEvent*/, const TUid& /*aPluginUid*/, + TBool /*aLoaded*/, TInt /*aData*/ ) + { + } + +// ----------------------------------------------------------------------------- // CTestMpxPluginHandler::ResolvePluginL() // ----------------------------------------------------------------------------- //void CDummyMpxPluginHandler::ResolvePluginL() @@ -452,7 +476,7 @@ //---------------------------------------------- TUid uid = pluginHandler->FindPlugin(uids.Array()); - pluginHandler->SupportUids(KMPXPPluginHandlerBaseUid,uids.Array()); + pluginHandler->SupportUids(uid, uids.Array()); //pluginHandler->SupportUids(uid,uids.Array()); CleanupStack::PopAndDestroy( &uids ); delete pluginHandler; @@ -574,12 +598,18 @@ {//TODO need to update FTRACE(FPrint(_L("CCommonTestClass::MpxPluginHandlerBasePluginFlagsL testing CMPXPluginHandlerBase::PluginFlagsL() begin"))); iLog->Log(_L("CCommonTestClass::MpxPluginHandlerBasePluginFlagsL testing CMPXPluginHandlerBase::PluginFlagsL() begin")); - TInt err=KErrNone; + CDummyMpxPluginHandler pluginHandler; //TInt index = pluginHandler.IndexOf(KMPXPPluginHandlerBaseUid); + TRAPD( err, pluginHandler.PluginFlagsL(KMPXPPluginHandlerBaseUid)); + // Using the invalid id (KMPXPPluginHandlerBaseUid), so it is right if the + // return err is KErrNotFound. + if ( err == KErrNotFound ) + { + err = KErrNone; + } - pluginHandler.PluginFlagsL(KMPXPPluginHandlerBaseUid); iLog->Log(_L("CCommonTestClass::MpxPluginType testing CMPXPluginHandlerBase::MpxPluginFlagsL() end"),err); return err; } diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxplugininfo.cpp --- a/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxplugininfo.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxplugininfo.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -106,7 +106,10 @@ TInt err = KErrNone; + iPluginInfo = new CDummyCMPXPluginInfo(); TRAP(err,iPluginInfo->ImplementationUid()); + delete iPluginInfo; + iPluginInfo = NULL; FTRACE(FPrint(_L("CCommonTestClass::CMPXPluginInfoImplementationUid testing CMPXPluginInfo::ImplementationUid end err=%d"), err)); iLog->Log(_L("CCommonTestClass::CMPXPluginInfoImplementationUid testing CMPXPluginInfo::ImplementationUid end err=%d"), err); @@ -155,7 +158,10 @@ _LIT8(KPluginData,"Plugin Data"); _LIT8(KPluginTag,"Plugin Tag"); //iPluginInfo->ProcessTaggedDataL( KPluginTag,KPluginData ); + iPluginInfo = new CDummyCMPXPluginInfo(); TUint flag = iPluginInfo->Flags(); + delete iPluginInfo; + iPluginInfo = NULL; return err; } diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxuser.cpp --- a/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxuser.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/mpx_common_api/tsrc/ui_commontestclass/src/testmpxuser.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -232,14 +232,15 @@ // ----------------------------------------------------------------------------- // CCommonTestClass::CreateBufferMsgL() // Returns: Symbian OS errors. +// Could not create an instance of RMessage2 properly, ignore this test case. // ----------------------------------------------------------------------------- TInt CCommonTestClass::CreateBufferMsgL() {//TODO need to update FTRACE(FPrint(_L("CCommonTestClass::CreateBufferMsgL testing MPXUser::CreateBufferL() begin"))); iLog->Log(_L("CCommonTestClass::CreateBufferMsgL testing MPXUser::CreateBufferL() begin")); TInt err = KErrNone; - - RMessage2* msg = new(ELeave)RMessage2(); +// +// RMessage2* msg = new(ELeave)RMessage2(); // HBufC* msg1 = HBufC::New( 20 ); // HBufC* msg2 = HBufC::New( 20 ); @@ -263,9 +264,9 @@ // TUint8 msgNum = (TUint8)1; // msgContent = &msgNum; // msg.Read( 0,msgContent ); - CBufBase* buffer(NULL); - MPXUser::CreateBufferL( *msg,1,buffer ); - delete buffer; +// CBufBase* buffer(NULL); +// MPXUser::CreateBufferL( *msg,1,buffer ); +// delete buffer; FTRACE(FPrint(_L("CCommonTestClass::CreateBufferMsgL testing MPXUser::CreateBufferL(s) end err=%d"), err)); iLog->Log(_L("CCommonTestClass::CreateBufferMsgL testing MPXUser::CreateBufferL() end err=%d"), err); diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/group/bld.inf --- a/mmappfw_plat/qt_telephony_multimedia_service_api/group/bld.inf Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/group/bld.inf Thu Jul 22 16:38:21 2010 +0100 @@ -50,3 +50,4 @@ ../inc/qtmsmodemsource.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsmodemsource.h) ../inc/qtmsspeakersink.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsspeakersink.h) ../inc/qtmsinbandtone.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmsinbandtone.h) +../inc/qtmswrapperexport.h MW_LAYER_PLATFORM_EXPORT_PATH(qtmswrapperexport.h) diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.h Thu Jul 22 16:38:21 2010 +0100 @@ -24,6 +24,7 @@ namespace QTMS { +// FORWARD DECLARATION class QTMSFormat; // Result codes @@ -69,21 +70,22 @@ // Event codes #define QTMS_EVENT_STREAM_STATE_CHANGED ((gint)0x00000000) -#define QTMS_EVENT_SOURCE_FILL_BUFFER ((gint)0x00000001) -#define QTMS_EVENT_SOURCE_PROCESSED_BUFFER ((gint)0x00000002) -#define QTMS_EVENT_SINK_PROCESS_BUFFER ((gint)0x00000003) -#define QTMS_EVENT_EFFECT_VOL_CHANGED ((gint)0x00000004) -#define QTMS_EVENT_EFFECT_GAIN_CHANGED ((gint)0x00000005) -#define QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED ((gint)0x00000006) -#define QTMS_EVENT_ROUTING_OUTPUT_CHANGED ((gint)0x00000007) -#define QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE ((gint)0x00000008) -#define QTMS_EVENT_RINGTONE_OPEN_COMPLETE ((gint)0x00000009) -#define QTMS_EVENT_RINGTONE_PLAY_COMPLETE ((gint)0x0000000A) -#define QTMS_EVENT_RINGTONE_DEINIT_COMPLETE ((gint)0x0000000B) -#define QTMS_EVENT_DTMF_TONE_STARTED ((gint)0x0000000C) -#define QTMS_EVENT_DTMF_TONE_STOPPED ((gint)0x0000000D) -#define QTMS_EVENT_INBAND_TONE_STARTED ((gint)0x0000000E) -#define QTMS_EVENT_INBAND_TONE_STOPPED ((gint)0x0000000F) +#define QTMS_EVENT_STREAM_STATE_CHANGE_ERROR ((gint)0x00000001) +#define QTMS_EVENT_SOURCE_FILL_BUFFER ((gint)0x00000002) +#define QTMS_EVENT_SOURCE_PROCESSED_BUFFER ((gint)0x00000003) +#define QTMS_EVENT_SINK_PROCESS_BUFFER ((gint)0x00000004) +#define QTMS_EVENT_EFFECT_VOL_CHANGED ((gint)0x00000005) +#define QTMS_EVENT_EFFECT_GAIN_CHANGED ((gint)0x00000006) +#define QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED ((gint)0x00000007) +#define QTMS_EVENT_ROUTING_OUTPUT_CHANGED ((gint)0x00000008) +#define QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE ((gint)0x00000009) +#define QTMS_EVENT_RINGTONE_OPEN_COMPLETE ((gint)0x0000000A) +#define QTMS_EVENT_RINGTONE_PLAY_COMPLETE ((gint)0x0000000B) +#define QTMS_EVENT_RINGTONE_DEINIT_COMPLETE ((gint)0x0000000C) +#define QTMS_EVENT_DTMF_TONE_STARTED ((gint)0x0000000D) +#define QTMS_EVENT_DTMF_TONE_STOPPED ((gint)0x0000000E) +#define QTMS_EVENT_INBAND_TONE_STARTED ((gint)0x0000000F) +#define QTMS_EVENT_INBAND_TONE_STOPPED ((gint)0x00000010) // Stream states typedef gint QTMSStreamState; diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h Thu Jul 22 16:38:21 2010 +0100 @@ -19,7 +19,6 @@ #define QTMS_BUFFER_H #include -#include namespace QTMS { @@ -33,10 +32,14 @@ * @lib QTMSapi.lib * */ -class QTMSBuffer : public QObject +class QTMSBuffer { - Q_OBJECT public: + /* + * Destructor + */ + virtual ~QTMSBuffer() {} + /** * Return buffer type. * @@ -44,10 +47,11 @@ * Type of the buffer object (QTMS_BUFFER_MEMORY). * * @return - * QTMS_RESULT_SUCCESS if the operation was successful. + * QTMS_RESULT_SUCCESS if the operation was successful otherwise + * system error. * */ - virtual gint GetType(QTMSBufferType& buftype)=0; + virtual gint GetType(QTMSBufferType& buftype) = 0; /** * Returns time stamp of the buffer so that the framework can determine @@ -58,10 +62,11 @@ * Time stamp in microseconds. * * @return - * QTMS_RESULT_SUCCESS if the operation was successful. + * QTMS_RESULT_SUCCESS if the operation was successful otherwise + * system error. * */ - virtual gint GetTimeStamp(guint64& ts)=0; + virtual gint GetTimeStamp(guint64& ts) = 0; /** * Sets the time stamp on the Buffer so that the framework can determine @@ -72,10 +77,11 @@ * Time stamp in microseconds. * * @return - * QTMS_RESULT_SUCCESS if the operation was successful. + * QTMS_RESULT_SUCCESS if the operation was successful otherwise + * system error. * */ - virtual gint SetTimeStamp(const guint64 ts) =0; + virtual gint SetTimeStamp(const guint64 ts) = 0; /** * Returns size of data in the buffer. @@ -84,10 +90,11 @@ * Size of data in the buffer. * * @return - * QTMS_RESULT_SUCCESS if the operation was successful. + * QTMS_RESULT_SUCCESS if the operation was successful otherwise + * system error. * */ - virtual gint GetDataSize(guint& size)=0; + virtual gint GetDataSize(guint& size) = 0; /** * Set size of data in the buffer after filling in by the client. @@ -96,10 +103,11 @@ * Size of data in the buffer. * * @return - * QTMS_RESULT_SUCCESS if the operation was successful. + * QTMS_RESULT_SUCCESS if the operation was successful otherwise + * system error. * */ - virtual gint SetDataSize(const guint size)=0; + virtual gint SetDataSize(const guint size) = 0; /** * Return pointer to the memory location of the data associated with this @@ -109,10 +117,11 @@ * Pointer to the data stored in the buffer. * * @return - * QTMS_RESULT_SUCCESS if the operation was successful. + * QTMS_RESULT_SUCCESS if the operation was successful otherwise + * system error. * */ - virtual gint GetDataPtr(guint8*& bufptr) =0; + virtual gint GetDataPtr(guint8*& bufptr) = 0; }; } //namespace QTMS diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsink.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsink.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsink.h Thu Jul 22 16:38:21 2010 +0100 @@ -18,23 +18,20 @@ #ifndef QTMS_CLIENT_SINK_H #define QTMS_CLIENT_SINK_H +#include #include +#include #include -#include #include #include "qtmswrapperexport.h" // FORWARD DECLARATIONS namespace TMS { class TMSSink; -class TMSBuffer; } namespace QTMS { -// FORWARD DECLARATIONS -class QTMSBuffer; - /** * QTMSClientSink class * @@ -74,7 +71,7 @@ * Status of the operation. * */ - gint BufferProcessed(TMS::TMSBuffer* buffer); + gint BufferProcessed(QTMSBuffer* buffer); /** * Return sink type. @@ -91,7 +88,7 @@ virtual gint GetType(QTMSSinkType& sinktype); Q_SIGNALS: - void ProcessBuffer(const TMS::TMSBuffer* buffer); + void ProcessBuffer(const QTMSBuffer* buffer); protected: /** diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsource.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsource.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsclientsource.h Thu Jul 22 16:38:21 2010 +0100 @@ -18,15 +18,15 @@ #ifndef QTMS_CLIENT_SOURCE_H #define QTMS_CLIENT_SOURCE_H +#include #include +#include #include -#include #include "qtmswrapperexport.h" // FORWARD DECLARATIONS namespace TMS { class TMSSource; -class TMSBuffer; } namespace QTMS { @@ -68,7 +68,7 @@ * Status of the operation. * */ - gint BufferFilled(TMS::TMSBuffer& buffer); + gint BufferFilled(QTMSBuffer& buffer); /** * In the PUSH MODE, tell the source that the supplied buffer filled in @@ -83,7 +83,7 @@ * The buffer with audio data supplied by the client for playback. * */ - gint ProcessBuffer(TMS::TMSBuffer* buffer); + gint ProcessBuffer(QTMSBuffer* buffer); /** * PUSH MODE ONLY @@ -152,8 +152,8 @@ virtual gint GetType(QTMSSourceType& sourcetype); Q_SIGNALS: - void FillBuffer(TMS::TMSBuffer& buffer); - void BufferProcessed(const TMS::TMSBuffer* buffer, gint reason); + void FillBuffer(QTMSBuffer& buffer); + void BufferProcessed(const QTMSBuffer* buffer, gint reason); protected: /** diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h Thu Jul 22 16:38:21 2010 +0100 @@ -34,7 +34,6 @@ */ class QTMSEffect { - //Q_OBJECT public: /** * Return effect type. diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h Thu Jul 22 16:38:21 2010 +0100 @@ -125,7 +125,7 @@ QTMSFormat(); protected: - TMS::TMSFormat *iFormat; + TMS::TMSFormat* iFormat; }; } //namespace QTMS diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsringtone.h Thu Jul 22 16:38:21 2010 +0100 @@ -106,7 +106,7 @@ gint Stop(); /** - * Pause ring tone playback. + * Pause video ring tone playback. * * @return * QTMS_RESULT_SUCCESS if the operation was successful. diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h --- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsstream.h Thu Jul 22 16:38:21 2010 +0100 @@ -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,16 +381,34 @@ * 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 + * + * @param retrytime + * Indicates (in seconds) for how long TMS should retry stream + * initialization in case of an error. When stream initialization + * fails within specified retry time, TMS will return + * TMS_EVENT_STREAM_STATE_CHANGE_ERROR. If set to 0, TMS will return + * TMS_EVENT_STREAM_STATE_CHANGE_ERROR immediately without retrying. + * If set to -1, TMS will keep retrying until user cancels by calling + * either Stop() or Deinit(). * * @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(); + gint Init(gint retrytime = 0); /** * Trigger stream to transition to the paused state. @@ -407,10 +425,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(); @@ -431,14 +450,24 @@ * Upon stream's successful transition to the started state, the stream will * be in the QTMS_STREAM_STARTED state. * + * @param retrytime + * Indicates (in seconds) for how long TMS should attempt to start + * a stream in case of an error. When stream starting fails within + * specified retry time, TMS will return + * QTMS_EVENT_STREAM_STATE_CHANGE_ERROR. If set to 0, TMS will return + * QTMS_EVENT_STREAM_STATE_CHANGE_ERROR immediately without retrying. + * If set to -1, TMS will keep retrying until user cancels by calling + * either Stop() or Deinit(). + * * @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(); + gint Start(gint retrytime = 0); /** * Trigger stream to transition to the initialized state. @@ -453,8 +482,9 @@ * be in the QTMS_STREAM_INITIALIZED state. * * @return - * QTMS_RESULT_SUCCESS if stream successfully transitioned to the paused - * state. + * Common return codes: + * QTMS_RESULT_SUCCESS if stream successfully transitioned to the + * stopped state. * QTMS_RESULT_INVALID_STATE if stream is not in the * QTMS_STREAM_STARTED or QTMS_STREAM_PAUSED state. * diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtestmains60.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtestmains60.h Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef QTESTMAINS60 +#define QTESTMAINS60 + +#define QTEST_MAIN_S60(QTmsCsTest) \ +int main(int argc, char *argv[]) \ +{ \ +char *new_argv[3]; \ +QCoreApplication app(argc, argv); \ +\ +QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \ +QByteArray bytes = str.toAscii(); \ +\ +char arg1[] = "-o"; \ +\ +new_argv[0] = argv[0]; \ +new_argv[1] = arg1; \ +new_argv[2] = bytes.data(); \ +\ +QTmsCsTest tc; \ +return QTest::qExec(&tc, 3, new_argv); \ +} +#endif diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,1208 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: QTMS CS test +* +*/ +#include +#include +#include "qtestmains60.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +using namespace QTMS; + +_LIT8(KRTBeepSequence, "\x00\x11\x0A\x0A\x08\x73\x0A\x40\x28\x0A\xF7\ +\x05\xFC\x40\x64\x0A\x08\x40\x32\x0A\xF7\x06\x0B"); +_LIT16(KTestFile1, "c:\\data\\sounds\\digital\\test_8khz.wav"); + +class QTmsCsTest : public QObject + { +Q_OBJECT +private slots: + void initTestCase(); + void CSCallSetup(); + + void CreateUplink(); + void CreateDnlink(); + void CreateMicSource(); + void AddMicSourceToStream(); + void CreateModemSink(); + void AddModemSinkToStream(); + void CreateModemSource(); + void AddModemSourceToStream(); + void CreateSpeakerSink(); + void AddSpeakerSinkToStream(); + + void CreateStreamVol(); + void CreateStreamGain(); + + void InitUplink(); + void InitDnlink(); + + void StartUplink(); + void StopUplink(); + void StartDnlink(); + + void StreamVol(); + void StreamGain(); + // void StopDnlink(); + + void CreateGlobalVol(); + void CreateGlobalGain(); + void CreateRouting_data(); + void CreateRouting(); + + void CreateInband_data(); + void CreateInband(); + void CreateDnlinkDtmf(); + void CreateUplinkDtmf(); + + void CreateRingTone(); + + void InitRingTonePlayerFromProfiles(); + void PlayRingTone(); + void PauseRingTone(); + void MuteRingTone(); + void StopRingTone(); + void CloseRingTonePlayer(); + + void CloseUplink(); + void CloseDownlink(); + void cleanupTestCase(); +public slots: + //From TMSStreamObserver + void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event); + //From TMSClientSinkObserver + void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event); + //From TMSGlobalRoutingObserver + void GlobalRoutingEvent(const QTMSGlobalRouting& routing, + QTMSSignalEvent event, QTMSAudioOutput output); + //From TMSRingToneObserver + void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event); + //From TMSDTMFObserver + void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event); + //From TMSInbandToneObserver + void InbandToneEvent(const QTMSInbandTone& inbandtone, + QTMSSignalEvent event); + +private: + void InitRingToneSequencePlayer(); + void InitRingTonePlayerFromFile(); + void StopDnlink(); + void GetAvailableOutput(); + void DisplayDevice(QTMSAudioOutput device); + +private: + QTMSFactory *m_Factory; + QTMSCall *m_Call; + QTMSDTMF *m_Dnlnkdtmf; + QTMSDTMF *m_Uplnkdtmf; + QTMSStream *m_Dnlink; + QTMSStream *m_Uplink; + QTMSSource *m_MicSource; + QTMSSource *m_ModemSource; + QTMSSink *m_SpeakerSink; + QTMSSink *m_ModemSink; + QTMSEffect *m_Vol; + QTMSEffect *m_Gain; + QTMSEffect *m_GlobalVol; + QTMSEffect *m_GlobalGain; + QTMSGlobalRouting *m_Routing; + QTMSInbandTone *m_InbandTonePlayer; + QTMSRingTone *m_RingTonePlayer; + GString* m_RTStr; + GString* m_TTSStr; + QSignalSpy *m_UplinkSpy; + QSignalSpy *m_DnlinkSpy; + QSignalSpy *m_InbandSpy; + QSignalSpy *m_RoutingSpy; + OutputVector m_Availableoutputs; + + }; + +void QTmsCsTest::initTestCase() + { + qDebug("Start QTms CS tests"); + + g_setenv("G_SLICE", "always-malloc", 1); + m_Factory = NULL; + m_Call = NULL; + m_Dnlink = NULL; + m_Uplink = NULL; + m_MicSource = NULL; + m_ModemSource = NULL; + m_SpeakerSink = NULL; + m_ModemSink = NULL; + m_Vol = NULL; + m_Gain = NULL; + m_GlobalVol = NULL; + m_GlobalGain = NULL; + m_Routing = NULL; + m_Dnlnkdtmf = NULL; + m_Uplnkdtmf = NULL; + m_InbandTonePlayer = NULL; + m_RingTonePlayer = NULL; + m_UplinkSpy = NULL; + m_DnlinkSpy = NULL; + + QTMSVer *ver(NULL); + gint status; + status = QTMSFactory::CreateFactory(m_Factory, *ver); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qRegisterMetaType("QTMSSignalEvent"); + qRegisterMetaType("QTMSAudioOutput"); + + + } + +void QTmsCsTest::cleanupTestCase() + { + qDebug("End QTms tests"); + + StopDnlink(); + + m_Factory->DeleteSource(m_MicSource); + m_Factory->DeleteSource(m_ModemSource); + m_Factory->DeleteSink(m_ModemSink); + m_Factory->DeleteSink(m_SpeakerSink); + + m_Factory->DeleteDTMF(m_Dnlnkdtmf); + m_Factory->DeleteInbandTonePlayer(m_InbandTonePlayer); + m_Factory->DeleteRingTonePlayer(m_RingTonePlayer); + + m_Factory->DeleteEffect(m_Vol); + m_Factory->DeleteEffect(m_Gain); + m_Factory->DeleteEffect(m_GlobalVol); + m_Factory->DeleteEffect(m_GlobalGain); + + m_Factory->DeleteGlobalRouting(m_Routing); + + m_Call->DeleteStream(m_Uplink); + m_Call->DeleteStream(m_Dnlink); + + m_Factory->DeleteCall(m_Call); + + delete m_Factory; + + } + +void QTmsCsTest::CSCallSetup() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_Call) + { + gboolean issupported(FALSE); + m_Factory->IsCallTypeSupported(QTMS_CALL_CS, issupported); + QVERIFY(issupported == TRUE); + status = m_Factory->CreateCall(QTMS_CALL_CS, m_Call, 0); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTMSCallType calltype = m_Call->GetCallType(); + QVERIFY(calltype == QTMS_CALL_CS); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + +void QTmsCsTest::CreateUplink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_UplinkSpy = new QSignalSpy(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_UplinkSpy->isValid() ); + + //QCOMPARE(m_UplinkSpy->count(), 0 ); + + + connect(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + } + } + + void QTmsCsTest::CreateDnlink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_DnlinkSpy = new QSignalSpy(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_DnlinkSpy->isValid() ); + + //QCOMPARE(m_DnlinkSpy->count(), 0 ); + + connect(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + } + } + + + void QTmsCsTest::CreateModemSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_ModemSink) + { + status = m_Factory->CreateSink(QTMS_SINK_MODEM, m_ModemSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::CreateModemSource() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_ModemSource) + { + status = m_Factory->CreateSource(QTMS_SOURCE_MODEM, m_ModemSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddModemSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_ModemSink) + { + status = m_Uplink->AddSink(m_ModemSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddModemSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_ModemSource) + { + status = m_Dnlink->AddSource(m_ModemSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + + void QTmsCsTest::CreateMicSource() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_MicSource) + { + status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddMicSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_MicSource) + { + status = m_Uplink->AddSource(m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::CreateSpeakerSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_SpeakerSink) + { + status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::AddSpeakerSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_SpeakerSink) + { + status = m_Dnlink->AddSink(m_SpeakerSink); + qDebug("QTMS speaker sink added to stream"); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsCsTest::InitUplink() + { + QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 1 ); + } + + void QTmsCsTest::InitDnlink() + { + QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 1 ); + } + + void QTmsCsTest::StartUplink() + { + QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 2 ); + } + + void QTmsCsTest::StartDnlink() + { + QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 2 ); + } +void QTmsCsTest::StopUplink() + { + QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 3 ); + } + +void QTmsCsTest::StopDnlink() + { + QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 3 ); + } + +void QTmsCsTest::CloseUplink() + { + m_Uplink->Deinit(); + QTest::qWait(1000); + if (m_Uplink) + { + if (m_Gain) + { + QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS); + } + if (m_MicSource) + { + QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS); + } + if (m_ModemSink) + { + QVERIFY(m_Uplink->RemoveSink(m_ModemSink)== QTMS_RESULT_SUCCESS); + } + } + } + +void QTmsCsTest::CloseDownlink() + { + m_Dnlink->Deinit(); + QTest::qWait(1000); + if (m_Dnlink) + { + if (m_Vol) + { + QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS); + } + if (m_ModemSource) + { + QVERIFY(m_Dnlink->RemoveSource(m_ModemSource)== QTMS_RESULT_SUCCESS); + } + if (m_SpeakerSink) + { + QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS); + } + } + + } + +void QTmsCsTest::CreateStreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_Vol) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Vol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + if(m_Dnlink) + { + status = m_Dnlink->AddEffect(m_Vol); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + + } + } + +void QTmsCsTest::StreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + guint maxvol(0); + if (m_Vol) + { + status = static_cast (m_Vol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_Vol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_Vol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(vol,maxvol); + } + } + +void QTmsCsTest::CreateStreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_Gain) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Gain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + if(m_Uplink) + { + status = m_Uplink->AddEffect(m_Gain); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + } + +void QTmsCsTest::StreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Gain) + { + guint maxgain(0); + static_cast (m_Gain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_Gain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (m_Gain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(gain,maxgain); + } + + } + + +void QTmsCsTest::CreateGlobalVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalVol) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalVol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxvol(0); + status = static_cast(m_GlobalVol)->GetMaxLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast(m_GlobalVol)->SetLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_GlobalVol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(vol,maxvol); + + } + } + + +void QTmsCsTest::CreateGlobalGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalGain) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalGain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxgain(0); + static_cast(m_GlobalGain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast(m_GlobalGain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast(m_GlobalGain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(gain,maxgain); + + } + } + +void QTmsCsTest::CreateRouting_data() + { + gint status; + if (m_Factory && !m_Routing) + { + status = m_Factory->CreateGlobalRouting(m_Routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_RoutingSpy = new QSignalSpy(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent, + QTMSAudioOutput))); + + QVERIFY( m_RoutingSpy->isValid() ); + + // QCOMPARE(m_RoutingSpy->count(), 0 ); + connect(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent,QTMSAudioOutput)), + this, + SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent,QTMSAudioOutput))); + } + + //Populate data and test based on available output + GetAvailableOutput(); + } + +void QTmsCsTest::CreateRouting() + { + gint status(QTMS_RESULT_SUCCESS); + + QFETCH(QTMSAudioOutput, routing); + + if(m_Routing) + { + status = m_Routing->SetOutput(routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); +#ifndef __WINSCW__ + QTest::qWait(1000); + // QCOMPARE(m_RoutingSpy->count(), 1 ); +#endif + QTMSAudioOutput current; + status = m_Routing->GetOutput(current); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + QCOMPARE(routing,current); + + QTMSAudioOutput previous; + status = m_Routing->GetPreviousOutput(previous); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("Previous routing:"); + DisplayDevice(previous); + } + } + +void QTmsCsTest::GetAvailableOutput() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Routing) + { + status = m_Routing->GetAvailableOutputs(m_Availableoutputs); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qDebug("Available outputs: %d",m_Availableoutputs.size()); + std::vector::iterator iteroutputs = + m_Availableoutputs.begin(); + for (; iteroutputs < m_Availableoutputs.end(); iteroutputs++) + { + DisplayDevice(*iteroutputs); + } + } + } + +void QTmsCsTest::DisplayDevice(QTMSAudioOutput device) + { + QTest::addColumn("routing"); + + switch (device) + { + case QTMS_AUDIO_OUTPUT_NONE: + { + qDebug("none"); + QTest::newRow("None")<CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (m_Dnlnkdtmf) + { + QSignalSpy dtmfspy(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + QVERIFY( dtmfspy.isValid() ); + + //QCOMPARE(dtmfspy.count(), 0 ); + + connect(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this, + SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + dtmfstring = g_string_new("4723"); + status = m_Dnlnkdtmf->SetTone(dtmfstring); + + m_Dnlnkdtmf->Start(); + QTest::qWait(1000); + g_string_free(dtmfstring, TRUE); + //QCOMPARE(dtmfspy.count(), 1 ); + + status = m_Dnlnkdtmf->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(dtmfspy.count(), 2 ); + + } + } + +void QTmsCsTest::CreateUplinkDtmf() + { + gint status(QTMS_RESULT_SUCCESS); + GString* dtmfstring(NULL); + + status = m_Factory->CreateDTMF(QTMS_STREAM_UPLINK, m_Uplnkdtmf); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (m_Uplnkdtmf) + { + QSignalSpy uplinkdtmfspy(m_Uplnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + QVERIFY( uplinkdtmfspy.isValid() ); + + //QCOMPARE(dtmfspy.count(), 0 ); + + connect(m_Uplnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this, + SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + dtmfstring = g_string_new("4723"); + status = m_Uplnkdtmf->SetTone(dtmfstring); + + m_Uplnkdtmf->Start(); + QTest::qWait(1000); + g_string_free(dtmfstring, TRUE); + //QCOMPARE(dtmfspy.count(), 1 ); + + m_Uplnkdtmf->ContinueDTMFStringSending(FALSE); + + status = m_Uplnkdtmf->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(dtmfspy.count(), 2 ); + + } + } + + +void QTmsCsTest::CreateInband_data() + { + + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_InbandTonePlayer) + { + status = m_Factory->CreateInbandTonePlayer(m_InbandTonePlayer); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + m_InbandSpy = new QSignalSpy(m_InbandTonePlayer, + SIGNAL(InbandToneEvent(const QTMSInbandTone&,QTMSSignalEvent))); + + QVERIFY( m_InbandSpy->isValid() ); + + //QCOMPARE(m_InbandSpy->count(), 0 ); + connect(m_InbandTonePlayer, + SIGNAL(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent)), + this, + SLOT(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent))); + } + + QTest::addColumn("inbandTone"); + + QTest::newRow("Busy")<Start(inbandTone); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + // QCOMPARE(m_InbandSpy->count(), 1 ); + + status = m_InbandTonePlayer->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + // QCOMPARE(m_InbandSpy->count(), 2 ); + } + } + + +void QTmsCsTest::CreateRingTone() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory) + { + status = m_Factory->CreateRingTonePlayer(m_RingTonePlayer); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(m_RingTonePlayer, + SIGNAL(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent)), + this, + SLOT(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent))); + } + + } + +void QTmsCsTest::InitRingTonePlayerFromProfiles() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_DEFAULT); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + + } + +void QTmsCsTest::InitRingTonePlayerFromFile() + { + if (m_RingTonePlayer) + { + TBuf buf(KTestFile1); + m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length() * 2); + gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_FILE, m_RTStr); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + g_string_free(m_RTStr, TRUE); + m_RTStr = NULL; + } + + } + + +void QTmsCsTest::InitRingToneSequencePlayer() + { + if (m_RingTonePlayer) + { + TBuf8 buf(KRTBeepSequence); + m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length()); + gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_SEQUENCE, m_RTStr); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + g_string_free(m_RTStr, TRUE); + } + } + + +void QTmsCsTest::PlayRingTone() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Play(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + } + + +void QTmsCsTest::PauseRingTone() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Pause(); //pause audio for video RT only + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + } + + +void QTmsCsTest::StopRingTone() + { + if (m_RingTonePlayer) + { + gint status = m_RingTonePlayer->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + } + } + + +void QTmsCsTest::MuteRingTone() + { + if (m_RingTonePlayer) + { + m_RingTonePlayer->Mute(); + } + } + +void QTmsCsTest::CloseRingTonePlayer() + { + if (m_Factory && m_RingTonePlayer) + { + m_RingTonePlayer->Deinit(); + m_Factory->DeleteRingTonePlayer(m_RingTonePlayer); + } + } + +void QTmsCsTest::EffectsEvent(const QTMSEffect& tmseffect, + QTMSSignalEvent event) + { + QTMSEffectType effecttype; + const_cast (tmseffect).GetType(effecttype); + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + switch (effecttype) + { + case TMS_EFFECT_GLOBAL_VOL: + { + switch (event.type) + { + case TMS_EVENT_EFFECT_VOL_CHANGED: + qDebug("Global vol effect change"); + break; + default: + break; + } + } + break; + case TMS_EFFECT_GLOBAL_GAIN: + { + switch (event.type) + { + case TMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Global gain effect change"); + break; + default: + break; + } + } + break; + case TMS_EFFECT_VOLUME: + qDebug("Stream vol effect change"); + break; + case TMS_EFFECT_GAIN: + qDebug("Stream gain effect change"); + break; + default: + break; + } + } + + +void QTmsCsTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/, + QTMSSignalEvent event, QTMSAudioOutput /*output*/) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED: + qDebug("Available outputs changed"); + break; + case TMS_EVENT_ROUTING_OUTPUT_CHANGED: + qDebug("output changed"); + break; + case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: + qDebug("set output complete"); + break; + default: + break; + } + + } + +void QTmsCsTest::TMSStreamEvent(const QTMSStream& stream, + QTMSSignalEvent event) + { + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + gint streamId; + streamId = const_cast (stream).GetStreamId(); + qDebug("StreamID %d",streamId); + gint state; + state = const_cast (stream).GetState(); + QVERIFY(state == event.curr_state); + + switch (const_cast (stream).GetStreamType()) + { + case QTMS_STREAM_UPLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + { + qDebug("Uplink initialized "); + break; + } + case QTMS_STREAM_UNINITIALIZED: + qDebug("Uplink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Uplink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Uplink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + case QTMS_STREAM_DOWNLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + { + qDebug("Downlink initialized "); + break; + } + case QTMS_STREAM_UNINITIALIZED: + qDebug("Downlink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Downlink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Downlink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + default: + break; + } + } + + +void QTmsCsTest::RingtoneEvent(const QTMSRingTone& /*rt*/, + QTMSSignalEvent event) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case TMS_EVENT_RINGTONE_OPEN_COMPLETE: + qDebug("RT Open Complete"); + break; + case TMS_EVENT_RINGTONE_PLAY_COMPLETE: + qDebug("RT Play Complete"); + break; + default: + break; + } + } + + +void QTmsCsTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event) + { + if(event.reason!= QTMS_RESULT_SUCCESS) + { + QEXPECT_FAIL("","Need to be in call, expect uplink dtmf to fail", Continue); + } + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + switch (event.type) + { + case QTMS_EVENT_DTMF_TONE_STARTED: + qDebug("DTMF Started"); + break; + case QTMS_EVENT_DTMF_TONE_STOPPED: + qDebug("DTMF Stopped"); + break; + default: + break; + } + } + +void QTmsCsTest::InbandToneEvent(const QTMSInbandTone& /*inbandtone*/, + QTMSSignalEvent event) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_INBAND_TONE_STARTED: + qDebug("Inband Tone Started"); + break; + case QTMS_EVENT_INBAND_TONE_STOPPED: + qDebug("Inband Tone Stopped"); + break; + default: + break; + } + } + +QTEST_MAIN_S60(QTmsCsTest) + +#include "qtmscstest.moc" + diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,43 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Project specification file for tsrc. +# + + +CONFIG += qtestlib +TEMPLATE = app +TARGET = +TARGET.CAPABILITY = CAP_APPLICATION MultimediaDD +TARGET.EPOCALLOWDLLDATA = 1 + + +LIBS += -lqtmsapi \ + -llibglib \ + -llibgobject \ + -llibgmodule \ + -llibstdcpp + +DEPENDPATH += . +INCLUDEPATH += . + + +INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ + $$OS_LAYER_LIBC_SYSTEMINCLUDE \ + $$OS_LAYER_GLIB_SYSTEMINCLUDE \ + ..\..\..\qt_telephony_multimedia_service_api\inc + +# Input +HEADERS += qtestmains60.h +SOURCES += qtmscstest.cpp diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtestmains60.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtestmains60.h Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,39 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* +*/ + +#ifndef QTESTMAINS60 +#define QTESTMAINS60 + +#define QTEST_MAIN_S60(QTmsVoipTest) \ +int main(int argc, char *argv[]) \ +{ \ +char *new_argv[3]; \ +QCoreApplication app(argc, argv); \ +\ +QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \ +QByteArray bytes = str.toAscii(); \ +\ +char arg1[] = "-o"; \ +\ +new_argv[0] = argv[0]; \ +new_argv[1] = arg1; \ +new_argv[2] = bytes.data(); \ +\ +QTmsVoipTest tc; \ +return QTest::qExec(&tc, 3, new_argv); \ +} +#endif diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,1933 @@ +/* +* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: QTMS Voip test +* +*/ +#include +#include +#include "qtestmains60.h" + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include + + +// CONSTANTS +#define __TEST_CODE_COVERAGE__ + +using namespace QTMS; + +class QTmsVoipTest : public QObject + { +Q_OBJECT +private slots: + void initTestCase(); + void init(); + void cleanup(); + void SupportedFormats(); + void CreateRouting_data(); + void CreateRouting(); + void CreateGlobalVol(); + void CreateGlobalGain(); + void CreateFormat_data(); + void CreateFormat(); + void CreateStreamVol(); + void CreateStreamGain(); + void CreateDnlinkDtmf(); + void CreateBuffer(); + + void cleanupTestCase(); +public slots: + //From TMSClientSourceObserver + void FillBuffer(TMS::TMSBuffer& buffer); + void BufferProcessed(TMS::TMSBuffer* buffer, gint reason); + //From TMSClientSinkObserver + void ProcessBuffer(const TMS::TMSBuffer* buffer); + //From TMSStreamObserver + void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event); + //From TMSClientSinkObserver + void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event); + //From TMSGlobalRoutingObserver + void GlobalRoutingEvent(const QTMSGlobalRouting& routing, + QTMSSignalEvent event, QTMSAudioOutput output); + //From TMSRingToneObserver + void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event); + //From TMSDTMFObserver + void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event); + +private: + + void VoipCallSetup(); + + void SupportedUplinkFormats(); + void SupportedDnlinkFormats(); + + void CreateUplink(); + void CreateDnlink(); + + void CreateMicSource(); + void AddMicSourceToStream(); + + void CreateClientSink(); + void AddClientSinkToStream(); + + void CreateClientSource(); + void AddClientSourceToStream(); + + void CreateSpeakerSink(); + void AddSpeakerSinkToStream(); + + void InitUplink(); + void InitDnlink(); + + void DeinitUplink(); + void DeinitDnlink(); + + void StartUplink(); + void StopUplink(); + void StartDnlink(); + + void ResetUplnkFormat(); + void ResetDnlnkFormat(); + + void StreamVol(); + void StreamGain(); + + void CloseUplink(); + void CloseDownlink(); + + void DisplayFormat(QTMSFormatType format); + void StopDnlink(); + void CreateRingTone(); + + void ToggleVad(); + void GetVad(); + void ToggleCng(); + void GetCng(); + void TogglePlc(); + void GetPlc(); + + void SelectMinBitrate(); + void SelectMaxBitrate(); + void SetBitrate(guint bitrate); + void GetSupportedBitrates(); + gint GetSupportedBitrates(BitRateVector& aBrArr); + void GetBitrate(); + + void SetDnLinkG711ALAW(); + void SetDnLinkG711uLAW(); + void SetDnLinkILBC20MS(); + void SetDnLinkILBC30MS(); + void SetUpLinkG711ALAW(); + void SetUpLinkG711uLAW(); + void SetUpLinkILBC20MS(); + void SetUpLinkILBC30MS(); + void GetDnLinkG711Mode(); + void GetDnLinkILBCMode(); + void GetUpLinkG711Mode(); + void GetUpLinkILBCMode(); + + void DisplayDevice(QTMSAudioOutput device); + +private: + QTMSFactory *m_Factory; + QTMSCall *m_Call; + QTMSDTMF *m_Dnlnkdtmf; + QTMSStream *m_Dnlink; + QTMSStream *m_Uplink; + + QTMSSource *m_MicSource; + QTMSSource *m_ClientSource; + QTMSSink *m_ClientSink; + QTMSSink *m_SpeakerSink; + + QTMSFormat *m_G711EncFormatIntfc; + QTMSFormat *m_G711DecFormatIntfc; + QTMSFormat *m_G729EncFormatIntfc; + QTMSFormat *m_G729DecFormatIntfc; + QTMSFormat *m_ILBCEncFormatIntfc; + QTMSFormat *m_ILBCDecFormatIntfc; + QTMSFormat *m_AMRNBEncFormatIntfc; + QTMSFormat *m_AMRNBDecFormatIntfc; + QTMSFormat *m_PCM16EncFormatIntfc; + QTMSFormat *m_PCM16DecFormatIntfc; + + QTMS::FormatVector m_UplCodecs; + QTMS::FormatVector m_DnlCodecs; + + BitRateVector m_BitratesVector; + guint iBitrate; + + QTMSEffect *m_Vol; + QTMSEffect *m_Gain; + QTMSEffect *m_GlobalVol; + QTMSEffect *m_GlobalGain; + QTMSGlobalRouting *m_Routing; + + QTMSFormatType m_DnLinkCodec; + QTMSFormatType m_UpLinkCodec; + + QSignalSpy *m_UplinkSpy; + QSignalSpy *m_DnlinkSpy; + QSignalSpy *m_RoutingSpy; + + gboolean m_Vad; + gboolean m_Cng; + gboolean m_Plc; + + }; + +void QTmsVoipTest::initTestCase() + { + qDebug("Start QTms Voip tests"); + + g_setenv("G_SLICE", "always-malloc", 1); + + qRegisterMetaType("QTMSSignalEvent"); + qRegisterMetaType("QTMSAudioOutput"); + + } + +void QTmsVoipTest::cleanupTestCase() + { + qDebug("End QTms tests"); + } + +void QTmsVoipTest::init() + { + qDebug("****NEW TEST****"); + m_Factory = NULL; + m_Call = NULL; + m_Dnlink = NULL; + m_Uplink = NULL; + m_MicSource = NULL; + m_ClientSource = NULL; + m_SpeakerSink = NULL; + m_ClientSink = NULL; + m_Vol = NULL; + m_Gain = NULL; + m_GlobalVol = NULL; + m_GlobalGain = NULL; + m_Routing = NULL; + m_Dnlnkdtmf = NULL; + + m_G711EncFormatIntfc = NULL; + m_G711DecFormatIntfc = NULL; + m_G729EncFormatIntfc = NULL; + m_G729DecFormatIntfc = NULL; + m_ILBCEncFormatIntfc = NULL; + m_ILBCDecFormatIntfc = NULL; + m_AMRNBEncFormatIntfc = NULL; + m_AMRNBDecFormatIntfc = NULL; + m_PCM16EncFormatIntfc = NULL; + m_PCM16DecFormatIntfc = NULL; + + m_UplinkSpy = NULL; + m_DnlinkSpy = NULL; + + QTMSVer *ver(NULL); + gint status; + status = QTMSFactory::CreateFactory(m_Factory, *ver); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + VoipCallSetup(); + + CreateUplink(); + CreateDnlink(); + + CreateMicSource(); + AddMicSourceToStream(); + + CreateClientSink(); + AddClientSinkToStream(); + + CreateClientSource(); + AddClientSourceToStream(); + + CreateSpeakerSink(); + AddSpeakerSinkToStream(); + + } +void QTmsVoipTest::cleanup() + { + qDebug("****END TEST******"); + + ResetUplnkFormat(); + ResetDnlnkFormat(); + + CloseUplink(); + CloseDownlink(); + + if (m_MicSource) + m_Factory->DeleteSource(m_MicSource); + if (m_ClientSource) + m_Factory->DeleteSource(m_ClientSource); + if (m_ClientSink) + m_Factory->DeleteSink(m_ClientSink); + if (m_SpeakerSink) + m_Factory->DeleteSink(m_SpeakerSink); + + if (m_Dnlnkdtmf) + m_Factory->DeleteDTMF(m_Dnlnkdtmf); + + if (m_Vol) + m_Factory->DeleteEffect(m_Vol); + if (m_Gain) + m_Factory->DeleteEffect(m_Gain); + if (m_GlobalVol) + m_Factory->DeleteEffect(m_GlobalVol); + if (m_GlobalGain) + m_Factory->DeleteEffect(m_GlobalGain); + + if (m_Routing) + m_Factory->DeleteGlobalRouting(m_Routing); + + if (m_PCM16EncFormatIntfc) + m_Factory->DeleteFormat(m_PCM16EncFormatIntfc); + if (m_ILBCEncFormatIntfc) + m_Factory->DeleteFormat(m_ILBCEncFormatIntfc); + if (m_AMRNBEncFormatIntfc) + m_Factory->DeleteFormat(m_AMRNBEncFormatIntfc); + if (m_G711EncFormatIntfc) + m_Factory->DeleteFormat(m_G711EncFormatIntfc); + if (m_G729EncFormatIntfc) + m_Factory->DeleteFormat(m_G729EncFormatIntfc); + if (m_PCM16DecFormatIntfc) + m_Factory->DeleteFormat(m_PCM16DecFormatIntfc); + if (m_ILBCDecFormatIntfc) + m_Factory->DeleteFormat(m_ILBCDecFormatIntfc); + if (m_AMRNBDecFormatIntfc) + m_Factory->DeleteFormat(m_AMRNBDecFormatIntfc); + if (m_G711DecFormatIntfc) + m_Factory->DeleteFormat(m_G711DecFormatIntfc); + if (m_G729DecFormatIntfc) + m_Factory->DeleteFormat(m_G729DecFormatIntfc); + + if (m_Uplink) + m_Call->DeleteStream(m_Uplink); + if (m_Dnlink) + m_Call->DeleteStream(m_Dnlink); + + if (m_Call) + m_Factory->DeleteCall(m_Call); + + if (m_Factory) + delete m_Factory; + + } + +void QTmsVoipTest::VoipCallSetup() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_Call) + { + gboolean issupported(FALSE); + m_Factory->IsCallTypeSupported(QTMS_CALL_IP,issupported); + QVERIFY(issupported == TRUE); + status = m_Factory->CreateCall(QTMS_CALL_IP, m_Call, 0); + QVERIFY(status == QTMS_RESULT_SUCCESS); + guint ctxid; + m_Call->GetCallContextId(ctxid); + } + + } + +void QTmsVoipTest::SupportedFormats() + { + SupportedUplinkFormats(); + SupportedDnlinkFormats(); + } + +void QTmsVoipTest::SupportedUplinkFormats() + { + gint status(QTMS_RESULT_SUCCESS); + status = m_Factory->GetSupportedFormats(QTMS_STREAM_UPLINK,m_UplCodecs); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qDebug("Supported UPL codecs"); + std::vector::iterator codecs = m_UplCodecs.begin(); + QTMSFormatType fmttype; + for (; codecs < m_UplCodecs.end(); codecs++) + { + (*codecs)->GetType(fmttype); + DisplayFormat(fmttype); + } + gint size = m_UplCodecs.size(); + for (gint i = 0; i < size; i++) + { + codecs = m_UplCodecs.begin(); + m_Factory->DeleteFormat(*codecs); + m_UplCodecs.erase(codecs); + } + + } + +void QTmsVoipTest::SupportedDnlinkFormats() + { + gint status(QTMS_RESULT_SUCCESS); + status = m_Factory->GetSupportedFormats(QTMS_STREAM_DOWNLINK,m_DnlCodecs); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + qDebug("Supported DNL codecs"); + std::vector::iterator codecs = m_DnlCodecs.begin(); + QTMSFormatType fmttype; + for (; codecs < m_DnlCodecs.end(); codecs++) + { + (*codecs)->GetType(fmttype); + DisplayFormat(fmttype); + } + gint size = m_DnlCodecs.size(); + for (gint i = 0; i < size; i++) + { + codecs = m_DnlCodecs.begin(); + m_Factory->DeleteFormat(*codecs); + m_DnlCodecs.erase(codecs); + } + } + + +void QTmsVoipTest::DisplayFormat(QTMSFormatType format) + { + switch (format) + { + case QTMS_FORMAT_AMR: + qDebug("AMR-NB"); + break; + case QTMS_FORMAT_G711: + qDebug("G.711"); + break; + case QTMS_FORMAT_G729: + qDebug("G.729"); + break; + case QTMS_FORMAT_ILBC: + qDebug("iLBC"); + break; + case QTMS_FORMAT_PCM: + qDebug("PCM-16"); + break; + default: + break; + } + } + +void QTmsVoipTest::CreateUplink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink); + + m_UplinkSpy = new QSignalSpy(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_UplinkSpy->isValid() ); + + // QCOMPARE(m_UplinkSpy->count(), 0 ); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + connect(m_Uplink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + } + } + + void QTmsVoipTest::CreateDnlink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Call) + { + status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_DnlinkSpy = new QSignalSpy(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + + QVERIFY( m_DnlinkSpy->isValid() ); + + // QCOMPARE(m_DnlinkSpy->count(), 0 ); + + connect(m_Dnlink, + SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)), + this, + SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent))); + } + } + +void QTmsVoipTest::CreateClientSource() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory && !m_ClientSource) + { + status = m_Factory->CreateSource(QTMS_SOURCE_CLIENT, m_ClientSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + +void QTmsVoipTest::AddClientSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_ClientSource) + { + connect(static_cast (m_ClientSource), + SIGNAL(FillBuffer(TMS::TMSBuffer&)), this, + SLOT(FillBuffer(TMS::TMSBuffer&))); + status = m_Dnlink->AddSource(m_ClientSource); + +#ifdef __TEST_CODE_COVERAGE__ + QTMSSourceType st; + static_cast(m_ClientSource)->GetType(st); + gboolean enqueue(FALSE); + static_cast(m_ClientSource)->GetEnqueueMode(enqueue); + static_cast(m_ClientSource)->SetEnqueueMode(FALSE); + static_cast(m_ClientSource)->Flush(); +#endif //__TEST_CODE_COVERAGE__ + } + + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + + void QTmsVoipTest::CreateClientSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_ClientSink) + { + status = m_Factory->CreateSink(QTMS_SINK_CLIENT, m_ClientSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::AddClientSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_ClientSink) + { + connect(static_cast (m_ClientSink), + SIGNAL(ProcessBuffer(const TMS::TMSBuffer*)), this, + SLOT(ProcessBuffer(const TMS::TMSBuffer*))); + status = m_Uplink->AddSink(m_ClientSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + + + void QTmsVoipTest::CreateMicSource() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_MicSource) + { + status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::AddMicSourceToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Uplink && m_MicSource) + { + status = m_Uplink->AddSource(m_MicSource); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::CreateSpeakerSink() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_SpeakerSink) + { + status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::AddSpeakerSinkToStream() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Dnlink && m_SpeakerSink) + { + status = m_Dnlink->AddSink(m_SpeakerSink); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + } + + void QTmsVoipTest::InitUplink() + { + QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 1 ); + + GetSupportedBitrates(); + SelectMinBitrate(); + SelectMaxBitrate(); + GetBitrate(); + + ToggleVad(); + GetVad(); + + SetUpLinkG711ALAW(); + SetUpLinkG711uLAW(); + GetUpLinkG711Mode(); + + SetUpLinkILBC20MS(); + SetUpLinkILBC30MS(); + GetUpLinkILBCMode(); + + } + + void QTmsVoipTest::InitDnlink() + { + QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 1 ); + ToggleCng(); + GetCng(); + TogglePlc(); + GetPlc(); + + SetDnLinkG711ALAW(); + SetDnLinkG711uLAW(); + GetDnLinkG711Mode(); + + SetDnLinkILBC20MS(); + SetDnLinkILBC30MS(); + GetDnLinkILBCMode(); + + } + void QTmsVoipTest::DeinitUplink() + { + m_Uplink->Deinit(); + QTest::qWait(1000); + } + + void QTmsVoipTest::DeinitDnlink() + { + m_Dnlink->Deinit(); + QTest::qWait(1000); + } + + void QTmsVoipTest::StartUplink() + { + QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 2 ); + } + + void QTmsVoipTest::StartDnlink() + { + QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 2 ); + } +void QTmsVoipTest::StopUplink() + { +#ifdef __TEST_CODE_COVERAGE__ + QVERIFY(m_Uplink->Pause()== QTMS_RESULT_SUCCESS); + QTest::qWait(1000); +#endif //__TEST_CODE_COVERAGE__ + + QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_UplinkSpy->count(), 3 ); + } + +void QTmsVoipTest::StopDnlink() + { +#ifdef __TEST_CODE_COVERAGE__ + QVERIFY(m_Dnlink->Pause() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); +#endif //__TEST_CODE_COVERAGE__ + + QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(m_DnlinkSpy->count(), 3 ); + } + +void QTmsVoipTest::CloseUplink() + { + m_Uplink->Deinit(); + QTest::qWait(1000); + if (m_Uplink) + { + if (m_Gain) + { + QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS); + } + if (m_MicSource) + { + QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS); + } + if (m_ClientSink) + { + QVERIFY(m_Uplink->RemoveSink(m_ClientSink)== QTMS_RESULT_SUCCESS); + } + } + } + +void QTmsVoipTest::CloseDownlink() + { + m_Dnlink->Deinit(); + QTest::qWait(1000); + if (m_Dnlink) + { + if (m_Vol) + { + QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS); + } + if (m_ClientSource) + { + QVERIFY(m_Dnlink->RemoveSource(m_ClientSource)== QTMS_RESULT_SUCCESS); + } + if (m_SpeakerSink) + { + QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS); + } + } + + } + +void QTmsVoipTest::ResetUplnkFormat() + { + if (m_Uplink) + { + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_PCM: + m_Uplink->ResetFormat(m_PCM16EncFormatIntfc); + break; + case QTMS_FORMAT_AMR: + m_Uplink->ResetFormat(m_AMRNBEncFormatIntfc); + break; + case QTMS_FORMAT_G711: + m_Uplink->ResetFormat(m_G711EncFormatIntfc); + break; + case QTMS_FORMAT_G729: + m_Uplink->ResetFormat(m_G729EncFormatIntfc); + break; + case QTMS_FORMAT_ILBC: + m_Uplink->ResetFormat(m_ILBCEncFormatIntfc); + break; + default: + break; + } + } + + } + +void QTmsVoipTest::ResetDnlnkFormat() + { + if (m_Dnlink) + { + switch (m_DnLinkCodec) + { + case QTMS_FORMAT_PCM: + m_Dnlink->ResetFormat(m_PCM16DecFormatIntfc); + break; + case QTMS_FORMAT_AMR: + m_Dnlink->ResetFormat(m_AMRNBDecFormatIntfc); + break; + case QTMS_FORMAT_G711: + m_Dnlink->ResetFormat(m_G711DecFormatIntfc); + break; + case QTMS_FORMAT_G729: + m_Dnlink->ResetFormat(m_G729DecFormatIntfc); + break; + case QTMS_FORMAT_ILBC: + m_Dnlink->ResetFormat(m_ILBCDecFormatIntfc); + break; + default: + break; + } + } + } + +void QTmsVoipTest::CreateFormat_data() + { + QTest::addColumn("format"); + +#ifndef __WINSCW__ + QTest::newRow("G711")<CreateFormat(QTMS_FORMAT_G711, + m_G711DecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G711, + m_G711EncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_G711DecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_G711EncFormatIntfc); + qDebug("G.711 Set"); + + } + break; + case QTMS_FORMAT_G729: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729, + m_G729DecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729, + m_G729EncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_G729DecFormatIntfc); + setdecstatus = m_Uplink->SetFormat(m_G729EncFormatIntfc); + qDebug("G.729 Set"); + } + break; + case QTMS_FORMAT_ILBC: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC, + m_ILBCDecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC, + m_ILBCEncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_ILBCDecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_ILBCEncFormatIntfc); + qDebug("iLBC Set"); + } + break; + case QTMS_FORMAT_AMR: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR, + m_AMRNBDecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR, + m_AMRNBEncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_AMRNBDecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_AMRNBEncFormatIntfc); + qDebug("AMR-NB Set"); + } + break; + case QTMS_FORMAT_PCM: + { + decstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM, + m_PCM16DecFormatIntfc); + encstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM, + m_PCM16EncFormatIntfc); + setdecstatus = m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + setencstatus = m_Uplink->SetFormat(m_PCM16EncFormatIntfc); + qDebug("PCM-16 Set"); + } + break; + default: + break; + } + + QVERIFY(decstatus == QTMS_RESULT_SUCCESS); + QVERIFY(encstatus == QTMS_RESULT_SUCCESS); + QVERIFY(setdecstatus == QTMS_RESULT_SUCCESS); + QVERIFY(setencstatus == QTMS_RESULT_SUCCESS); + + InitUplink(); + InitDnlink(); + } + + +void QTmsVoipTest::ToggleVad() + { + //m_Vad = (m_Vad) ? EFalse : ETrue; + + m_Vad = ETrue; + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + static_cast (m_G711EncFormatIntfc)->SetVADMode( + m_Vad); + qDebug("G711 VAD set %d", m_Vad); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->SetVADMode( + m_Vad); + qDebug("G729 VAD set %d",m_Vad); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->SetVADMode( + m_Vad); + qDebug("iLBC VAD set %d",m_Vad); + break; + case QTMS_FORMAT_AMR: + //static_cast(iAMRNBEncFormatIntfc)->SetVADMode(m_Vad); + break; + case QTMS_FORMAT_PCM: + // Not supported; just for testing failing condition + //static_cast(iPCM16EncFormatIntfc)->SetVADMode(m_Vad); + break; + default: + break; + } + } + + +void QTmsVoipTest::GetVad() + { + gint status(QTMS_RESULT_SUCCESS); + gboolean vad = EFalse; + + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + status = static_cast (m_G711EncFormatIntfc)->GetVADMode( + vad); + qDebug("get G711 VAD: %d", vad); + break; + case QTMS_FORMAT_G729: + status = static_cast (m_G729EncFormatIntfc)->GetVADMode( + vad); + qDebug("get G729 VAD: %d", vad); + break; + case QTMS_FORMAT_ILBC: + status = static_cast (m_ILBCEncFormatIntfc)->GetVADMode( + vad); + qDebug("get iLBC VAD: %d", vad); + break; + default: + return; + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + // QVERIFY(vad == m_Vad); + + + } + +void QTmsVoipTest::ToggleCng() + { +// m_Cng = (m_Cng) ? EFalse : ETrue; + + m_Cng = ETrue; + switch (m_DnLinkCodec) + { + case QTMS_FORMAT_G711: + //case EG711_10MS: + static_cast (m_G711DecFormatIntfc)->SetCNG(m_Cng); + qDebug("G711 CNG set %d", m_Cng); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCDecFormatIntfc)->SetCNG(m_Cng); + qDebug("iLBC CNG set %d", m_Cng); + break; + default: + break; + } + } + + +void QTmsVoipTest::GetCng() + { + gint status; + gboolean cng = EFalse; + switch (m_DnLinkCodec) + { + case QTMS_FORMAT_G711: + status = static_cast(m_G711DecFormatIntfc)->GetCNG(cng); + qDebug("G711 CNG: %d", cng); + QVERIFY(status == QTMS_RESULT_SUCCESS); + break; + case QTMS_FORMAT_ILBC: + status = static_cast(m_ILBCDecFormatIntfc)->GetCNG(cng); + qDebug("iLBC CNG: %d", cng); + QVERIFY(status == QTMS_RESULT_SUCCESS); + break; + default: + break; + } + + // QVERIFY(cng == m_Cng); + + } + + +void QTmsVoipTest::TogglePlc() + { +// m_Plc = (m_Plc) ? EFalse : ETrue; + m_Plc = ETrue; + if (m_DnLinkCodec == QTMS_FORMAT_G711) + { + static_cast (m_G711DecFormatIntfc)->SetPlc(m_Plc); + qDebug("G711 PLC set %d",m_Plc ); + } + } + +void QTmsVoipTest::GetPlc() + { + gboolean plc = EFalse; + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711DecFormatIntfc)->GetPlc( + plc); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("G711 PLC: %d", plc); + // QVERIFY(plc == m_Plc); + } + } + + + +void QTmsVoipTest::SelectMinBitrate() + { + if (m_BitratesVector.size() > 0) + { + std::vector::iterator bitrate = m_BitratesVector.begin(); + iBitrate = *bitrate; + SetBitrate(iBitrate); + qDebug("BR set %d",iBitrate); + } + } + + +void QTmsVoipTest::SelectMaxBitrate() + { + if (m_BitratesVector.size() > 0) + { + iBitrate = m_BitratesVector.back(); + SetBitrate(iBitrate); + qDebug("BR set %d",iBitrate); + } + } + + +void QTmsVoipTest::SetBitrate(guint bitrate) + { + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + static_cast (m_G711EncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_AMR: + static_cast (m_AMRNBEncFormatIntfc)->SetBitRate( + bitrate); + qDebug("Set BR %d",bitrate); + break; + case QTMS_FORMAT_PCM: + default: + break; + } + } + + +void QTmsVoipTest::GetSupportedBitrates() + { + gint numOfItems(0); + m_BitratesVector.clear(); + gint status = GetSupportedBitrates(m_BitratesVector); + + numOfItems = m_BitratesVector.size(); + qDebug("BR Count %d", numOfItems); + std::vector::iterator itBitrates = m_BitratesVector.begin(); + for (; itBitrates < m_BitratesVector.end(); itBitrates++) + { + qDebug("BR %d", *itBitrates); + } + } + + +gint QTmsVoipTest::GetSupportedBitrates(BitRateVector& aBrArr) + { + gint status(QTMS_RESULT_SUCCESS); + + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + status = m_G711EncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_G729: + status = m_G729EncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_ILBC: + status = m_ILBCEncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_AMR: + status = m_AMRNBEncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + case QTMS_FORMAT_PCM: + // not supported, but test for correct error handling + //status = m_PCM16EncFormatIntfc->GetSupportedBitRates(aBrArr); + break; + default: + status = KErrNotSupported; + break; + } + + return status; + } + + +void QTmsVoipTest::GetBitrate() + { + guint bitrate; + switch (m_UpLinkCodec) + { + case QTMS_FORMAT_G711: + static_cast (m_G711EncFormatIntfc)->GetBitRate( + bitrate); + qDebug("G711 bitrate: %d", bitrate); + break; + case QTMS_FORMAT_G729: + static_cast (m_G729EncFormatIntfc)->GetBitRate( + bitrate); + qDebug("G729 bitrate: %d", bitrate); + break; + case QTMS_FORMAT_ILBC: + static_cast (m_ILBCEncFormatIntfc)->GetBitRate( + bitrate); + qDebug("iLBC bitrate: %d", bitrate); + break; + case QTMS_FORMAT_AMR: + static_cast (m_AMRNBEncFormatIntfc)->GetBitRate( + bitrate); + qDebug("AMR bitrate: %d", bitrate); + break; + case TMS_FORMAT_PCM: + default: + break; + } + } + + +void QTmsVoipTest::SetDnLinkG711ALAW() + { + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = static_cast (m_G711DecFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_ALAW); + qDebug("SetDnLinkG711ALAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL G.711 Mode Set: [aLaw]"); + } + } + + +void QTmsVoipTest::SetDnLinkG711uLAW() + { + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = static_cast (m_G711DecFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_MULAW); + qDebug("SetDnLinkG711uLAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL G.711 Mode Set: [uLaw]"); + } + } + + +void QTmsVoipTest::GetDnLinkG711Mode() + { + QTMSG711CodecMode mode; + if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711DecFormatIntfc)->GetMode( + mode); + qDebug("GetDnLinkG711Mode status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == TMS_G711_CODEC_MODE_MULAW) + { + qDebug("DNL G711 Mode: [uLaw]"); + } + else + { + qDebug("DNL G711 Mode: [aLaw]"); + } + } + } + + +void QTmsVoipTest::SetDnLinkILBC20MS() + { + if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCDecFormatIntfc)->SetMode( + TMS_ILBC_CODEC_MODE_20MS_FRAME); + qDebug("SetDnLinkILBC20MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL iLBC Mode Set: [20ms]"); + } + } + + +void QTmsVoipTest::SetDnLinkILBC30MS() + { + if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCDecFormatIntfc)->SetMode( + TMS_ILBC_CODEC_MODE_30MS_FRAME); + qDebug("SetDnLinkILBC30MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("DNL iLBC Mode Set: [30ms]"); + } + } + + +void QTmsVoipTest::GetDnLinkILBCMode() + { + QTMSILBCCodecMode mode; + if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCDecFormatIntfc)->GetMode( + mode); + qDebug("GetDnLinkILBCMode status %d",status); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME) + { + qDebug("DNL iLBC Mode: [30ms]"); + } + else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME) + { + qDebug("DNL iLBC Mode: [20ms]"); + } + } + } + +void QTmsVoipTest::SetUpLinkG711ALAW() + { + if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711EncFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_ALAW); + + qDebug("SetUpLinkG711ALAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL G.711 Mode Set: [aLaw]"); + } + } + +void QTmsVoipTest::SetUpLinkG711uLAW() + { + if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711EncFormatIntfc)->SetMode( + QTMS_G711_CODEC_MODE_MULAW); + qDebug("SetUpLinkG711uLAW status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL G.711 Mode Set: [uLaw]"); + } + } + +void QTmsVoipTest::GetUpLinkG711Mode() + { + QTMSG711CodecMode mode; + if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711) + { + gint status = + static_cast (m_G711EncFormatIntfc)->GetMode( + mode); + qDebug("GetUpLinkG711Mode status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == QTMS_G711_CODEC_MODE_MULAW) + { + qDebug("UPL G.711 Mode: [uLaw]"); + } + else if (mode == QTMS_G711_CODEC_MODE_ALAW) + { + qDebug("UPL G.711 Mode: [aLaw]"); + } + } + + } + + +void QTmsVoipTest::SetUpLinkILBC20MS() + { + if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCEncFormatIntfc)->SetMode( + QTMS_ILBC_CODEC_MODE_20MS_FRAME); + qDebug("SetUpLinkILBC20MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL iLBC Mode Set: [20ms]"); + } + } + + +void QTmsVoipTest::SetUpLinkILBC30MS() + { + if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCEncFormatIntfc)->SetMode( + QTMS_ILBC_CODEC_MODE_30MS_FRAME); + qDebug("SetUpLinkILBC30MS status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("UPL iLBC Mode Set: [30ms]"); + } + } + +void QTmsVoipTest::GetUpLinkILBCMode() + { + QTMSILBCCodecMode mode; + if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC) + { + gint status = + static_cast (m_ILBCEncFormatIntfc)->GetMode( + mode); + qDebug("GetUpLinkILBCMode status %d",status); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME) + { + qDebug("UPL iLBC Mode: [30ms]"); + } + else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME) + { + qDebug("UPL iLBC Mode: [20ms]"); + } + } + + } + + +void QTmsVoipTest::CreateStreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && m_Dnlink && !m_Vol) + { + m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc); + m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + + status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Vol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + if(m_Dnlink) + { + status = m_Dnlink->AddEffect(m_Vol); + } + QVERIFY(status == QTMS_RESULT_SUCCESS); + + InitDnlink(); + + StreamVol(); + + } + } + +void QTmsVoipTest::StreamVol() + { + gint status(QTMS_RESULT_SUCCESS); + guint maxvol(0); + if (m_Vol) + { + status = static_cast (m_Vol)->GetMaxLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + status = static_cast (m_Vol)->SetLevel(maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_Vol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(vol,maxvol); + } + } + +void QTmsVoipTest::CreateStreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && m_Uplink && !m_Gain) + { + + m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16EncFormatIntfc); + m_Uplink->SetFormat(m_PCM16EncFormatIntfc); + status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_Gain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + status = m_Uplink->AddEffect(m_Gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + InitUplink(); + + StreamGain(); + } + } + +void QTmsVoipTest::StreamGain() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Gain) + { + guint maxgain(0); + static_cast (m_Gain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + static_cast (m_Gain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast (m_Gain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QCOMPARE(gain,maxgain); + } + + } + +void QTmsVoipTest::CreateGlobalVol() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalVol) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalVol), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxvol(0); + status = static_cast(m_GlobalVol)->GetMaxLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global max vol %d",maxvol); + + status = static_cast(m_GlobalVol)->SetLevel( + maxvol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint vol(0); + status = static_cast (m_GlobalVol)->GetLevel(vol); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global vol %d",vol); + + QCOMPARE(vol,maxvol); + + } + } + + +void QTmsVoipTest::CreateGlobalGain() + { + gint status(QTMS_RESULT_SUCCESS); + + if (m_Factory && !m_GlobalGain) + { + status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + connect(static_cast (m_GlobalGain), + SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)), + this, + SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent))); + + guint maxgain(0); + static_cast(m_GlobalGain)->GetMaxLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global max gain %d",maxgain); + + static_cast(m_GlobalGain)->SetLevel(maxgain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + + guint gain(0); + static_cast(m_GlobalGain)->GetLevel(gain); + QVERIFY(status == QTMS_RESULT_SUCCESS); + qDebug("global gain %d",gain); + + QCOMPARE(gain,maxgain); + + } + } + +void QTmsVoipTest::CreateRouting_data() + { + + QTest::addColumn("routing"); + + QTest::newRow("Public")<CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc); + m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + + InitDnlink(); + StartDnlink(); + + status = m_Factory->CreateGlobalRouting(m_Routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); + + m_RoutingSpy = new QSignalSpy(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&, + QTMSSignalEvent, + QTMSAudioOutput))); + + QVERIFY( m_RoutingSpy->isValid() ); + + //QCOMPARE(m_RoutingSpy->count(), 0 ); + connect(m_Routing, + SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput)), + this, + SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput))); + } + + if(m_Routing) + { + status = m_Routing->SetOutput(routing); + QVERIFY(status == QTMS_RESULT_SUCCESS); +#ifndef __WINSCW__ + QTest::qWait(1000); + //QCOMPARE(m_RoutingSpy->count(), 1 ); +#endif + QTMSAudioOutput current; + status = m_Routing->GetOutput(current); + DisplayDevice(current); + + QVERIFY(status == QTMS_RESULT_SUCCESS); +#ifndef __WINSCW__ + QCOMPARE(routing,current); +#endif + StopDnlink(); + } + } + + +void QTmsVoipTest::DisplayDevice(QTMSAudioOutput device) + { + qDebug("Current Output:"); + + switch (device) + { + case QTMS_AUDIO_OUTPUT_NONE: + { + qDebug("none"); + } + break; + case QTMS_AUDIO_OUTPUT_PUBLIC: + { + qDebug("Public"); + } + break; + case QTMS_AUDIO_OUTPUT_PRIVATE: + { + qDebug("Private"); + } + break; + default: + break; + } + } + + +void QTmsVoipTest::CreateDnlinkDtmf() + { + gint status(QTMS_RESULT_SUCCESS); + GString* dtmfstring(NULL); + + if (m_Factory && m_Dnlink && !m_Dnlnkdtmf) + { + m_UpLinkCodec = QTMS_FORMAT_PCM; + m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc); + m_Dnlink->SetFormat(m_PCM16DecFormatIntfc); + + InitDnlink(); + + status = m_Factory->CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf); + + QVERIFY(status == QTMS_RESULT_SUCCESS); + + QSignalSpy dtmfspy(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + QVERIFY( dtmfspy.isValid() ); + + //QCOMPARE(dtmfspy.count(), 0 ); + + connect(m_Dnlnkdtmf, + SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this, + SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent))); + + dtmfstring = g_string_new("4723"); + status = m_Dnlnkdtmf->SetTone(dtmfstring); + + m_Dnlnkdtmf->Start(); + QTest::qWait(1000); + g_string_free(dtmfstring, TRUE); + //QCOMPARE(dtmfspy.count(), 1 ); + + status = m_Dnlnkdtmf->Stop(); + QVERIFY(status == QTMS_RESULT_SUCCESS); + QTest::qWait(1000); + //QCOMPARE(dtmfspy.count(), 2 ); + } + } + +void QTmsVoipTest::CreateRingTone() + { + + } + + +void QTmsVoipTest::CreateBuffer() + { + gint status(QTMS_RESULT_SUCCESS); + if (m_Factory) + { + QTMSBuffer* qtmsbuffer(NULL); + QTMSBufferType buftype(QTMS_BUFFER_MEMORY); + guint size(100); + status = m_Factory->CreateBuffer(QTMS_BUFFER_MEMORY, + size, qtmsbuffer); + QVERIFY(status == QTMS_RESULT_SUCCESS); + if (qtmsbuffer) + { + qtmsbuffer->GetType(buftype); + qtmsbuffer->GetDataSize(size); + qtmsbuffer->SetDataSize(size); + guint8* pbuf(NULL); + qtmsbuffer->GetDataPtr(pbuf); + guint64 ts(0); + qtmsbuffer->GetTimeStamp(ts); + qtmsbuffer->SetTimeStamp(ts); + m_Factory->DeleteBuffer(qtmsbuffer); + } + } + } + + +void QTmsVoipTest::FillBuffer(TMS::TMSBuffer& buffer) + { + //TODO: add loopback test and file playback +#ifdef __TEST_CODE_COVERAGE__ + if(m_ClientSource) + { + static_cast (m_ClientSource)->BufferFilled( + buffer); + } +#endif + + } + +void QTmsVoipTest::BufferProcessed(TMS::TMSBuffer* /*buffer*/, gint /*reason*/) + { + } + +void QTmsVoipTest::ProcessBuffer(const TMS::TMSBuffer* buffer) + { + //TODO: add loopback test +#ifdef __TEST_CODE_COVERAGE__ + TMS::TMSBuffer* recBuf(NULL); + recBuf = const_cast (buffer); + if(m_ClientSink) + { + static_cast (m_ClientSink)->BufferProcessed( + recBuf); + } +#endif + } + + + +void QTmsVoipTest::EffectsEvent(const QTMSEffect& tmseffect, + QTMSSignalEvent event) + { + QTMSEffectType effecttype; + const_cast (tmseffect).GetType(effecttype); + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + switch (effecttype) + { + case QTMS_EFFECT_GLOBAL_VOL: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_VOL_CHANGED: + qDebug("Global vol effect change"); + break; + default: + break; + } + } + break; + case QTMS_EFFECT_GLOBAL_GAIN: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Global gain effect change"); + break; + default: + break; + } + } + break; + case QTMS_EFFECT_VOLUME: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Stream vol effect change"); + break; + default: + break; + } + } + break; + case QTMS_EFFECT_GAIN: + { + switch (event.type) + { + case QTMS_EVENT_EFFECT_GAIN_CHANGED: + qDebug("Stream gain effect change"); + break; + default: + break; + } + } + break; + default: + break; + } + } + + + +void QTmsVoipTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/, + QTMSSignalEvent event, QTMSAudioOutput /*output*/) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED: + qDebug("Available outputs changed"); + break; + case QTMS_EVENT_ROUTING_OUTPUT_CHANGED: + qDebug("output changed"); + break; + case QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE: + qDebug("set output complete"); + break; + default: + break; + } + + } + +void QTmsVoipTest::TMSStreamEvent(const QTMSStream& stream, + QTMSSignalEvent event) + { + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + + gint streamId; + streamId = const_cast (stream).GetStreamId(); + qDebug("StreamID %d",streamId); + gint state; + state = const_cast (stream).GetState(); + QVERIFY(state == event.curr_state); + + switch (const_cast (stream).GetStreamType()) + { + case QTMS_STREAM_UPLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + { + qDebug("Uplink initialized "); + break; + } + case QTMS_STREAM_UNINITIALIZED: + qDebug("Uplink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Uplink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Uplink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + case QTMS_STREAM_DOWNLINK: + { + switch (event.type) + { + case QTMS_EVENT_STREAM_STATE_CHANGED: + { + switch (event.curr_state) + { + case QTMS_STREAM_INITIALIZED: + qDebug("Downlink initialized "); + break; + case QTMS_STREAM_UNINITIALIZED: + qDebug("Downlink uninitialized "); + break; + case QTMS_STREAM_PAUSED: + qDebug("Downlink paused "); + break; + case QTMS_STREAM_STARTED: + qDebug("Downlink started "); + break; + default: + break; + } + break; + } + default: + break; + } + break; + } + default: + break; + } + } + + +void QTmsVoipTest::RingtoneEvent(const QTMSRingTone& /*rt*/, + QTMSSignalEvent event) + { + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_RINGTONE_OPEN_COMPLETE: + qDebug("RT Open Complete"); + break; + case QTMS_EVENT_RINGTONE_PLAY_COMPLETE: + qDebug("RT Play Complete"); + break; + default: + break; + } + } + + +void QTmsVoipTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event) + { + + QVERIFY(event.reason == QTMS_RESULT_SUCCESS); + switch (event.type) + { + case QTMS_EVENT_DTMF_TONE_STARTED: + qDebug("DTMF Started"); + break; + case QTMS_EVENT_DTMF_TONE_STOPPED: + qDebug("DTMF Stopped"); + break; + default: + break; + } + } + + +QTEST_MAIN_S60(QTmsVoipTest) + +#include "qtmsvoiptest.moc" + diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,42 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: +# Project specification file for tsrc. +# + +TEMPLATE = app +TARGET = +QT += testlib + + +TARGET.CAPABILITY = CAP_APPLICATION MultimediaDD +TARGET.EPOCALLOWDLLDATA = 1 + + +LIBS += -lqtmsapi \ + -llibglib \ + -llibgobject \ + -llibgmodule \ + -llibstdcpp + +DEPENDPATH += . +INCLUDEPATH += . + +INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ + $$OS_LAYER_LIBC_SYSTEMINCLUDE \ + $$OS_LAYER_GLIB_SYSTEMINCLUDE \ + ..\..\..\qt_telephony_multimedia_service_api\inc +# Input +HEADERS += qtestmains60.h +SOURCES += qtmsvoiptest.cpp diff -r 3b7506f63335 -r f3d2589f22d6 mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/tsrc.pro --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/tsrc.pro Thu Jul 22 16:38:21 2010 +0100 @@ -0,0 +1,26 @@ +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "Eclipse Public License v1.0" +# which accompanies this distribution, and is available +# at the URL "http://www.eclipse.org/legal/epl-v10.html". +# +# Initial Contributors: +# Nokia Corporation - initial contribution. +# +# Contributors: +# +# Description: + +#include + +TEMPLATE = subdirs + +BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " + + +SUBDIRS = qtmscstest \ + qtmsvoiptest + + +SYMBIAN_PLATFORMS = DEFAULT diff -r 3b7506f63335 -r f3d2589f22d6 mpx/Conf/mpx.confml Binary file mpx/Conf/mpx.confml has changed diff -r 3b7506f63335 -r f3d2589f22d6 mpx/cenrep/101FFCD2.txt Binary file mpx/cenrep/101FFCD2.txt has changed diff -r 3b7506f63335 -r f3d2589f22d6 mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp --- a/mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/collectionframework/collectionserver/src/mpxcollectionserver.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -72,8 +72,8 @@ CleanupStack::PushL(server); RProcess::Rendezvous(KErrNone); CActiveScheduler::Start(); + CleanupStack::PopAndDestroy(server); CActiveScheduler::Install(NULL); - CleanupStack::PopAndDestroy(server); CleanupStack::PopAndDestroy(scheduler); } @@ -117,8 +117,8 @@ // void CMPXCollectionServer::ConstructL() { + StartL(KMPXCollectionServerName); iEngine = CMPXCollectionEngine::NewL(); - StartL(KMPXCollectionServerName); } // ---------------------------------------------------------------------------- diff -r 3b7506f63335 -r f3d2589f22d6 mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp --- a/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -38,7 +38,8 @@ // CONSTANTS const TInt KIncrementalFetchSize = 400; -const TInt KIncrementalDelay = 2000000; + +const TInt KIncrementalDelay = 250000; // ----------------------------------------------------------------------------- // Two-phased constructor. @@ -1256,6 +1257,7 @@ if( changeType == EMPXItemDeleted ) { refresh = ETrue; + MPX_DEBUG1("CMPXCollectionPlaylist::DoHandleCollectionChangeMessageL -- current item deleted"); } // Modified else if( changeType == EMPXItemModified ) @@ -1333,11 +1335,12 @@ } } - if (iAutoPlaylist && refresh) + // update playlist immediately when item is deleted in order to detect deletion of the last item in the playlist + if (iAutoPlaylist && refresh) { // For autoplaylist, affected by the event. // Path clip will never happen for autoplaylist - if (changeType == EMPXItemDeleted) + if ( changeType == EMPXItemDeleted ) { // item deleted in the autoplaylist, update the iPath to remove the item // auso update iItemIndexes and iItemIndex diff -r 3b7506f63335 -r f3d2589f22d6 mpx/commonframework/common/src/mpxpluginmonitor.cpp --- a/mpx/commonframework/common/src/mpxpluginmonitor.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/commonframework/common/src/mpxpluginmonitor.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -145,8 +145,11 @@ MPX_DEBUG3("CMPXPluginMonitor::RunError interface id 0x%08x, error", iInterfaceUid.iUid, aError); // Restart observer - iECs.NotifyOnChange(iStatus); - SetActive(); + if ( !IsActive() ) + { + iECs.NotifyOnChange(iStatus); + SetActive(); + } return KErrNone; } diff -r 3b7506f63335 -r f3d2589f22d6 mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h --- a/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h Thu Jul 22 16:38:21 2010 +0100 @@ -192,13 +192,6 @@ inline TProcessId LastActiveProcessId() const; /** - * Retursn last inactive process id - * - * @return process id of last inactive process - */ - inline TProcessId LastInactiveProcessId() const; - - /** * Initializes the player with a song in the collection * * @param aCollectionPath collection path diff -r 3b7506f63335 -r f3d2589f22d6 mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl --- a/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl Thu Jul 22 16:38:21 2010 +0100 @@ -156,15 +156,6 @@ } // ---------------------------------------------------------------------------- -// Return last inactive process id -// ---------------------------------------------------------------------------- -// -inline TProcessId CMPXPlaybackEngine::LastInactiveProcessId() const - { - return iLastInactiveProcess; - } - -// ---------------------------------------------------------------------------- // CPlaybackCallbackReflector constructor // ---------------------------------------------------------------------------- // diff -r 3b7506f63335 -r f3d2589f22d6 mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp --- a/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -530,12 +530,6 @@ iLastActiveProcess = aCmd.ValueTObjectL( KMPXCommandPlaybackGeneralClientPid); } - else if (EPbCmdStop == cmd) - { - ASSERT(aCmd.IsSupported(KMPXCommandPlaybackGeneralClientPid)); - iLastInactiveProcess = aCmd.ValueTObjectL( - KMPXCommandPlaybackGeneralClientPid); - } TInt data(0); if (aCmd.IsSupported(KMPXCommandPlaybackGeneralData)) { @@ -651,6 +645,7 @@ break; case EPbPropertyMute: MPX_DEBUG2( "CMPXPlaybackEngine::SetL EPbPropertyMute %d", aValue ); + iProperties[EPbPropertyMute] = aValue; // set now, needed when EPSetComplete is converted to EPropertyChanged if ( iPluginHandler->Plugin() ) { PluginL()->SetL( aProperty, aValue ); @@ -1134,14 +1129,12 @@ } case EPMuteChanged: { - if ( iProperties[EPbPropertyMute] != aData ) - { - iProperties[EPbPropertyMute] = aData; - iClientList->SendMsgL( - TMPXPlaybackMessage(TMPXPlaybackMessage::EPropertyChanged, + // property changed broadcast message after successful return from plugins + iProperties[EPbPropertyMute] = aData; + iClientList->SendMsgL( + TMPXPlaybackMessage(TMPXPlaybackMessage::EPropertyChanged, EPbPropertyMute, iProperties[EPbPropertyMute])); - } break; } case EPPositionChanged: diff -r 3b7506f63335 -r f3d2589f22d6 mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp --- a/mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserver.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -72,8 +72,8 @@ CleanupStack::PushL(server); RProcess::Rendezvous(KErrNone); CActiveScheduler::Start(); + CleanupStack::PopAndDestroy(server); CActiveScheduler::Install(NULL); - CleanupStack::PopAndDestroy(server); CleanupStack::PopAndDestroy(scheduler); } diff -r 3b7506f63335 -r f3d2589f22d6 mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp --- a/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -475,10 +475,6 @@ CMPXCommand* cmd( NULL ); ::NewFromMessageL(aMessage, 1, cmd); CleanupStack::PushL(cmd); - if (aMessage.Int0()) - { // aSync command - SetAsync(aMessage); - } // else sync command iPlayer->CommandL(*cmd, *iMessageQueue); CleanupStack::PopAndDestroy(cmd); break; diff -r 3b7506f63335 -r f3d2589f22d6 mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp --- a/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -386,6 +386,7 @@ TPtr8 ptr = buf->Ptr(0); if (asyncVar) { // async request + MPX_DEBUG1("CMPXPlaybackUtility::CommandL asynchronous command"); ASSERT(aCallback); // callback must be provided for asynchronous command // Increase reference count on command ownership transferred CMPXCommand* ref = CMPXCommand::NewL(aCmd); diff -r 3b7506f63335 -r f3d2589f22d6 qtms/SIS/QTMS_udeb_STUB_SIS.bat --- a/qtms/SIS/QTMS_udeb_STUB_SIS.bat Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/SIS/QTMS_udeb_STUB_SIS.bat Thu Jul 22 16:38:21 2010 +0100 @@ -1,5 +1,5 @@ rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). rem All rights reserved. rem This component and the accompanying materials are made available rem under the terms of "Eclipse Public License v1.0" @@ -11,7 +11,7 @@ rem rem Contributors: rem -rem Description: GStreamer SisStub +rem Description: Create QTMS UDEB SIS package rem @echo off @@ -31,16 +31,12 @@ echo - Copy dlls [udeb]: copy %EPOCROOT%epoc32\release\armv5\udeb\qtmsapi.dll . - - if errorlevel == 1 goto END_ERROR :CALL_ELFTRAIN echo - Updating Version No [10.1] (calling elftran) call elftran.exe -version 10.1 qtmsapi.dll - - :MAKESIS makesis ..\SIS\qtms.pkg ..\SIS\qtms.sis signsis ..\SIS\qtms.sis ..\SIS\qtms.sisx rd.crt rd.key @@ -51,8 +47,6 @@ echo - remove the copied dlls from current folder del qtmsapi.dll - - goto END :END_ERROR diff -r 3b7506f63335 -r f3d2589f22d6 qtms/SIS/qtms.pkg --- a/qtms/SIS/qtms.pkg Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/SIS/qtms.pkg Thu Jul 22 16:38:21 2010 +0100 @@ -1,5 +1,5 @@ ; -; Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +; Copyright (c) 2010 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" @@ -31,5 +31,5 @@ :"Nokia" ;Files To Copy... -"/epoc32/release/armv5/udeb/qtmsapi.dll" -"!:/sys/bin/qtmsapi.dll" +"/epoc32/release/armv5/udeb/qtmsapi.dll"-"!:/sys/bin/qtmsapi.dll" diff -r 3b7506f63335 -r f3d2589f22d6 qtms/bwins/qtmsu.def --- a/qtms/bwins/qtmsu.def Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/bwins/qtmsu.def Thu Jul 22 16:38:21 2010 +0100 @@ -9,19 +9,19 @@ ?qt_metacall@QTMSClientSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 8 NONAME ; int QTMS::QTMSClientSource::qt_metacall(enum QMetaObject::Call, int, void * *) ?trUtf8@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 9 NONAME ; class QString QTMS::QTMSVolumeEffect::trUtf8(char const *, char const *, int) ?trUtf8@QTMSG711Format@QTMS@@SA?AVQString@@PBD0H@Z @ 10 NONAME ; class QString QTMS::QTMSG711Format::trUtf8(char const *, char const *, int) - ?Start@QTMSStream@QTMS@@QAEHXZ @ 11 NONAME ; int QTMS::QTMSStream::Start(void) - ??_EQTMSGlobalRouting@QTMS@@UAE@I@Z @ 12 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(unsigned int) - ?metaObject@QTMSGlobalRouting@QTMS@@UBEPBUQMetaObject@@XZ @ 13 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalRouting::metaObject(void) const - ?SetPlc@QTMSG711Format@QTMS@@QAEHH@Z @ 14 NONAME ; int QTMS::QTMSG711Format::SetPlc(int) - ?BufferProcessed@QTMSClientSource@QTMS@@IAEXPBVTMSBuffer@TMS@@H@Z @ 15 NONAME ; void QTMS::QTMSClientSource::BufferProcessed(class TMS::TMSBuffer const *, int) - ?AddSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 16 NONAME ; int QTMS::QTMSStream::AddSink(class QTMS::QTMSSink *) - ?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 17 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *, int) - ??_EQTMSG729Format@QTMS@@UAE@I@Z @ 18 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(unsigned int) - ?qt_metacast@QTMSClientSink@QTMS@@UAEPAXPBD@Z @ 19 NONAME ; void * QTMS::QTMSClientSink::qt_metacast(char const *) - ?tr@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 20 NONAME ; class QString QTMS::QTMSG729Format::tr(char const *, char const *) - ??_EQTMSSpeakerSink@QTMS@@UAE@I@Z @ 21 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(unsigned int) - ?getStaticMetaObject@QTMSInbandTone@QTMS@@SAABUQMetaObject@@XZ @ 22 NONAME ; struct QMetaObject const & QTMS::QTMSInbandTone::getStaticMetaObject(void) - ??0QTMSGainEffect@QTMS@@IAE@XZ @ 23 NONAME ; QTMS::QTMSGainEffect::QTMSGainEffect(void) + ??_EQTMSGlobalRouting@QTMS@@UAE@I@Z @ 11 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(unsigned int) + ?metaObject@QTMSGlobalRouting@QTMS@@UBEPBUQMetaObject@@XZ @ 12 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalRouting::metaObject(void) const + ?SetPlc@QTMSG711Format@QTMS@@QAEHH@Z @ 13 NONAME ; int QTMS::QTMSG711Format::SetPlc(int) + ?AddSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 14 NONAME ; int QTMS::QTMSStream::AddSink(class QTMS::QTMSSink *) + ?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 15 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *, int) + ??_EQTMSG729Format@QTMS@@UAE@I@Z @ 16 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(unsigned int) + ?Deinit@QTMSRingTone@QTMS@@QAEHXZ @ 17 NONAME ; int QTMS::QTMSRingTone::Deinit(void) + ?qt_metacast@QTMSClientSink@QTMS@@UAEPAXPBD@Z @ 18 NONAME ; void * QTMS::QTMSClientSink::qt_metacast(char const *) + ?tr@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 19 NONAME ; class QString QTMS::QTMSG729Format::tr(char const *, char const *) + ??_EQTMSSpeakerSink@QTMS@@UAE@I@Z @ 20 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(unsigned int) + ?getStaticMetaObject@QTMSInbandTone@QTMS@@SAABUQMetaObject@@XZ @ 21 NONAME ; struct QMetaObject const & QTMS::QTMSInbandTone::getStaticMetaObject(void) + ??0QTMSGainEffect@QTMS@@IAE@XZ @ 22 NONAME ; QTMS::QTMSGainEffect::QTMSGainEffect(void) + ?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 23 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *) ?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0H@Z @ 24 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *, int) ?GetType@QTMSGlobalGainEffect@QTMS@@UAEHAAH@Z @ 25 NONAME ; int QTMS::QTMSGlobalGainEffect::GetType(int &) ??1QTMSInbandTone@QTMS@@UAE@XZ @ 26 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(void) @@ -37,352 +37,352 @@ ?getStaticMetaObject@QTMSGlobalVolEffect@QTMS@@SAABUQMetaObject@@XZ @ 36 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalVolEffect::getStaticMetaObject(void) ??0QTMSModemSource@QTMS@@IAE@XZ @ 37 NONAME ; QTMS::QTMSModemSource::QTMSModemSource(void) ?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 38 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *) - ?GetVADMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 39 NONAME ; int QTMS::QTMSILBCFormat::GetVADMode(int &) - ?qt_metacast@QTMSDTMF@QTMS@@UAEPAXPBD@Z @ 40 NONAME ; void * QTMS::QTMSDTMF::qt_metacast(char const *) - ??_EQTMSCall@QTMS@@UAE@I@Z @ 41 NONAME ; QTMS::QTMSCall::~QTMSCall(unsigned int) - ?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 42 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *) - ?SetMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 43 NONAME ; int QTMS::QTMSILBCFormat::SetMode(int) - ?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 44 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *, int) - ?GetVADMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 45 NONAME ; int QTMS::QTMSG711Format::GetVADMode(int &) - ?staticMetaObject@QTMSDTMF@QTMS@@2UQMetaObject@@B @ 46 NONAME ; struct QMetaObject const QTMS::QTMSDTMF::staticMetaObject - ??0QTMSMicSource@QTMS@@IAE@XZ @ 47 NONAME ; QTMS::QTMSMicSource::QTMSMicSource(void) - ?GetPreviousOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 48 NONAME ; int QTMS::QTMSGlobalRouting::GetPreviousOutput(int &) - ??1QTMSGainEffect@QTMS@@UAE@XZ @ 49 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(void) - ?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 50 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *) - ?EffectsEvent@QTMSGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 51 NONAME ; void QTMS::QTMSGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) - ?qt_metacast@QTMSILBCFormat@QTMS@@UAEPAXPBD@Z @ 52 NONAME ; void * QTMS::QTMSILBCFormat::qt_metacast(char const *) - ?TMSStreamEvent@QTMSStream@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 53 NONAME ; void QTMS::QTMSStream::TMSStreamEvent(class QTMS::QTMSStream const &, struct QTMS::QTMSSignalEvent) - ??1QTMSModemSink@QTMS@@UAE@XZ @ 54 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(void) - ?metaObject@QTMSVolumeEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 55 NONAME ; struct QMetaObject const * QTMS::QTMSVolumeEffect::metaObject(void) const - ??_EQTMSClientSink@QTMS@@UAE@I@Z @ 56 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(unsigned int) - ?qt_metacast@QTMSModemSink@QTMS@@UAEPAXPBD@Z @ 57 NONAME ; void * QTMS::QTMSModemSink::qt_metacast(char const *) - ??1QTMSClientSource@QTMS@@UAE@XZ @ 58 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(void) - ?qt_metacall@QTMSGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 59 NONAME ; int QTMS::QTMSGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *) - ?CreateSource@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSource@2@@Z @ 60 NONAME ; int QTMS::QTMSFactory::CreateSource(int, class QTMS::QTMSSource * &) - ?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 61 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *) - ?qt_metacall@QTMSGlobalVolEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 62 NONAME ; int QTMS::QTMSGlobalVolEffect::qt_metacall(enum QMetaObject::Call, int, void * *) - ?GetLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 63 NONAME ; int QTMS::QTMSGlobalGainEffect::GetLevel(unsigned int &) - ?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 64 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *, int) - ?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *) - ?GetMaxLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 66 NONAME ; int QTMS::QTMSGlobalGainEffect::GetMaxLevel(unsigned int &) - ?RemoveSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 67 NONAME ; int QTMS::QTMSStream::RemoveSource(class QTMS::QTMSSource *) - ?DTMFEvent@QTMSDTMF@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 68 NONAME ; void QTMS::QTMSDTMF::DTMFEvent(class QTMS::QTMSDTMF const &, struct QTMS::QTMSSignalEvent) - ?GetCNG@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 69 NONAME ; int QTMS::QTMSILBCFormat::GetCNG(int &) - ?qt_metacast@QTMSG729Format@QTMS@@UAEPAXPBD@Z @ 70 NONAME ; void * QTMS::QTMSG729Format::qt_metacast(char const *) - ?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 71 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *) - ?GetType@QTMSClientSink@QTMS@@UAEHAAH@Z @ 72 NONAME ; int QTMS::QTMSClientSink::GetType(int &) - ?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 73 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *, int) - ?staticMetaObject@QTMSMicSource@QTMS@@2UQMetaObject@@B @ 74 NONAME ; struct QMetaObject const QTMS::QTMSMicSource::staticMetaObject - ?metaObject@QTMSModemSource@QTMS@@UBEPBUQMetaObject@@XZ @ 75 NONAME ; struct QMetaObject const * QTMS::QTMSModemSource::metaObject(void) const - ?ContinueDTMFStringSending@QTMSDTMF@QTMS@@QAEHH@Z @ 76 NONAME ; int QTMS::QTMSDTMF::ContinueDTMFStringSending(int) - ?GetCNG@QTMSG711Format@QTMS@@QAEHAAH@Z @ 77 NONAME ; int QTMS::QTMSG711Format::GetCNG(int &) - ?CreateGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 78 NONAME ; int QTMS::QTMSFactory::CreateGlobalRouting(class QTMS::QTMSGlobalRouting * &) - ?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *, int) - ?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 80 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *) - ?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 81 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *) - ?qt_metacall@QTMSInbandTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 82 NONAME ; int QTMS::QTMSInbandTone::qt_metacall(enum QMetaObject::Call, int, void * *) - ?staticMetaObject@QTMSSpeakerSink@QTMS@@2UQMetaObject@@B @ 83 NONAME ; struct QMetaObject const QTMS::QTMSSpeakerSink::staticMetaObject - ?staticMetaObject@QTMSGainEffect@QTMS@@2UQMetaObject@@B @ 84 NONAME ; struct QMetaObject const QTMS::QTMSGainEffect::staticMetaObject - ?staticMetaObject@QTMSModemSink@QTMS@@2UQMetaObject@@B @ 85 NONAME ; struct QMetaObject const QTMS::QTMSModemSink::staticMetaObject - ?tr@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString QTMS::QTMSModemSource::tr(char const *, char const *, int) - ?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *) - ?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 88 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *, int) - ?GetType@QTMSGainEffect@QTMS@@UAEHAAH@Z @ 89 NONAME ; int QTMS::QTMSGainEffect::GetType(int &) - ?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 90 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *) - ??_EQTMSG711Format@QTMS@@UAE@I@Z @ 91 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(unsigned int) - ?qt_metacast@QTMSAMRFormat@QTMS@@UAEPAXPBD@Z @ 92 NONAME ; void * QTMS::QTMSAMRFormat::qt_metacast(char const *) - ?GlobalRoutingEvent@QTMSGlobalRouting@QTMS@@IAEXABV12@UQTMSSignalEvent@2@H@Z @ 93 NONAME ; void QTMS::QTMSGlobalRouting::GlobalRoutingEvent(class QTMS::QTMSGlobalRouting const &, struct QTMS::QTMSSignalEvent, int) - ?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 94 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *, int) - ?metaObject@QTMSMicSource@QTMS@@UBEPBUQMetaObject@@XZ @ 95 NONAME ; struct QMetaObject const * QTMS::QTMSMicSource::metaObject(void) const - ??1QTMSSpeakerSink@QTMS@@UAE@XZ @ 96 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(void) - ??0QTMSVolumeEffect@QTMS@@IAE@XZ @ 97 NONAME ; QTMS::QTMSVolumeEffect::QTMSVolumeEffect(void) - ?staticMetaObject@QTMSAMRFormat@QTMS@@2UQMetaObject@@B @ 98 NONAME ; struct QMetaObject const QTMS::QTMSAMRFormat::staticMetaObject - ?Init@QTMSStream@QTMS@@QAEHXZ @ 99 NONAME ; int QTMS::QTMSStream::Init(void) - ?GetVADMode@QTMSG729Format@QTMS@@QAEHAAH@Z @ 100 NONAME ; int QTMS::QTMSG729Format::GetVADMode(int &) - ??1QTMSGlobalGainEffect@QTMS@@UAE@XZ @ 101 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(void) - ??_EQTMSInbandTone@QTMS@@UAE@I@Z @ 102 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(unsigned int) - ?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 103 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *) - ?GetType@QTMSClientSource@QTMS@@UAEHAAH@Z @ 104 NONAME ; int QTMS::QTMSClientSource::GetType(int &) - ?metaObject@QTMSPCMFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 105 NONAME ; struct QMetaObject const * QTMS::QTMSPCMFormat::metaObject(void) const - ?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 106 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *) - ??1QTMSGlobalRouting@QTMS@@UAE@XZ @ 107 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(void) - ?getStaticMetaObject@QTMSStream@QTMS@@SAABUQMetaObject@@XZ @ 108 NONAME ; struct QMetaObject const & QTMS::QTMSStream::getStaticMetaObject(void) - ?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 109 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *) - ?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 110 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *, int) - ?qt_metacast@QTMSModemSource@QTMS@@UAEPAXPBD@Z @ 111 NONAME ; void * QTMS::QTMSModemSource::qt_metacast(char const *) - ?getStaticMetaObject@QTMSG711Format@QTMS@@SAABUQMetaObject@@XZ @ 112 NONAME ; struct QMetaObject const & QTMS::QTMSG711Format::getStaticMetaObject(void) - ??_EQTMSClientSource@QTMS@@UAE@I@Z @ 113 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(unsigned int) - ?GetLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 114 NONAME ; int QTMS::QTMSGainEffect::GetLevel(unsigned int &) - ?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 115 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *) - ?qt_metacast@QTMSGlobalRouting@QTMS@@UAEPAXPBD@Z @ 116 NONAME ; void * QTMS::QTMSGlobalRouting::qt_metacast(char const *) - ?getStaticMetaObject@QTMSFactory@QTMS@@SAABUQMetaObject@@XZ @ 117 NONAME ; struct QMetaObject const & QTMS::QTMSFactory::getStaticMetaObject(void) - ??_EQTMSAMRFormat@QTMS@@UAE@I@Z @ 118 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(unsigned int) - ?getStaticMetaObject@QTMSPCMFormat@QTMS@@SAABUQMetaObject@@XZ @ 119 NONAME ; struct QMetaObject const & QTMS::QTMSPCMFormat::getStaticMetaObject(void) - ?Flush@QTMSClientSource@QTMS@@QAEHXZ @ 120 NONAME ; int QTMS::QTMSClientSource::Flush(void) - ?DeleteGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 121 NONAME ; int QTMS::QTMSFactory::DeleteGlobalRouting(class QTMS::QTMSGlobalRouting * &) - ?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 122 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *, int) - ?SetMode@QTMSG711Format@QTMS@@QAEHH@Z @ 123 NONAME ; int QTMS::QTMSG711Format::SetMode(int) - ?GetMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 124 NONAME ; int QTMS::QTMSILBCFormat::GetMode(int &) - ?GetMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 125 NONAME ; int QTMS::QTMSG711Format::GetMode(int &) - ?GetAvailableOutputs@QTMSGlobalRouting@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 126 NONAME ; int QTMS::QTMSGlobalRouting::GetAvailableOutputs(class std::vector > &) - ?staticMetaObject@QTMSFactory@QTMS@@2UQMetaObject@@B @ 127 NONAME ; struct QMetaObject const QTMS::QTMSFactory::staticMetaObject - ?DeleteFormat@QTMSFactory@QTMS@@QAEHAAPAVQTMSFormat@2@@Z @ 128 NONAME ; int QTMS::QTMSFactory::DeleteFormat(class QTMS::QTMSFormat * &) - ?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 129 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *, int) - ??1QTMSPCMFormat@QTMS@@UAE@XZ @ 130 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(void) - ?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 131 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *) - ??0QTMSG711Format@QTMS@@IAE@XZ @ 132 NONAME ; QTMS::QTMSG711Format::QTMSG711Format(void) - ?staticMetaObject@QTMSILBCFormat@QTMS@@2UQMetaObject@@B @ 133 NONAME ; struct QMetaObject const QTMS::QTMSILBCFormat::staticMetaObject - ?metaObject@QTMSG729Format@QTMS@@UBEPBUQMetaObject@@XZ @ 134 NONAME ; struct QMetaObject const * QTMS::QTMSG729Format::metaObject(void) const - ?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 135 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *, int) - ?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 136 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *, int) - ?staticMetaObject@QTMSClientSink@QTMS@@2UQMetaObject@@B @ 137 NONAME ; struct QMetaObject const QTMS::QTMSClientSink::staticMetaObject - ?EffectsEvent@QTMSGlobalVolEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 138 NONAME ; void QTMS::QTMSGlobalVolEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) - ?CreateFormat@QTMSFactory@QTMS@@QAEHHAAPAVQTMSFormat@2@@Z @ 139 NONAME ; int QTMS::QTMSFactory::CreateFormat(int, class QTMS::QTMSFormat * &) - ?SetCNG@QTMSILBCFormat@QTMS@@QAEHH@Z @ 140 NONAME ; int QTMS::QTMSILBCFormat::SetCNG(int) - ??1QTMSAMRFormat@QTMS@@UAE@XZ @ 141 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(void) - ?metaObject@QTMSClientSink@QTMS@@UBEPBUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const * QTMS::QTMSClientSink::metaObject(void) const - ?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 143 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *) - ?staticMetaObject@QTMSG711Format@QTMS@@2UQMetaObject@@B @ 144 NONAME ; struct QMetaObject const QTMS::QTMSG711Format::staticMetaObject - ?BufferFilled@QTMSClientSource@QTMS@@QAEHAAVTMSBuffer@TMS@@@Z @ 145 NONAME ; int QTMS::QTMSClientSource::BufferFilled(class TMS::TMSBuffer &) - ?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 146 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *, int) - ?InbandToneEvent@QTMSInbandTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 147 NONAME ; void QTMS::QTMSInbandTone::InbandToneEvent(class QTMS::QTMSInbandTone const &, struct QTMS::QTMSSignalEvent) - ?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 148 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *) - ?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 149 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *, int) - ?qt_metacast@QTMSG711Format@QTMS@@UAEPAXPBD@Z @ 150 NONAME ; void * QTMS::QTMSG711Format::qt_metacast(char const *) - ?GetMaxLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 151 NONAME ; int QTMS::QTMSVolumeEffect::GetMaxLevel(unsigned int &) - ??0QTMSSpeakerSink@QTMS@@IAE@XZ @ 152 NONAME ; QTMS::QTMSSpeakerSink::QTMSSpeakerSink(void) - ?ProcessBuffer@QTMSClientSource@QTMS@@QAEHPAVTMSBuffer@TMS@@@Z @ 153 NONAME ; int QTMS::QTMSClientSource::ProcessBuffer(class TMS::TMSBuffer *) - ??_EQTMSMicSource@QTMS@@UAE@I@Z @ 154 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(unsigned int) - ?metaObject@QTMSModemSink@QTMS@@UBEPBUQMetaObject@@XZ @ 155 NONAME ; struct QMetaObject const * QTMS::QTMSModemSink::metaObject(void) const - ?DeleteCall@QTMSFactory@QTMS@@QAEHAAPAVQTMSCall@2@@Z @ 156 NONAME ; int QTMS::QTMSFactory::DeleteCall(class QTMS::QTMSCall * &) - ?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 157 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *, int) - ?qt_metacall@QTMSMicSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 158 NONAME ; int QTMS::QTMSMicSource::qt_metacall(enum QMetaObject::Call, int, void * *) - ?GetType@QTMSFormat@QTMS@@UAEHAAH@Z @ 159 NONAME ; int QTMS::QTMSFormat::GetType(int &) - ?DeleteStream@QTMSCall@QTMS@@QAEHAAPAVQTMSStream@2@@Z @ 160 NONAME ; int QTMS::QTMSCall::DeleteStream(class QTMS::QTMSStream * &) - ?trUtf8@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 161 NONAME ; class QString QTMS::QTMSVolumeEffect::trUtf8(char const *, char const *) - ?CreateInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 162 NONAME ; int QTMS::QTMSFactory::CreateInbandTonePlayer(class QTMS::QTMSInbandTone * &) - ?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 163 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *) - ??1QTMSG711Format@QTMS@@UAE@XZ @ 164 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(void) - ?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 165 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *) - ??_EQTMSModemSource@QTMS@@UAE@I@Z @ 166 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(unsigned int) - ?qt_metacall@QTMSPCMFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 167 NONAME ; int QTMS::QTMSPCMFormat::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0QTMSILBCFormat@QTMS@@IAE@XZ @ 168 NONAME ; QTMS::QTMSILBCFormat::QTMSILBCFormat(void) - ?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 169 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *, int) - ?qt_metacast@QTMSPCMFormat@QTMS@@UAEPAXPBD@Z @ 170 NONAME ; void * QTMS::QTMSPCMFormat::qt_metacast(char const *) - ?qt_metacall@QTMSSpeakerSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 171 NONAME ; int QTMS::QTMSSpeakerSink::qt_metacall(enum QMetaObject::Call, int, void * *) - ?GetLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 172 NONAME ; int QTMS::QTMSVolumeEffect::GetLevel(unsigned int &) - ?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 173 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *, int) - ??_EQTMSGainEffect@QTMS@@UAE@I@Z @ 174 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(unsigned int) - ?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 175 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *) - ?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 176 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *) - ?getStaticMetaObject@QTMSSpeakerSink@QTMS@@SAABUQMetaObject@@XZ @ 177 NONAME ; struct QMetaObject const & QTMS::QTMSSpeakerSink::getStaticMetaObject(void) - ?CreateDTMF@QTMSFactory@QTMS@@QAEHHAAPAVQTMSDTMF@2@@Z @ 178 NONAME ; int QTMS::QTMSFactory::CreateDTMF(int, class QTMS::QTMSDTMF * &) - ?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 179 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *) - ?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 180 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *) - ?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 181 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *) - ??1QTMSMicSource@QTMS@@UAE@XZ @ 182 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(void) - ??_EQTMSFactory@QTMS@@UAE@I@Z @ 183 NONAME ; QTMS::QTMSFactory::~QTMSFactory(unsigned int) - ??1QTMSCall@QTMS@@UAE@XZ @ 184 NONAME ; QTMS::QTMSCall::~QTMSCall(void) - ?staticMetaObject@QTMSG729Format@QTMS@@2UQMetaObject@@B @ 185 NONAME ; struct QMetaObject const QTMS::QTMSG729Format::staticMetaObject - ??0QTMSClientSource@QTMS@@IAE@XZ @ 186 NONAME ; QTMS::QTMSClientSource::QTMSClientSource(void) - ?Stop@QTMSInbandTone@QTMS@@QAEHXZ @ 187 NONAME ; int QTMS::QTMSInbandTone::Stop(void) - ?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 188 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *) - ?qt_metacall@QTMSCall@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 189 NONAME ; int QTMS::QTMSCall::qt_metacall(enum QMetaObject::Call, int, void * *) - ?metaObject@QTMSSpeakerSink@QTMS@@UBEPBUQMetaObject@@XZ @ 190 NONAME ; struct QMetaObject const * QTMS::QTMSSpeakerSink::metaObject(void) const - ?SetTone@QTMSDTMF@QTMS@@QAEHPAU_GString@@@Z @ 191 NONAME ; int QTMS::QTMSDTMF::SetTone(struct _GString *) - ?SetEnqueueMode@QTMSClientSource@QTMS@@QAEHH@Z @ 192 NONAME ; int QTMS::QTMSClientSource::SetEnqueueMode(int) - ?staticMetaObject@QTMSClientSource@QTMS@@2UQMetaObject@@B @ 193 NONAME ; struct QMetaObject const QTMS::QTMSClientSource::staticMetaObject - ?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0@Z @ 194 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *) - ?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0H@Z @ 195 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *, int) - ?GetType@QTMSVolumeEffect@QTMS@@UAEHAAH@Z @ 196 NONAME ; int QTMS::QTMSVolumeEffect::GetType(int &) - ?qt_metacall@QTMSVolumeEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 197 NONAME ; int QTMS::QTMSVolumeEffect::qt_metacall(enum QMetaObject::Call, int, void * *) - ?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0H@Z @ 198 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *, int) - ??1QTMSILBCFormat@QTMS@@UAE@XZ @ 199 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(void) - ?qt_metacall@QTMSILBCFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 200 NONAME ; int QTMS::QTMSILBCFormat::qt_metacall(enum QMetaObject::Call, int, void * *) - ?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0H@Z @ 201 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *, int) - ?GetBitRate@QTMSFormat@QTMS@@QAEHAAI@Z @ 202 NONAME ; int QTMS::QTMSFormat::GetBitRate(unsigned int &) - ?GetType@QTMSModemSource@QTMS@@UAEHAAH@Z @ 203 NONAME ; int QTMS::QTMSModemSource::GetType(int &) - ?staticMetaObject@QTMSGlobalVolEffect@QTMS@@2UQMetaObject@@B @ 204 NONAME ; struct QMetaObject const QTMS::QTMSGlobalVolEffect::staticMetaObject - ??1QTMSFormat@QTMS@@UAE@XZ @ 205 NONAME ; QTMS::QTMSFormat::~QTMSFormat(void) - ?GetPlc@QTMSG711Format@QTMS@@QAEHAAH@Z @ 206 NONAME ; int QTMS::QTMSG711Format::GetPlc(int &) - ?Start@QTMSInbandTone@QTMS@@QAEHH@Z @ 207 NONAME ; int QTMS::QTMSInbandTone::Start(int) - ?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0H@Z @ 208 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *, int) - ?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0H@Z @ 209 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *, int) - ??_EQTMSPCMFormat@QTMS@@UAE@I@Z @ 210 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(unsigned int) - ?metaObject@QTMSAMRFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 211 NONAME ; struct QMetaObject const * QTMS::QTMSAMRFormat::metaObject(void) const - ?metaObject@QTMSStream@QTMS@@UBEPBUQMetaObject@@XZ @ 212 NONAME ; struct QMetaObject const * QTMS::QTMSStream::metaObject(void) const - ?getStaticMetaObject@QTMSGlobalGainEffect@QTMS@@SAABUQMetaObject@@XZ @ 213 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalGainEffect::getStaticMetaObject(void) - ?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 214 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *) - ?staticMetaObject@QTMSInbandTone@QTMS@@2UQMetaObject@@B @ 215 NONAME ; struct QMetaObject const QTMS::QTMSInbandTone::staticMetaObject - ?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 216 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *, int) - ?metaObject@QTMSCall@QTMS@@UBEPBUQMetaObject@@XZ @ 217 NONAME ; struct QMetaObject const * QTMS::QTMSCall::metaObject(void) const - ?qt_metacall@QTMSClientSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 218 NONAME ; int QTMS::QTMSClientSink::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacast@QTMSClientSource@QTMS@@UAEPAXPBD@Z @ 219 NONAME ; void * QTMS::QTMSClientSource::qt_metacast(char const *) - ?CreateStream@QTMSCall@QTMS@@QAEHHAAPAVQTMSStream@2@@Z @ 220 NONAME ; int QTMS::QTMSCall::CreateStream(int, class QTMS::QTMSStream * &) - ?DeleteInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 221 NONAME ; int QTMS::QTMSFactory::DeleteInbandTonePlayer(class QTMS::QTMSInbandTone * &) - ?SetLevel@QTMSGlobalGainEffect@QTMS@@QAEHI@Z @ 222 NONAME ; int QTMS::QTMSGlobalGainEffect::SetLevel(unsigned int) - ?GetStreamType@QTMSStream@QTMS@@QAEHXZ @ 223 NONAME ; int QTMS::QTMSStream::GetStreamType(void) - ?getStaticMetaObject@QTMSGlobalRouting@QTMS@@SAABUQMetaObject@@XZ @ 224 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalRouting::getStaticMetaObject(void) - ??0QTMSGlobalVolEffect@QTMS@@IAE@XZ @ 225 NONAME ; QTMS::QTMSGlobalVolEffect::QTMSGlobalVolEffect(void) - ?CreateSink@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSink@2@@Z @ 226 NONAME ; int QTMS::QTMSFactory::CreateSink(int, class QTMS::QTMSSink * &) - ?EffectsEvent@QTMSVolumeEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 227 NONAME ; void QTMS::QTMSVolumeEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) - ?getStaticMetaObject@QTMSG729Format@QTMS@@SAABUQMetaObject@@XZ @ 228 NONAME ; struct QMetaObject const & QTMS::QTMSG729Format::getStaticMetaObject(void) - ??1QTMSDTMF@QTMS@@UAE@XZ @ 229 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(void) - ?DeleteDTMF@QTMSFactory@QTMS@@QAEHAAPAVQTMSDTMF@2@@Z @ 230 NONAME ; int QTMS::QTMSFactory::DeleteDTMF(class QTMS::QTMSDTMF * &) - ??_EQTMSFormat@QTMS@@UAE@I@Z @ 231 NONAME ; QTMS::QTMSFormat::~QTMSFormat(unsigned int) - ?staticMetaObject@QTMSGlobalGainEffect@QTMS@@2UQMetaObject@@B @ 232 NONAME ; struct QMetaObject const QTMS::QTMSGlobalGainEffect::staticMetaObject - ?SetVADMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 233 NONAME ; int QTMS::QTMSILBCFormat::SetVADMode(int) - ??0QTMSCall@QTMS@@IAE@XZ @ 234 NONAME ; QTMS::QTMSCall::QTMSCall(void) - ?GetEnqueueMode@QTMSClientSource@QTMS@@QAEHAAH@Z @ 235 NONAME ; int QTMS::QTMSClientSource::GetEnqueueMode(int &) - ?metaObject@QTMSGlobalVolEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 236 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalVolEffect::metaObject(void) const - ?staticMetaObject@QTMSGlobalRouting@QTMS@@2UQMetaObject@@B @ 237 NONAME ; struct QMetaObject const QTMS::QTMSGlobalRouting::staticMetaObject - ?SetCNG@QTMSG711Format@QTMS@@QAEHH@Z @ 238 NONAME ; int QTMS::QTMSG711Format::SetCNG(int) - ?qt_metacall@QTMSG729Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 239 NONAME ; int QTMS::QTMSG729Format::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacast@QTMSFactory@QTMS@@UAEPAXPBD@Z @ 240 NONAME ; void * QTMS::QTMSFactory::qt_metacast(char const *) - ?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 241 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *, int) - ?SetLevel@QTMSVolumeEffect@QTMS@@QAEHI@Z @ 242 NONAME ; int QTMS::QTMSVolumeEffect::SetLevel(unsigned int) - ?DeleteEffect@QTMSFactory@QTMS@@QAEHAAPAVQTMSEffect@2@@Z @ 243 NONAME ; int QTMS::QTMSFactory::DeleteEffect(class QTMS::QTMSEffect * &) - ?qt_metacast@QTMSCall@QTMS@@UAEPAXPBD@Z @ 244 NONAME ; void * QTMS::QTMSCall::qt_metacast(char const *) - ?SetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 245 NONAME ; int QTMS::QTMSStream::SetFormat(class QTMS::QTMSFormat *) - ?getStaticMetaObject@QTMSDTMF@QTMS@@SAABUQMetaObject@@XZ @ 246 NONAME ; struct QMetaObject const & QTMS::QTMSDTMF::getStaticMetaObject(void) - ?getStaticMetaObject@QTMSMicSource@QTMS@@SAABUQMetaObject@@XZ @ 247 NONAME ; struct QMetaObject const & QTMS::QTMSMicSource::getStaticMetaObject(void) - ?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 248 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *, int) - ?qt_metacall@QTMSGlobalGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 249 NONAME ; int QTMS::QTMSGlobalGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *) - ?CreateCall@QTMSFactory@QTMS@@QAEHHAAPAVQTMSCall@2@I@Z @ 250 NONAME ; int QTMS::QTMSFactory::CreateCall(int, class QTMS::QTMSCall * &, unsigned int) - ?SetVADMode@QTMSG729Format@QTMS@@QAEHH@Z @ 251 NONAME ; int QTMS::QTMSG729Format::SetVADMode(int) - ?DeleteBuffer@QTMSFactory@QTMS@@QAEHAAPAVQTMSBuffer@2@@Z @ 252 NONAME ; int QTMS::QTMSFactory::DeleteBuffer(class QTMS::QTMSBuffer * &) - ?trUtf8@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 253 NONAME ; class QString QTMS::QTMSG711Format::trUtf8(char const *, char const *) - ?qt_metacall@QTMSDTMF@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 254 NONAME ; int QTMS::QTMSDTMF::qt_metacall(enum QMetaObject::Call, int, void * *) - ?qt_metacall@QTMSModemSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 255 NONAME ; int QTMS::QTMSModemSource::qt_metacall(enum QMetaObject::Call, int, void * *) - ?CreateFactory@QTMSFactory@QTMS@@SAHAAPAV12@AAVQTMSVer@2@@Z @ 256 NONAME ; int QTMS::QTMSFactory::CreateFactory(class QTMS::QTMSFactory * &, class QTMS::QTMSVer &) - ?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 257 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *, int) - ??1QTMSStream@QTMS@@UAE@XZ @ 258 NONAME ; QTMS::QTMSStream::~QTMSStream(void) - ?qt_metacast@QTMSVolumeEffect@QTMS@@UAEPAXPBD@Z @ 259 NONAME ; void * QTMS::QTMSVolumeEffect::qt_metacast(char const *) - ??_EQTMSStream@QTMS@@UAE@I@Z @ 260 NONAME ; QTMS::QTMSStream::~QTMSStream(unsigned int) - ?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 261 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *) - ?RemoveSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 262 NONAME ; int QTMS::QTMSStream::RemoveSink(class QTMS::QTMSSink *) - ?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 263 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *, int) - ?metaObject@QTMSILBCFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 264 NONAME ; struct QMetaObject const * QTMS::QTMSILBCFormat::metaObject(void) const - ?staticMetaObject@QTMSPCMFormat@QTMS@@2UQMetaObject@@B @ 265 NONAME ; struct QMetaObject const QTMS::QTMSPCMFormat::staticMetaObject - ?getStaticMetaObject@QTMSClientSource@QTMS@@SAABUQMetaObject@@XZ @ 266 NONAME ; struct QMetaObject const & QTMS::QTMSClientSource::getStaticMetaObject(void) - ??1QTMSFactory@QTMS@@UAE@XZ @ 267 NONAME ; QTMS::QTMSFactory::~QTMSFactory(void) - ?DeleteSource@QTMSFactory@QTMS@@QAEHAAPAVQTMSSource@2@@Z @ 268 NONAME ; int QTMS::QTMSFactory::DeleteSource(class QTMS::QTMSSource * &) - ?qt_metacall@QTMSGlobalRouting@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 269 NONAME ; int QTMS::QTMSGlobalRouting::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0QTMSGlobalGainEffect@QTMS@@IAE@XZ @ 270 NONAME ; QTMS::QTMSGlobalGainEffect::QTMSGlobalGainEffect(void) - ?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 271 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *) - ??0QTMSDTMF@QTMS@@IAE@XZ @ 272 NONAME ; QTMS::QTMSDTMF::QTMSDTMF(void) - ?GetLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 273 NONAME ; int QTMS::QTMSGlobalVolEffect::GetLevel(unsigned int &) - ?GetType@QTMSGlobalVolEffect@QTMS@@UAEHAAH@Z @ 274 NONAME ; int QTMS::QTMSGlobalVolEffect::GetType(int &) - ?getStaticMetaObject@QTMSILBCFormat@QTMS@@SAABUQMetaObject@@XZ @ 275 NONAME ; struct QMetaObject const & QTMS::QTMSILBCFormat::getStaticMetaObject(void) - ??_EQTMSGlobalGainEffect@QTMS@@UAE@I@Z @ 276 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(unsigned int) - ?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 277 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *) - ?qt_metacast@QTMSGlobalGainEffect@QTMS@@UAEPAXPBD@Z @ 278 NONAME ; void * QTMS::QTMSGlobalGainEffect::qt_metacast(char const *) - ??_EQTMSModemSink@QTMS@@UAE@I@Z @ 279 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(unsigned int) - ??0QTMSModemSink@QTMS@@IAE@XZ @ 280 NONAME ; QTMS::QTMSModemSink::QTMSModemSink(void) - ?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 281 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *) - ?GetState@QTMSStream@QTMS@@QAEHXZ @ 282 NONAME ; int QTMS::QTMSStream::GetState(void) - ?qt_metacall@QTMSG711Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 283 NONAME ; int QTMS::QTMSG711Format::qt_metacall(enum QMetaObject::Call, int, void * *) - ?getStaticMetaObject@QTMSClientSink@QTMS@@SAABUQMetaObject@@XZ @ 284 NONAME ; struct QMetaObject const & QTMS::QTMSClientSink::getStaticMetaObject(void) - ?qt_metacast@QTMSInbandTone@QTMS@@UAEPAXPBD@Z @ 285 NONAME ; void * QTMS::QTMSInbandTone::qt_metacast(char const *) - ?getStaticMetaObject@QTMSModemSource@QTMS@@SAABUQMetaObject@@XZ @ 286 NONAME ; struct QMetaObject const & QTMS::QTMSModemSource::getStaticMetaObject(void) - ?metaObject@QTMSGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 287 NONAME ; struct QMetaObject const * QTMS::QTMSGainEffect::metaObject(void) const - ??0QTMSGlobalRouting@QTMS@@IAE@XZ @ 288 NONAME ; QTMS::QTMSGlobalRouting::QTMSGlobalRouting(void) - ?metaObject@QTMSClientSource@QTMS@@UBEPBUQMetaObject@@XZ @ 289 NONAME ; struct QMetaObject const * QTMS::QTMSClientSource::metaObject(void) const - ?qt_metacast@QTMSStream@QTMS@@UAEPAXPBD@Z @ 290 NONAME ; void * QTMS::QTMSStream::qt_metacast(char const *) - ?DeleteSink@QTMSFactory@QTMS@@QAEHAAPAVQTMSSink@2@@Z @ 291 NONAME ; int QTMS::QTMSFactory::DeleteSink(class QTMS::QTMSSink * &) - ?getStaticMetaObject@QTMSModemSink@QTMS@@SAABUQMetaObject@@XZ @ 292 NONAME ; struct QMetaObject const & QTMS::QTMSModemSink::getStaticMetaObject(void) - ?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 293 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *) - ??_EQTMSDTMF@QTMS@@UAE@I@Z @ 294 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(unsigned int) - ?qt_metacall@QTMSStream@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 295 NONAME ; int QTMS::QTMSStream::qt_metacall(enum QMetaObject::Call, int, void * *) - ?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 296 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *, int) - ?qt_metacast@QTMSGainEffect@QTMS@@UAEPAXPBD@Z @ 297 NONAME ; void * QTMS::QTMSGainEffect::qt_metacast(char const *) - ?GetCallContextId@QTMSCall@QTMS@@QAEHAAI@Z @ 298 NONAME ; int QTMS::QTMSCall::GetCallContextId(unsigned int &) - ?GetCallType@QTMSCall@QTMS@@QAEHXZ @ 299 NONAME ; int QTMS::QTMSCall::GetCallType(void) - ?Start@QTMSDTMF@QTMS@@QAEHXZ @ 300 NONAME ; int QTMS::QTMSDTMF::Start(void) - ?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 301 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *) - ?SetOutput@QTMSGlobalRouting@QTMS@@QAEHH@Z @ 302 NONAME ; int QTMS::QTMSGlobalRouting::SetOutput(int) - ??0QTMSClientSink@QTMS@@IAE@XZ @ 303 NONAME ; QTMS::QTMSClientSink::QTMSClientSink(void) - ?SetLevel@QTMSGlobalVolEffect@QTMS@@QAEHI@Z @ 304 NONAME ; int QTMS::QTMSGlobalVolEffect::SetLevel(unsigned int) - ?IsCallTypeSupported@QTMSFactory@QTMS@@QAEHHAAH@Z @ 305 NONAME ; int QTMS::QTMSFactory::IsCallTypeSupported(int, int &) - ?qt_metacast@QTMSGlobalVolEffect@QTMS@@UAEPAXPBD@Z @ 306 NONAME ; void * QTMS::QTMSGlobalVolEffect::qt_metacast(char const *) - ?staticMetaObject@QTMSModemSource@QTMS@@2UQMetaObject@@B @ 307 NONAME ; struct QMetaObject const QTMS::QTMSModemSource::staticMetaObject - ?GetStreamId@QTMSStream@QTMS@@QAEHXZ @ 308 NONAME ; int QTMS::QTMSStream::GetStreamId(void) - ??0QTMSG729Format@QTMS@@IAE@XZ @ 309 NONAME ; QTMS::QTMSG729Format::QTMSG729Format(void) - ??_EQTMSGlobalVolEffect@QTMS@@UAE@I@Z @ 310 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(unsigned int) - ?getStaticMetaObject@QTMSAMRFormat@QTMS@@SAABUQMetaObject@@XZ @ 311 NONAME ; struct QMetaObject const & QTMS::QTMSAMRFormat::getStaticMetaObject(void) - ?staticMetaObject@QTMSVolumeEffect@QTMS@@2UQMetaObject@@B @ 312 NONAME ; struct QMetaObject const QTMS::QTMSVolumeEffect::staticMetaObject - ??0QTMSFormat@QTMS@@IAE@XZ @ 313 NONAME ; QTMS::QTMSFormat::QTMSFormat(void) - ?GetSupportedFormats@QTMSFactory@QTMS@@QAEHHAAV?$vector@PAVQTMSFormat@QTMS@@V?$allocator@PAVQTMSFormat@QTMS@@@std@@@std@@@Z @ 314 NONAME ; int QTMS::QTMSFactory::GetSupportedFormats(int, class std::vector > &) - ?SetVADMode@QTMSG711Format@QTMS@@QAEHH@Z @ 315 NONAME ; int QTMS::QTMSG711Format::SetVADMode(int) - ?getStaticMetaObject@QTMSVolumeEffect@QTMS@@SAABUQMetaObject@@XZ @ 316 NONAME ; struct QMetaObject const & QTMS::QTMSVolumeEffect::getStaticMetaObject(void) - ?qt_metacall@QTMSModemSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 317 NONAME ; int QTMS::QTMSModemSink::qt_metacall(enum QMetaObject::Call, int, void * *) - ?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 318 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *, int) - ?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 319 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *) - ?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 320 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *) - ?AddEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 321 NONAME ; int QTMS::QTMSStream::AddEffect(class QTMS::QTMSEffect *) - ?ResetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 322 NONAME ; int QTMS::QTMSStream::ResetFormat(class QTMS::QTMSFormat *) - ?metaObject@QTMSG711Format@QTMS@@UBEPBUQMetaObject@@XZ @ 323 NONAME ; struct QMetaObject const * QTMS::QTMSG711Format::metaObject(void) const - ??1QTMSVolumeEffect@QTMS@@UAE@XZ @ 324 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(void) - ?GetSupportedBitRates@QTMSFormat@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 325 NONAME ; int QTMS::QTMSFormat::GetSupportedBitRates(class std::vector > &) - ?EffectsEvent@QTMSGlobalGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 326 NONAME ; void QTMS::QTMSGlobalGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) - ?staticMetaObject@QTMSCall@QTMS@@2UQMetaObject@@B @ 327 NONAME ; struct QMetaObject const QTMS::QTMSCall::staticMetaObject - ??1QTMSModemSource@QTMS@@UAE@XZ @ 328 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(void) - ??1QTMSClientSink@QTMS@@UAE@XZ @ 329 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(void) - ?metaObject@QTMSFactory@QTMS@@UBEPBUQMetaObject@@XZ @ 330 NONAME ; struct QMetaObject const * QTMS::QTMSFactory::metaObject(void) const - ?metaObject@QTMSInbandTone@QTMS@@UBEPBUQMetaObject@@XZ @ 331 NONAME ; struct QMetaObject const * QTMS::QTMSInbandTone::metaObject(void) const - ?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 332 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *, int) - ?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 333 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *, int) - ?GetMaxLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 334 NONAME ; int QTMS::QTMSGlobalVolEffect::GetMaxLevel(unsigned int &) - ??_EQTMSVolumeEffect@QTMS@@UAE@I@Z @ 335 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(unsigned int) - ??1QTMSG729Format@QTMS@@UAE@XZ @ 336 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(void) - ?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 337 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *) - ?GetType@QTMSMicSource@QTMS@@UAEHAAH@Z @ 338 NONAME ; int QTMS::QTMSMicSource::GetType(int &) - ?CreateEffect@QTMSFactory@QTMS@@QAEHHAAPAVQTMSEffect@2@@Z @ 339 NONAME ; int QTMS::QTMSFactory::CreateEffect(int, class QTMS::QTMSEffect * &) - ?getStaticMetaObject@QTMSCall@QTMS@@SAABUQMetaObject@@XZ @ 340 NONAME ; struct QMetaObject const & QTMS::QTMSCall::getStaticMetaObject(void) - ?metaObject@QTMSGlobalGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 341 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalGainEffect::metaObject(void) const - ??0QTMSFactory@QTMS@@AAE@XZ @ 342 NONAME ; QTMS::QTMSFactory::QTMSFactory(void) - ?GetOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 343 NONAME ; int QTMS::QTMSGlobalRouting::GetOutput(int &) - ?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 344 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *) - ?CreateBuffer@QTMSFactory@QTMS@@QAEHHIAAPAVQTMSBuffer@2@@Z @ 345 NONAME ; int QTMS::QTMSFactory::CreateBuffer(int, unsigned int, class QTMS::QTMSBuffer * &) - ?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 346 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *, int) - ?qt_metacast@QTMSMicSource@QTMS@@UAEPAXPBD@Z @ 347 NONAME ; void * QTMS::QTMSMicSource::qt_metacast(char const *) - ?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 348 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *) - ?BufferProcessed@QTMSClientSink@QTMS@@QAEHPAVTMSBuffer@TMS@@@Z @ 349 NONAME ; int QTMS::QTMSClientSink::BufferProcessed(class TMS::TMSBuffer *) - ?ProcessBuffer@QTMSClientSink@QTMS@@IAEXPBVTMSBuffer@TMS@@@Z @ 350 NONAME ; void QTMS::QTMSClientSink::ProcessBuffer(class TMS::TMSBuffer const *) - ?qt_metacall@QTMSAMRFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 351 NONAME ; int QTMS::QTMSAMRFormat::qt_metacall(enum QMetaObject::Call, int, void * *) - ??0QTMSInbandTone@QTMS@@IAE@XZ @ 352 NONAME ; QTMS::QTMSInbandTone::QTMSInbandTone(void) - ?RemoveEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 353 NONAME ; int QTMS::QTMSStream::RemoveEffect(class QTMS::QTMSEffect *) - ?SetBitRate@QTMSFormat@QTMS@@QAEHI@Z @ 354 NONAME ; int QTMS::QTMSFormat::SetBitRate(unsigned int) - ?Stop@QTMSStream@QTMS@@QAEHXZ @ 355 NONAME ; int QTMS::QTMSStream::Stop(void) - ?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 356 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *, int) - ??_EQTMSILBCFormat@QTMS@@UAE@I@Z @ 357 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(unsigned int) - ?qt_metacall@QTMSFactory@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 358 NONAME ; int QTMS::QTMSFactory::qt_metacall(enum QMetaObject::Call, int, void * *) - ?staticMetaObject@QTMSStream@QTMS@@2UQMetaObject@@B @ 359 NONAME ; struct QMetaObject const QTMS::QTMSStream::staticMetaObject - ??0QTMSPCMFormat@QTMS@@IAE@XZ @ 360 NONAME ; QTMS::QTMSPCMFormat::QTMSPCMFormat(void) - ?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 361 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *, int) - ?SetLevel@QTMSGainEffect@QTMS@@QAEHI@Z @ 362 NONAME ; int QTMS::QTMSGainEffect::SetLevel(unsigned int) - ?FillBuffer@QTMSClientSource@QTMS@@IAEXAAVTMSBuffer@TMS@@@Z @ 363 NONAME ; void QTMS::QTMSClientSource::FillBuffer(class TMS::TMSBuffer &) - ?Pause@QTMSStream@QTMS@@QAEHXZ @ 364 NONAME ; int QTMS::QTMSStream::Pause(void) - ?Deinit@QTMSStream@QTMS@@QAEXXZ @ 365 NONAME ; void QTMS::QTMSStream::Deinit(void) - ?metaObject@QTMSDTMF@QTMS@@UBEPBUQMetaObject@@XZ @ 366 NONAME ; struct QMetaObject const * QTMS::QTMSDTMF::metaObject(void) const - ?GetMaxLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 367 NONAME ; int QTMS::QTMSGainEffect::GetMaxLevel(unsigned int &) - ?Deinit@QTMSRingTone@QTMS@@QAEHXZ @ 368 NONAME ; int QTMS::QTMSRingTone::Deinit(void) - ?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 369 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *) - ?Pause@QTMSRingTone@QTMS@@QAEHXZ @ 370 NONAME ; int QTMS::QTMSRingTone::Pause(void) - ?RingtoneEvent@QTMSRingTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 371 NONAME ; void QTMS::QTMSRingTone::RingtoneEvent(class QTMS::QTMSRingTone const &, struct QTMS::QTMSSignalEvent) - ?staticMetaObject@QTMSRingTone@QTMS@@2UQMetaObject@@B @ 372 NONAME ; struct QMetaObject const QTMS::QTMSRingTone::staticMetaObject - ?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 373 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *) - ?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 374 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *, int) - ?getStaticMetaObject@QTMSRingTone@QTMS@@SAABUQMetaObject@@XZ @ 375 NONAME ; struct QMetaObject const & QTMS::QTMSRingTone::getStaticMetaObject(void) - ?qt_metacast@QTMSRingTone@QTMS@@UAEPAXPBD@Z @ 376 NONAME ; void * QTMS::QTMSRingTone::qt_metacast(char const *) - ?Stop@QTMSRingTone@QTMS@@QAEHXZ @ 377 NONAME ; int QTMS::QTMSRingTone::Stop(void) - ?Play@QTMSRingTone@QTMS@@QAEHXZ @ 378 NONAME ; int QTMS::QTMSRingTone::Play(void) - ?qt_metacall@QTMSRingTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 379 NONAME ; int QTMS::QTMSRingTone::qt_metacall(enum QMetaObject::Call, int, void * *) - ?Init@QTMSRingTone@QTMS@@QAEHHPAU_GString@@0@Z @ 380 NONAME ; int QTMS::QTMSRingTone::Init(int, struct _GString *, struct _GString *) - ??1QTMSRingTone@QTMS@@UAE@XZ @ 381 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(void) - ?Mute@QTMSRingTone@QTMS@@QAEHXZ @ 382 NONAME ; int QTMS::QTMSRingTone::Mute(void) - ?metaObject@QTMSRingTone@QTMS@@UBEPBUQMetaObject@@XZ @ 383 NONAME ; struct QMetaObject const * QTMS::QTMSRingTone::metaObject(void) const - ??_EQTMSRingTone@QTMS@@UAE@I@Z @ 384 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(unsigned int) - ??0QTMSRingTone@QTMS@@IAE@XZ @ 385 NONAME ; QTMS::QTMSRingTone::QTMSRingTone(void) - ?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 386 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *, int) + ?Pause@QTMSRingTone@QTMS@@QAEHXZ @ 39 NONAME ; int QTMS::QTMSRingTone::Pause(void) + ?GetVADMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 40 NONAME ; int QTMS::QTMSILBCFormat::GetVADMode(int &) + ?qt_metacast@QTMSDTMF@QTMS@@UAEPAXPBD@Z @ 41 NONAME ; void * QTMS::QTMSDTMF::qt_metacast(char const *) + ?RingtoneEvent@QTMSRingTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 42 NONAME ; void QTMS::QTMSRingTone::RingtoneEvent(class QTMS::QTMSRingTone const &, struct QTMS::QTMSSignalEvent) + ??_EQTMSCall@QTMS@@UAE@I@Z @ 43 NONAME ; QTMS::QTMSCall::~QTMSCall(unsigned int) + ?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 44 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *) + ?staticMetaObject@QTMSRingTone@QTMS@@2UQMetaObject@@B @ 45 NONAME ; struct QMetaObject const QTMS::QTMSRingTone::staticMetaObject + ?SetMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 46 NONAME ; int QTMS::QTMSILBCFormat::SetMode(int) + ?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 47 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *, int) + ?GetVADMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 48 NONAME ; int QTMS::QTMSG711Format::GetVADMode(int &) + ?staticMetaObject@QTMSDTMF@QTMS@@2UQMetaObject@@B @ 49 NONAME ; struct QMetaObject const QTMS::QTMSDTMF::staticMetaObject + ??0QTMSMicSource@QTMS@@IAE@XZ @ 50 NONAME ; QTMS::QTMSMicSource::QTMSMicSource(void) + ?GetPreviousOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 51 NONAME ; int QTMS::QTMSGlobalRouting::GetPreviousOutput(int &) + ??1QTMSGainEffect@QTMS@@UAE@XZ @ 52 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(void) + ?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 53 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *) + ?EffectsEvent@QTMSGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 54 NONAME ; void QTMS::QTMSGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) + ?qt_metacast@QTMSILBCFormat@QTMS@@UAEPAXPBD@Z @ 55 NONAME ; void * QTMS::QTMSILBCFormat::qt_metacast(char const *) + ?TMSStreamEvent@QTMSStream@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 56 NONAME ; void QTMS::QTMSStream::TMSStreamEvent(class QTMS::QTMSStream const &, struct QTMS::QTMSSignalEvent) + ?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 57 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *) + ??1QTMSModemSink@QTMS@@UAE@XZ @ 58 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(void) + ?metaObject@QTMSVolumeEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 59 NONAME ; struct QMetaObject const * QTMS::QTMSVolumeEffect::metaObject(void) const + ??_EQTMSClientSink@QTMS@@UAE@I@Z @ 60 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(unsigned int) + ?qt_metacast@QTMSModemSink@QTMS@@UAEPAXPBD@Z @ 61 NONAME ; void * QTMS::QTMSModemSink::qt_metacast(char const *) + ??1QTMSClientSource@QTMS@@UAE@XZ @ 62 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(void) + ?qt_metacall@QTMSGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 63 NONAME ; int QTMS::QTMSGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?CreateSource@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSource@2@@Z @ 64 NONAME ; int QTMS::QTMSFactory::CreateSource(int, class QTMS::QTMSSource * &) + ?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 65 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *) + ?FillBuffer@QTMSClientSource@QTMS@@IAEXAAVQTMSBuffer@2@@Z @ 66 NONAME ; void QTMS::QTMSClientSource::FillBuffer(class QTMS::QTMSBuffer &) + ?qt_metacall@QTMSGlobalVolEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 67 NONAME ; int QTMS::QTMSGlobalVolEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?GetLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 68 NONAME ; int QTMS::QTMSGlobalGainEffect::GetLevel(unsigned int &) + ?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 69 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *, int) + ?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 70 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *) + ?GetMaxLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 71 NONAME ; int QTMS::QTMSGlobalGainEffect::GetMaxLevel(unsigned int &) + ?RemoveSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 72 NONAME ; int QTMS::QTMSStream::RemoveSource(class QTMS::QTMSSource *) + ?DTMFEvent@QTMSDTMF@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 73 NONAME ; void QTMS::QTMSDTMF::DTMFEvent(class QTMS::QTMSDTMF const &, struct QTMS::QTMSSignalEvent) + ?GetCNG@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 74 NONAME ; int QTMS::QTMSILBCFormat::GetCNG(int &) + ?qt_metacast@QTMSG729Format@QTMS@@UAEPAXPBD@Z @ 75 NONAME ; void * QTMS::QTMSG729Format::qt_metacast(char const *) + ?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 76 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *) + ?GetType@QTMSClientSink@QTMS@@UAEHAAH@Z @ 77 NONAME ; int QTMS::QTMSClientSink::GetType(int &) + ?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 78 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *, int) + ?staticMetaObject@QTMSMicSource@QTMS@@2UQMetaObject@@B @ 79 NONAME ; struct QMetaObject const QTMS::QTMSMicSource::staticMetaObject + ?metaObject@QTMSModemSource@QTMS@@UBEPBUQMetaObject@@XZ @ 80 NONAME ; struct QMetaObject const * QTMS::QTMSModemSource::metaObject(void) const + ?ContinueDTMFStringSending@QTMSDTMF@QTMS@@QAEHH@Z @ 81 NONAME ; int QTMS::QTMSDTMF::ContinueDTMFStringSending(int) + ?GetCNG@QTMSG711Format@QTMS@@QAEHAAH@Z @ 82 NONAME ; int QTMS::QTMSG711Format::GetCNG(int &) + ?CreateGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 83 NONAME ; int QTMS::QTMSFactory::CreateGlobalRouting(class QTMS::QTMSGlobalRouting * &) + ?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 84 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *, int) + ?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 85 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *, int) + ?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 86 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *) + ?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *) + ?qt_metacall@QTMSInbandTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 88 NONAME ; int QTMS::QTMSInbandTone::qt_metacall(enum QMetaObject::Call, int, void * *) + ?staticMetaObject@QTMSSpeakerSink@QTMS@@2UQMetaObject@@B @ 89 NONAME ; struct QMetaObject const QTMS::QTMSSpeakerSink::staticMetaObject + ?staticMetaObject@QTMSGainEffect@QTMS@@2UQMetaObject@@B @ 90 NONAME ; struct QMetaObject const QTMS::QTMSGainEffect::staticMetaObject + ?staticMetaObject@QTMSModemSink@QTMS@@2UQMetaObject@@B @ 91 NONAME ; struct QMetaObject const QTMS::QTMSModemSink::staticMetaObject + ?tr@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 92 NONAME ; class QString QTMS::QTMSModemSource::tr(char const *, char const *, int) + ?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 93 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *) + ?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 94 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *, int) + ?GetType@QTMSGainEffect@QTMS@@UAEHAAH@Z @ 95 NONAME ; int QTMS::QTMSGainEffect::GetType(int &) + ?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 96 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *) + ??_EQTMSG711Format@QTMS@@UAE@I@Z @ 97 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(unsigned int) + ?qt_metacast@QTMSAMRFormat@QTMS@@UAEPAXPBD@Z @ 98 NONAME ; void * QTMS::QTMSAMRFormat::qt_metacast(char const *) + ?GlobalRoutingEvent@QTMSGlobalRouting@QTMS@@IAEXABV12@UQTMSSignalEvent@2@H@Z @ 99 NONAME ; void QTMS::QTMSGlobalRouting::GlobalRoutingEvent(class QTMS::QTMSGlobalRouting const &, struct QTMS::QTMSSignalEvent, int) + ?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 100 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *, int) + ?getStaticMetaObject@QTMSRingTone@QTMS@@SAABUQMetaObject@@XZ @ 101 NONAME ; struct QMetaObject const & QTMS::QTMSRingTone::getStaticMetaObject(void) + ?metaObject@QTMSMicSource@QTMS@@UBEPBUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const * QTMS::QTMSMicSource::metaObject(void) const + ??1QTMSSpeakerSink@QTMS@@UAE@XZ @ 103 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(void) + ??0QTMSVolumeEffect@QTMS@@IAE@XZ @ 104 NONAME ; QTMS::QTMSVolumeEffect::QTMSVolumeEffect(void) + ?staticMetaObject@QTMSAMRFormat@QTMS@@2UQMetaObject@@B @ 105 NONAME ; struct QMetaObject const QTMS::QTMSAMRFormat::staticMetaObject + ?GetVADMode@QTMSG729Format@QTMS@@QAEHAAH@Z @ 106 NONAME ; int QTMS::QTMSG729Format::GetVADMode(int &) + ??1QTMSGlobalGainEffect@QTMS@@UAE@XZ @ 107 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(void) + ??_EQTMSInbandTone@QTMS@@UAE@I@Z @ 108 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(unsigned int) + ?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 109 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *) + ?qt_metacast@QTMSRingTone@QTMS@@UAEPAXPBD@Z @ 110 NONAME ; void * QTMS::QTMSRingTone::qt_metacast(char const *) + ?GetType@QTMSClientSource@QTMS@@UAEHAAH@Z @ 111 NONAME ; int QTMS::QTMSClientSource::GetType(int &) + ?metaObject@QTMSPCMFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 112 NONAME ; struct QMetaObject const * QTMS::QTMSPCMFormat::metaObject(void) const + ?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 113 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *) + ??1QTMSGlobalRouting@QTMS@@UAE@XZ @ 114 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(void) + ?getStaticMetaObject@QTMSStream@QTMS@@SAABUQMetaObject@@XZ @ 115 NONAME ; struct QMetaObject const & QTMS::QTMSStream::getStaticMetaObject(void) + ?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 116 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *) + ?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 117 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *, int) + ?qt_metacast@QTMSModemSource@QTMS@@UAEPAXPBD@Z @ 118 NONAME ; void * QTMS::QTMSModemSource::qt_metacast(char const *) + ?getStaticMetaObject@QTMSG711Format@QTMS@@SAABUQMetaObject@@XZ @ 119 NONAME ; struct QMetaObject const & QTMS::QTMSG711Format::getStaticMetaObject(void) + ??_EQTMSClientSource@QTMS@@UAE@I@Z @ 120 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(unsigned int) + ?GetLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 121 NONAME ; int QTMS::QTMSGainEffect::GetLevel(unsigned int &) + ?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 122 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *) + ?qt_metacast@QTMSGlobalRouting@QTMS@@UAEPAXPBD@Z @ 123 NONAME ; void * QTMS::QTMSGlobalRouting::qt_metacast(char const *) + ?getStaticMetaObject@QTMSFactory@QTMS@@SAABUQMetaObject@@XZ @ 124 NONAME ; struct QMetaObject const & QTMS::QTMSFactory::getStaticMetaObject(void) + ??_EQTMSAMRFormat@QTMS@@UAE@I@Z @ 125 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(unsigned int) + ?getStaticMetaObject@QTMSPCMFormat@QTMS@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & QTMS::QTMSPCMFormat::getStaticMetaObject(void) + ?Flush@QTMSClientSource@QTMS@@QAEHXZ @ 127 NONAME ; int QTMS::QTMSClientSource::Flush(void) + ?Stop@QTMSRingTone@QTMS@@QAEHXZ @ 128 NONAME ; int QTMS::QTMSRingTone::Stop(void) + ?DeleteGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 129 NONAME ; int QTMS::QTMSFactory::DeleteGlobalRouting(class QTMS::QTMSGlobalRouting * &) + ?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 130 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *, int) + ?SetMode@QTMSG711Format@QTMS@@QAEHH@Z @ 131 NONAME ; int QTMS::QTMSG711Format::SetMode(int) + ?GetMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 132 NONAME ; int QTMS::QTMSILBCFormat::GetMode(int &) + ?GetMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 133 NONAME ; int QTMS::QTMSG711Format::GetMode(int &) + ?GetAvailableOutputs@QTMSGlobalRouting@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 134 NONAME ; int QTMS::QTMSGlobalRouting::GetAvailableOutputs(class std::vector > &) + ?staticMetaObject@QTMSFactory@QTMS@@2UQMetaObject@@B @ 135 NONAME ; struct QMetaObject const QTMS::QTMSFactory::staticMetaObject + ?DeleteFormat@QTMSFactory@QTMS@@QAEHAAPAVQTMSFormat@2@@Z @ 136 NONAME ; int QTMS::QTMSFactory::DeleteFormat(class QTMS::QTMSFormat * &) + ?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 137 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *, int) + ??1QTMSPCMFormat@QTMS@@UAE@XZ @ 138 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(void) + ?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 139 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *) + ??0QTMSG711Format@QTMS@@IAE@XZ @ 140 NONAME ; QTMS::QTMSG711Format::QTMSG711Format(void) + ?staticMetaObject@QTMSILBCFormat@QTMS@@2UQMetaObject@@B @ 141 NONAME ; struct QMetaObject const QTMS::QTMSILBCFormat::staticMetaObject + ?metaObject@QTMSG729Format@QTMS@@UBEPBUQMetaObject@@XZ @ 142 NONAME ; struct QMetaObject const * QTMS::QTMSG729Format::metaObject(void) const + ?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 143 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *, int) + ?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 144 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *, int) + ?staticMetaObject@QTMSClientSink@QTMS@@2UQMetaObject@@B @ 145 NONAME ; struct QMetaObject const QTMS::QTMSClientSink::staticMetaObject + ?ProcessBuffer@QTMSClientSource@QTMS@@QAEHPAVQTMSBuffer@2@@Z @ 146 NONAME ; int QTMS::QTMSClientSource::ProcessBuffer(class QTMS::QTMSBuffer *) + ?EffectsEvent@QTMSGlobalVolEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 147 NONAME ; void QTMS::QTMSGlobalVolEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) + ?CreateFormat@QTMSFactory@QTMS@@QAEHHAAPAVQTMSFormat@2@@Z @ 148 NONAME ; int QTMS::QTMSFactory::CreateFormat(int, class QTMS::QTMSFormat * &) + ?SetCNG@QTMSILBCFormat@QTMS@@QAEHH@Z @ 149 NONAME ; int QTMS::QTMSILBCFormat::SetCNG(int) + ??1QTMSAMRFormat@QTMS@@UAE@XZ @ 150 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(void) + ?metaObject@QTMSClientSink@QTMS@@UBEPBUQMetaObject@@XZ @ 151 NONAME ; struct QMetaObject const * QTMS::QTMSClientSink::metaObject(void) const + ?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 152 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *) + ?staticMetaObject@QTMSG711Format@QTMS@@2UQMetaObject@@B @ 153 NONAME ; struct QMetaObject const QTMS::QTMSG711Format::staticMetaObject + ?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 154 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *, int) + ?InbandToneEvent@QTMSInbandTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 155 NONAME ; void QTMS::QTMSInbandTone::InbandToneEvent(class QTMS::QTMSInbandTone const &, struct QTMS::QTMSSignalEvent) + ?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 156 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *) + ?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 157 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *, int) + ?qt_metacast@QTMSG711Format@QTMS@@UAEPAXPBD@Z @ 158 NONAME ; void * QTMS::QTMSG711Format::qt_metacast(char const *) + ?GetMaxLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 159 NONAME ; int QTMS::QTMSVolumeEffect::GetMaxLevel(unsigned int &) + ??0QTMSSpeakerSink@QTMS@@IAE@XZ @ 160 NONAME ; QTMS::QTMSSpeakerSink::QTMSSpeakerSink(void) + ??_EQTMSMicSource@QTMS@@UAE@I@Z @ 161 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(unsigned int) + ?metaObject@QTMSModemSink@QTMS@@UBEPBUQMetaObject@@XZ @ 162 NONAME ; struct QMetaObject const * QTMS::QTMSModemSink::metaObject(void) const + ?DeleteCall@QTMSFactory@QTMS@@QAEHAAPAVQTMSCall@2@@Z @ 163 NONAME ; int QTMS::QTMSFactory::DeleteCall(class QTMS::QTMSCall * &) + ?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 164 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *, int) + ?qt_metacall@QTMSMicSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 165 NONAME ; int QTMS::QTMSMicSource::qt_metacall(enum QMetaObject::Call, int, void * *) + ?GetType@QTMSFormat@QTMS@@UAEHAAH@Z @ 166 NONAME ; int QTMS::QTMSFormat::GetType(int &) + ?DeleteStream@QTMSCall@QTMS@@QAEHAAPAVQTMSStream@2@@Z @ 167 NONAME ; int QTMS::QTMSCall::DeleteStream(class QTMS::QTMSStream * &) + ?trUtf8@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 168 NONAME ; class QString QTMS::QTMSVolumeEffect::trUtf8(char const *, char const *) + ?CreateInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 169 NONAME ; int QTMS::QTMSFactory::CreateInbandTonePlayer(class QTMS::QTMSInbandTone * &) + ?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 170 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *) + ??1QTMSG711Format@QTMS@@UAE@XZ @ 171 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(void) + ?BufferProcessed@QTMSClientSink@QTMS@@QAEHPAVQTMSBuffer@2@@Z @ 172 NONAME ; int QTMS::QTMSClientSink::BufferProcessed(class QTMS::QTMSBuffer *) + ?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 173 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *) + ??_EQTMSModemSource@QTMS@@UAE@I@Z @ 174 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(unsigned int) + ?qt_metacall@QTMSPCMFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 175 NONAME ; int QTMS::QTMSPCMFormat::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QTMSILBCFormat@QTMS@@IAE@XZ @ 176 NONAME ; QTMS::QTMSILBCFormat::QTMSILBCFormat(void) + ?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 177 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *, int) + ?qt_metacast@QTMSPCMFormat@QTMS@@UAEPAXPBD@Z @ 178 NONAME ; void * QTMS::QTMSPCMFormat::qt_metacast(char const *) + ?qt_metacall@QTMSSpeakerSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 179 NONAME ; int QTMS::QTMSSpeakerSink::qt_metacall(enum QMetaObject::Call, int, void * *) + ?GetLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 180 NONAME ; int QTMS::QTMSVolumeEffect::GetLevel(unsigned int &) + ?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 181 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *, int) + ??_EQTMSGainEffect@QTMS@@UAE@I@Z @ 182 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(unsigned int) + ?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 183 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *) + ?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 184 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *) + ?getStaticMetaObject@QTMSSpeakerSink@QTMS@@SAABUQMetaObject@@XZ @ 185 NONAME ; struct QMetaObject const & QTMS::QTMSSpeakerSink::getStaticMetaObject(void) + ?CreateDTMF@QTMSFactory@QTMS@@QAEHHAAPAVQTMSDTMF@2@@Z @ 186 NONAME ; int QTMS::QTMSFactory::CreateDTMF(int, class QTMS::QTMSDTMF * &) + ?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 187 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *) + ?Init@QTMSStream@QTMS@@QAEHH@Z @ 188 NONAME ; int QTMS::QTMSStream::Init(int) + ?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 189 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *) + ?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 190 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *) + ??1QTMSMicSource@QTMS@@UAE@XZ @ 191 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(void) + ?BufferFilled@QTMSClientSource@QTMS@@QAEHAAVQTMSBuffer@2@@Z @ 192 NONAME ; int QTMS::QTMSClientSource::BufferFilled(class QTMS::QTMSBuffer &) + ??_EQTMSFactory@QTMS@@UAE@I@Z @ 193 NONAME ; QTMS::QTMSFactory::~QTMSFactory(unsigned int) + ??1QTMSCall@QTMS@@UAE@XZ @ 194 NONAME ; QTMS::QTMSCall::~QTMSCall(void) + ?staticMetaObject@QTMSG729Format@QTMS@@2UQMetaObject@@B @ 195 NONAME ; struct QMetaObject const QTMS::QTMSG729Format::staticMetaObject + ??0QTMSClientSource@QTMS@@IAE@XZ @ 196 NONAME ; QTMS::QTMSClientSource::QTMSClientSource(void) + ?Stop@QTMSInbandTone@QTMS@@QAEHXZ @ 197 NONAME ; int QTMS::QTMSInbandTone::Stop(void) + ?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 198 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *) + ?qt_metacall@QTMSCall@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 199 NONAME ; int QTMS::QTMSCall::qt_metacall(enum QMetaObject::Call, int, void * *) + ?metaObject@QTMSSpeakerSink@QTMS@@UBEPBUQMetaObject@@XZ @ 200 NONAME ; struct QMetaObject const * QTMS::QTMSSpeakerSink::metaObject(void) const + ?SetTone@QTMSDTMF@QTMS@@QAEHPAU_GString@@@Z @ 201 NONAME ; int QTMS::QTMSDTMF::SetTone(struct _GString *) + ?SetEnqueueMode@QTMSClientSource@QTMS@@QAEHH@Z @ 202 NONAME ; int QTMS::QTMSClientSource::SetEnqueueMode(int) + ?staticMetaObject@QTMSClientSource@QTMS@@2UQMetaObject@@B @ 203 NONAME ; struct QMetaObject const QTMS::QTMSClientSource::staticMetaObject + ?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0@Z @ 204 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *) + ?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0H@Z @ 205 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *, int) + ?GetType@QTMSVolumeEffect@QTMS@@UAEHAAH@Z @ 206 NONAME ; int QTMS::QTMSVolumeEffect::GetType(int &) + ?qt_metacall@QTMSVolumeEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 207 NONAME ; int QTMS::QTMSVolumeEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0H@Z @ 208 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *, int) + ??1QTMSILBCFormat@QTMS@@UAE@XZ @ 209 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(void) + ?Play@QTMSRingTone@QTMS@@QAEHXZ @ 210 NONAME ; int QTMS::QTMSRingTone::Play(void) + ?qt_metacall@QTMSILBCFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 211 NONAME ; int QTMS::QTMSILBCFormat::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0H@Z @ 212 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *, int) + ?GetBitRate@QTMSFormat@QTMS@@QAEHAAI@Z @ 213 NONAME ; int QTMS::QTMSFormat::GetBitRate(unsigned int &) + ?GetType@QTMSModemSource@QTMS@@UAEHAAH@Z @ 214 NONAME ; int QTMS::QTMSModemSource::GetType(int &) + ?staticMetaObject@QTMSGlobalVolEffect@QTMS@@2UQMetaObject@@B @ 215 NONAME ; struct QMetaObject const QTMS::QTMSGlobalVolEffect::staticMetaObject + ??1QTMSFormat@QTMS@@UAE@XZ @ 216 NONAME ; QTMS::QTMSFormat::~QTMSFormat(void) + ?GetPlc@QTMSG711Format@QTMS@@QAEHAAH@Z @ 217 NONAME ; int QTMS::QTMSG711Format::GetPlc(int &) + ?Start@QTMSInbandTone@QTMS@@QAEHH@Z @ 218 NONAME ; int QTMS::QTMSInbandTone::Start(int) + ?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0H@Z @ 219 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *, int) + ?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0H@Z @ 220 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *, int) + ??_EQTMSPCMFormat@QTMS@@UAE@I@Z @ 221 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(unsigned int) + ?metaObject@QTMSAMRFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 222 NONAME ; struct QMetaObject const * QTMS::QTMSAMRFormat::metaObject(void) const + ?metaObject@QTMSStream@QTMS@@UBEPBUQMetaObject@@XZ @ 223 NONAME ; struct QMetaObject const * QTMS::QTMSStream::metaObject(void) const + ?getStaticMetaObject@QTMSGlobalGainEffect@QTMS@@SAABUQMetaObject@@XZ @ 224 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalGainEffect::getStaticMetaObject(void) + ?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 225 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *) + ?staticMetaObject@QTMSInbandTone@QTMS@@2UQMetaObject@@B @ 226 NONAME ; struct QMetaObject const QTMS::QTMSInbandTone::staticMetaObject + ?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 227 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *, int) + ?qt_metacast@QTMSClientSource@QTMS@@UAEPAXPBD@Z @ 228 NONAME ; void * QTMS::QTMSClientSource::qt_metacast(char const *) + ?metaObject@QTMSCall@QTMS@@UBEPBUQMetaObject@@XZ @ 229 NONAME ; struct QMetaObject const * QTMS::QTMSCall::metaObject(void) const + ?qt_metacall@QTMSClientSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 230 NONAME ; int QTMS::QTMSClientSink::qt_metacall(enum QMetaObject::Call, int, void * *) + ?BufferProcessed@QTMSClientSource@QTMS@@IAEXPBVQTMSBuffer@2@H@Z @ 231 NONAME ; void QTMS::QTMSClientSource::BufferProcessed(class QTMS::QTMSBuffer const *, int) + ?CreateStream@QTMSCall@QTMS@@QAEHHAAPAVQTMSStream@2@@Z @ 232 NONAME ; int QTMS::QTMSCall::CreateStream(int, class QTMS::QTMSStream * &) + ?DeleteInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 233 NONAME ; int QTMS::QTMSFactory::DeleteInbandTonePlayer(class QTMS::QTMSInbandTone * &) + ?SetLevel@QTMSGlobalGainEffect@QTMS@@QAEHI@Z @ 234 NONAME ; int QTMS::QTMSGlobalGainEffect::SetLevel(unsigned int) + ?GetStreamType@QTMSStream@QTMS@@QAEHXZ @ 235 NONAME ; int QTMS::QTMSStream::GetStreamType(void) + ?getStaticMetaObject@QTMSGlobalRouting@QTMS@@SAABUQMetaObject@@XZ @ 236 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalRouting::getStaticMetaObject(void) + ??0QTMSGlobalVolEffect@QTMS@@IAE@XZ @ 237 NONAME ; QTMS::QTMSGlobalVolEffect::QTMSGlobalVolEffect(void) + ?CreateSink@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSink@2@@Z @ 238 NONAME ; int QTMS::QTMSFactory::CreateSink(int, class QTMS::QTMSSink * &) + ?EffectsEvent@QTMSVolumeEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 239 NONAME ; void QTMS::QTMSVolumeEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) + ?getStaticMetaObject@QTMSG729Format@QTMS@@SAABUQMetaObject@@XZ @ 240 NONAME ; struct QMetaObject const & QTMS::QTMSG729Format::getStaticMetaObject(void) + ??1QTMSDTMF@QTMS@@UAE@XZ @ 241 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(void) + ?DeleteDTMF@QTMSFactory@QTMS@@QAEHAAPAVQTMSDTMF@2@@Z @ 242 NONAME ; int QTMS::QTMSFactory::DeleteDTMF(class QTMS::QTMSDTMF * &) + ??_EQTMSFormat@QTMS@@UAE@I@Z @ 243 NONAME ; QTMS::QTMSFormat::~QTMSFormat(unsigned int) + ?staticMetaObject@QTMSGlobalGainEffect@QTMS@@2UQMetaObject@@B @ 244 NONAME ; struct QMetaObject const QTMS::QTMSGlobalGainEffect::staticMetaObject + ?SetVADMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 245 NONAME ; int QTMS::QTMSILBCFormat::SetVADMode(int) + ??0QTMSCall@QTMS@@IAE@XZ @ 246 NONAME ; QTMS::QTMSCall::QTMSCall(void) + ?GetEnqueueMode@QTMSClientSource@QTMS@@QAEHAAH@Z @ 247 NONAME ; int QTMS::QTMSClientSource::GetEnqueueMode(int &) + ?metaObject@QTMSGlobalVolEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 248 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalVolEffect::metaObject(void) const + ?staticMetaObject@QTMSGlobalRouting@QTMS@@2UQMetaObject@@B @ 249 NONAME ; struct QMetaObject const QTMS::QTMSGlobalRouting::staticMetaObject + ?qt_metacast@QTMSFactory@QTMS@@UAEPAXPBD@Z @ 250 NONAME ; void * QTMS::QTMSFactory::qt_metacast(char const *) + ?SetCNG@QTMSG711Format@QTMS@@QAEHH@Z @ 251 NONAME ; int QTMS::QTMSG711Format::SetCNG(int) + ?qt_metacall@QTMSG729Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 252 NONAME ; int QTMS::QTMSG729Format::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 253 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *, int) + ?SetLevel@QTMSVolumeEffect@QTMS@@QAEHI@Z @ 254 NONAME ; int QTMS::QTMSVolumeEffect::SetLevel(unsigned int) + ?DeleteEffect@QTMSFactory@QTMS@@QAEHAAPAVQTMSEffect@2@@Z @ 255 NONAME ; int QTMS::QTMSFactory::DeleteEffect(class QTMS::QTMSEffect * &) + ?qt_metacast@QTMSCall@QTMS@@UAEPAXPBD@Z @ 256 NONAME ; void * QTMS::QTMSCall::qt_metacast(char const *) + ?SetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 257 NONAME ; int QTMS::QTMSStream::SetFormat(class QTMS::QTMSFormat *) + ?getStaticMetaObject@QTMSDTMF@QTMS@@SAABUQMetaObject@@XZ @ 258 NONAME ; struct QMetaObject const & QTMS::QTMSDTMF::getStaticMetaObject(void) + ?getStaticMetaObject@QTMSMicSource@QTMS@@SAABUQMetaObject@@XZ @ 259 NONAME ; struct QMetaObject const & QTMS::QTMSMicSource::getStaticMetaObject(void) + ?qt_metacall@QTMSRingTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 260 NONAME ; int QTMS::QTMSRingTone::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 261 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *, int) + ?qt_metacall@QTMSGlobalGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 262 NONAME ; int QTMS::QTMSGlobalGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *) + ?CreateCall@QTMSFactory@QTMS@@QAEHHAAPAVQTMSCall@2@I@Z @ 263 NONAME ; int QTMS::QTMSFactory::CreateCall(int, class QTMS::QTMSCall * &, unsigned int) + ?SetVADMode@QTMSG729Format@QTMS@@QAEHH@Z @ 264 NONAME ; int QTMS::QTMSG729Format::SetVADMode(int) + ?DeleteBuffer@QTMSFactory@QTMS@@QAEHAAPAVQTMSBuffer@2@@Z @ 265 NONAME ; int QTMS::QTMSFactory::DeleteBuffer(class QTMS::QTMSBuffer * &) + ?trUtf8@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 266 NONAME ; class QString QTMS::QTMSG711Format::trUtf8(char const *, char const *) + ?qt_metacall@QTMSDTMF@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 267 NONAME ; int QTMS::QTMSDTMF::qt_metacall(enum QMetaObject::Call, int, void * *) + ?qt_metacall@QTMSModemSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 268 NONAME ; int QTMS::QTMSModemSource::qt_metacall(enum QMetaObject::Call, int, void * *) + ?CreateFactory@QTMSFactory@QTMS@@SAHAAPAV12@AAVQTMSVer@2@@Z @ 269 NONAME ; int QTMS::QTMSFactory::CreateFactory(class QTMS::QTMSFactory * &, class QTMS::QTMSVer &) + ?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 270 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *, int) + ??1QTMSStream@QTMS@@UAE@XZ @ 271 NONAME ; QTMS::QTMSStream::~QTMSStream(void) + ?Init@QTMSRingTone@QTMS@@QAEHHPAU_GString@@0@Z @ 272 NONAME ; int QTMS::QTMSRingTone::Init(int, struct _GString *, struct _GString *) + ?qt_metacast@QTMSVolumeEffect@QTMS@@UAEPAXPBD@Z @ 273 NONAME ; void * QTMS::QTMSVolumeEffect::qt_metacast(char const *) + ??1QTMSRingTone@QTMS@@UAE@XZ @ 274 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(void) + ??_EQTMSStream@QTMS@@UAE@I@Z @ 275 NONAME ; QTMS::QTMSStream::~QTMSStream(unsigned int) + ?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 276 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *) + ?RemoveSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 277 NONAME ; int QTMS::QTMSStream::RemoveSink(class QTMS::QTMSSink *) + ?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 278 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *, int) + ?metaObject@QTMSILBCFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 279 NONAME ; struct QMetaObject const * QTMS::QTMSILBCFormat::metaObject(void) const + ?staticMetaObject@QTMSPCMFormat@QTMS@@2UQMetaObject@@B @ 280 NONAME ; struct QMetaObject const QTMS::QTMSPCMFormat::staticMetaObject + ?getStaticMetaObject@QTMSClientSource@QTMS@@SAABUQMetaObject@@XZ @ 281 NONAME ; struct QMetaObject const & QTMS::QTMSClientSource::getStaticMetaObject(void) + ??1QTMSFactory@QTMS@@UAE@XZ @ 282 NONAME ; QTMS::QTMSFactory::~QTMSFactory(void) + ?DeleteSource@QTMSFactory@QTMS@@QAEHAAPAVQTMSSource@2@@Z @ 283 NONAME ; int QTMS::QTMSFactory::DeleteSource(class QTMS::QTMSSource * &) + ?qt_metacall@QTMSGlobalRouting@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 284 NONAME ; int QTMS::QTMSGlobalRouting::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QTMSGlobalGainEffect@QTMS@@IAE@XZ @ 285 NONAME ; QTMS::QTMSGlobalGainEffect::QTMSGlobalGainEffect(void) + ?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 286 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *) + ??0QTMSDTMF@QTMS@@IAE@XZ @ 287 NONAME ; QTMS::QTMSDTMF::QTMSDTMF(void) + ?GetLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 288 NONAME ; int QTMS::QTMSGlobalVolEffect::GetLevel(unsigned int &) + ?GetType@QTMSGlobalVolEffect@QTMS@@UAEHAAH@Z @ 289 NONAME ; int QTMS::QTMSGlobalVolEffect::GetType(int &) + ?getStaticMetaObject@QTMSILBCFormat@QTMS@@SAABUQMetaObject@@XZ @ 290 NONAME ; struct QMetaObject const & QTMS::QTMSILBCFormat::getStaticMetaObject(void) + ??_EQTMSGlobalGainEffect@QTMS@@UAE@I@Z @ 291 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(unsigned int) + ?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 292 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *) + ?qt_metacast@QTMSGlobalGainEffect@QTMS@@UAEPAXPBD@Z @ 293 NONAME ; void * QTMS::QTMSGlobalGainEffect::qt_metacast(char const *) + ??_EQTMSModemSink@QTMS@@UAE@I@Z @ 294 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(unsigned int) + ??0QTMSModemSink@QTMS@@IAE@XZ @ 295 NONAME ; QTMS::QTMSModemSink::QTMSModemSink(void) + ?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 296 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *) + ?GetState@QTMSStream@QTMS@@QAEHXZ @ 297 NONAME ; int QTMS::QTMSStream::GetState(void) + ?qt_metacall@QTMSG711Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 298 NONAME ; int QTMS::QTMSG711Format::qt_metacall(enum QMetaObject::Call, int, void * *) + ?getStaticMetaObject@QTMSClientSink@QTMS@@SAABUQMetaObject@@XZ @ 299 NONAME ; struct QMetaObject const & QTMS::QTMSClientSink::getStaticMetaObject(void) + ?qt_metacast@QTMSInbandTone@QTMS@@UAEPAXPBD@Z @ 300 NONAME ; void * QTMS::QTMSInbandTone::qt_metacast(char const *) + ?getStaticMetaObject@QTMSModemSource@QTMS@@SAABUQMetaObject@@XZ @ 301 NONAME ; struct QMetaObject const & QTMS::QTMSModemSource::getStaticMetaObject(void) + ?metaObject@QTMSGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 302 NONAME ; struct QMetaObject const * QTMS::QTMSGainEffect::metaObject(void) const + ??0QTMSGlobalRouting@QTMS@@IAE@XZ @ 303 NONAME ; QTMS::QTMSGlobalRouting::QTMSGlobalRouting(void) + ?metaObject@QTMSClientSource@QTMS@@UBEPBUQMetaObject@@XZ @ 304 NONAME ; struct QMetaObject const * QTMS::QTMSClientSource::metaObject(void) const + ?qt_metacast@QTMSStream@QTMS@@UAEPAXPBD@Z @ 305 NONAME ; void * QTMS::QTMSStream::qt_metacast(char const *) + ?DeleteSink@QTMSFactory@QTMS@@QAEHAAPAVQTMSSink@2@@Z @ 306 NONAME ; int QTMS::QTMSFactory::DeleteSink(class QTMS::QTMSSink * &) + ?getStaticMetaObject@QTMSModemSink@QTMS@@SAABUQMetaObject@@XZ @ 307 NONAME ; struct QMetaObject const & QTMS::QTMSModemSink::getStaticMetaObject(void) + ?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 308 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *) + ?Mute@QTMSRingTone@QTMS@@QAEHXZ @ 309 NONAME ; int QTMS::QTMSRingTone::Mute(void) + ??_EQTMSDTMF@QTMS@@UAE@I@Z @ 310 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(unsigned int) + ?Start@QTMSStream@QTMS@@QAEHH@Z @ 311 NONAME ; int QTMS::QTMSStream::Start(int) + ?qt_metacall@QTMSStream@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 312 NONAME ; int QTMS::QTMSStream::qt_metacall(enum QMetaObject::Call, int, void * *) + ?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 313 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *, int) + ?qt_metacast@QTMSGainEffect@QTMS@@UAEPAXPBD@Z @ 314 NONAME ; void * QTMS::QTMSGainEffect::qt_metacast(char const *) + ?GetCallContextId@QTMSCall@QTMS@@QAEHAAI@Z @ 315 NONAME ; int QTMS::QTMSCall::GetCallContextId(unsigned int &) + ?GetCallType@QTMSCall@QTMS@@QAEHXZ @ 316 NONAME ; int QTMS::QTMSCall::GetCallType(void) + ?Start@QTMSDTMF@QTMS@@QAEHXZ @ 317 NONAME ; int QTMS::QTMSDTMF::Start(void) + ?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 318 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *) + ?SetOutput@QTMSGlobalRouting@QTMS@@QAEHH@Z @ 319 NONAME ; int QTMS::QTMSGlobalRouting::SetOutput(int) + ??0QTMSClientSink@QTMS@@IAE@XZ @ 320 NONAME ; QTMS::QTMSClientSink::QTMSClientSink(void) + ?SetLevel@QTMSGlobalVolEffect@QTMS@@QAEHI@Z @ 321 NONAME ; int QTMS::QTMSGlobalVolEffect::SetLevel(unsigned int) + ?metaObject@QTMSRingTone@QTMS@@UBEPBUQMetaObject@@XZ @ 322 NONAME ; struct QMetaObject const * QTMS::QTMSRingTone::metaObject(void) const + ?ProcessBuffer@QTMSClientSink@QTMS@@IAEXPBVQTMSBuffer@2@@Z @ 323 NONAME ; void QTMS::QTMSClientSink::ProcessBuffer(class QTMS::QTMSBuffer const *) + ?IsCallTypeSupported@QTMSFactory@QTMS@@QAEHHAAH@Z @ 324 NONAME ; int QTMS::QTMSFactory::IsCallTypeSupported(int, int &) + ?qt_metacast@QTMSGlobalVolEffect@QTMS@@UAEPAXPBD@Z @ 325 NONAME ; void * QTMS::QTMSGlobalVolEffect::qt_metacast(char const *) + ?staticMetaObject@QTMSModemSource@QTMS@@2UQMetaObject@@B @ 326 NONAME ; struct QMetaObject const QTMS::QTMSModemSource::staticMetaObject + ?GetStreamId@QTMSStream@QTMS@@QAEHXZ @ 327 NONAME ; int QTMS::QTMSStream::GetStreamId(void) + ??0QTMSG729Format@QTMS@@IAE@XZ @ 328 NONAME ; QTMS::QTMSG729Format::QTMSG729Format(void) + ??_EQTMSGlobalVolEffect@QTMS@@UAE@I@Z @ 329 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(unsigned int) + ?getStaticMetaObject@QTMSAMRFormat@QTMS@@SAABUQMetaObject@@XZ @ 330 NONAME ; struct QMetaObject const & QTMS::QTMSAMRFormat::getStaticMetaObject(void) + ?staticMetaObject@QTMSVolumeEffect@QTMS@@2UQMetaObject@@B @ 331 NONAME ; struct QMetaObject const QTMS::QTMSVolumeEffect::staticMetaObject + ??_EQTMSRingTone@QTMS@@UAE@I@Z @ 332 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(unsigned int) + ??0QTMSFormat@QTMS@@IAE@XZ @ 333 NONAME ; QTMS::QTMSFormat::QTMSFormat(void) + ?GetSupportedFormats@QTMSFactory@QTMS@@QAEHHAAV?$vector@PAVQTMSFormat@QTMS@@V?$allocator@PAVQTMSFormat@QTMS@@@std@@@std@@@Z @ 334 NONAME ; int QTMS::QTMSFactory::GetSupportedFormats(int, class std::vector > &) + ?SetVADMode@QTMSG711Format@QTMS@@QAEHH@Z @ 335 NONAME ; int QTMS::QTMSG711Format::SetVADMode(int) + ?getStaticMetaObject@QTMSVolumeEffect@QTMS@@SAABUQMetaObject@@XZ @ 336 NONAME ; struct QMetaObject const & QTMS::QTMSVolumeEffect::getStaticMetaObject(void) + ?qt_metacall@QTMSModemSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 337 NONAME ; int QTMS::QTMSModemSink::qt_metacall(enum QMetaObject::Call, int, void * *) + ?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 338 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *, int) + ?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 339 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *) + ?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 340 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *) + ?AddEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 341 NONAME ; int QTMS::QTMSStream::AddEffect(class QTMS::QTMSEffect *) + ?ResetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 342 NONAME ; int QTMS::QTMSStream::ResetFormat(class QTMS::QTMSFormat *) + ?metaObject@QTMSG711Format@QTMS@@UBEPBUQMetaObject@@XZ @ 343 NONAME ; struct QMetaObject const * QTMS::QTMSG711Format::metaObject(void) const + ??1QTMSVolumeEffect@QTMS@@UAE@XZ @ 344 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(void) + ?EffectsEvent@QTMSGlobalGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 345 NONAME ; void QTMS::QTMSGlobalGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent) + ?GetSupportedBitRates@QTMSFormat@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 346 NONAME ; int QTMS::QTMSFormat::GetSupportedBitRates(class std::vector > &) + ?staticMetaObject@QTMSCall@QTMS@@2UQMetaObject@@B @ 347 NONAME ; struct QMetaObject const QTMS::QTMSCall::staticMetaObject + ??1QTMSModemSource@QTMS@@UAE@XZ @ 348 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(void) + ??1QTMSClientSink@QTMS@@UAE@XZ @ 349 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(void) + ?metaObject@QTMSFactory@QTMS@@UBEPBUQMetaObject@@XZ @ 350 NONAME ; struct QMetaObject const * QTMS::QTMSFactory::metaObject(void) const + ?metaObject@QTMSInbandTone@QTMS@@UBEPBUQMetaObject@@XZ @ 351 NONAME ; struct QMetaObject const * QTMS::QTMSInbandTone::metaObject(void) const + ?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 352 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *, int) + ?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 353 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *, int) + ?GetMaxLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 354 NONAME ; int QTMS::QTMSGlobalVolEffect::GetMaxLevel(unsigned int &) + ??_EQTMSVolumeEffect@QTMS@@UAE@I@Z @ 355 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(unsigned int) + ??1QTMSG729Format@QTMS@@UAE@XZ @ 356 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(void) + ?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 357 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *) + ?GetType@QTMSMicSource@QTMS@@UAEHAAH@Z @ 358 NONAME ; int QTMS::QTMSMicSource::GetType(int &) + ?CreateEffect@QTMSFactory@QTMS@@QAEHHAAPAVQTMSEffect@2@@Z @ 359 NONAME ; int QTMS::QTMSFactory::CreateEffect(int, class QTMS::QTMSEffect * &) + ?getStaticMetaObject@QTMSCall@QTMS@@SAABUQMetaObject@@XZ @ 360 NONAME ; struct QMetaObject const & QTMS::QTMSCall::getStaticMetaObject(void) + ?metaObject@QTMSGlobalGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 361 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalGainEffect::metaObject(void) const + ??0QTMSFactory@QTMS@@AAE@XZ @ 362 NONAME ; QTMS::QTMSFactory::QTMSFactory(void) + ?GetOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 363 NONAME ; int QTMS::QTMSGlobalRouting::GetOutput(int &) + ?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 364 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *) + ?CreateBuffer@QTMSFactory@QTMS@@QAEHHIAAPAVQTMSBuffer@2@@Z @ 365 NONAME ; int QTMS::QTMSFactory::CreateBuffer(int, unsigned int, class QTMS::QTMSBuffer * &) + ?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 366 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *, int) + ?qt_metacast@QTMSMicSource@QTMS@@UAEPAXPBD@Z @ 367 NONAME ; void * QTMS::QTMSMicSource::qt_metacast(char const *) + ??0QTMSRingTone@QTMS@@IAE@XZ @ 368 NONAME ; QTMS::QTMSRingTone::QTMSRingTone(void) + ?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 369 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *) + ?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 370 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *, int) + ?qt_metacall@QTMSAMRFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 371 NONAME ; int QTMS::QTMSAMRFormat::qt_metacall(enum QMetaObject::Call, int, void * *) + ??0QTMSInbandTone@QTMS@@IAE@XZ @ 372 NONAME ; QTMS::QTMSInbandTone::QTMSInbandTone(void) + ?RemoveEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 373 NONAME ; int QTMS::QTMSStream::RemoveEffect(class QTMS::QTMSEffect *) + ?SetBitRate@QTMSFormat@QTMS@@QAEHI@Z @ 374 NONAME ; int QTMS::QTMSFormat::SetBitRate(unsigned int) + ?Stop@QTMSStream@QTMS@@QAEHXZ @ 375 NONAME ; int QTMS::QTMSStream::Stop(void) + ?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 376 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *, int) + ??_EQTMSILBCFormat@QTMS@@UAE@I@Z @ 377 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(unsigned int) + ?qt_metacall@QTMSFactory@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 378 NONAME ; int QTMS::QTMSFactory::qt_metacall(enum QMetaObject::Call, int, void * *) + ?staticMetaObject@QTMSStream@QTMS@@2UQMetaObject@@B @ 379 NONAME ; struct QMetaObject const QTMS::QTMSStream::staticMetaObject + ??0QTMSPCMFormat@QTMS@@IAE@XZ @ 380 NONAME ; QTMS::QTMSPCMFormat::QTMSPCMFormat(void) + ?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 381 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *, int) + ?SetLevel@QTMSGainEffect@QTMS@@QAEHI@Z @ 382 NONAME ; int QTMS::QTMSGainEffect::SetLevel(unsigned int) + ?Pause@QTMSStream@QTMS@@QAEHXZ @ 383 NONAME ; int QTMS::QTMSStream::Pause(void) + ?Deinit@QTMSStream@QTMS@@QAEXXZ @ 384 NONAME ; void QTMS::QTMSStream::Deinit(void) + ?metaObject@QTMSDTMF@QTMS@@UBEPBUQMetaObject@@XZ @ 385 NONAME ; struct QMetaObject const * QTMS::QTMSDTMF::metaObject(void) const + ?GetMaxLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 386 NONAME ; int QTMS::QTMSGainEffect::GetMaxLevel(unsigned int &) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/eabi/qtmsu.def --- a/qtms/eabi/qtmsu.def Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/eabi/qtmsu.def Thu Jul 22 16:38:21 2010 +0100 @@ -19,10 +19,10 @@ _ZN4QTMS10QTMSStream14TMSStreamEventERKS0_NS_15QTMSSignalEventE @ 18 NONAME _ZN4QTMS10QTMSStream16staticMetaObjectE @ 19 NONAME DATA 16 _ZN4QTMS10QTMSStream19getStaticMetaObjectEv @ 20 NONAME - _ZN4QTMS10QTMSStream4InitEv @ 21 NONAME + _ZN4QTMS10QTMSStream4InitEi @ 21 NONAME _ZN4QTMS10QTMSStream4StopEv @ 22 NONAME _ZN4QTMS10QTMSStream5PauseEv @ 23 NONAME - _ZN4QTMS10QTMSStream5StartEv @ 24 NONAME + _ZN4QTMS10QTMSStream5StartEi @ 24 NONAME _ZN4QTMS10QTMSStream6DeinitEv @ 25 NONAME _ZN4QTMS10QTMSStream7AddSinkEPNS_8QTMSSinkE @ 26 NONAME _ZN4QTMS10QTMSStream8GetStateEv @ 27 NONAME @@ -66,347 +66,347 @@ _ZN4QTMS11QTMSFactoryD0Ev @ 65 NONAME _ZN4QTMS11QTMSFactoryD1Ev @ 66 NONAME _ZN4QTMS11QTMSFactoryD2Ev @ 67 NONAME - _ZN4QTMS13QTMSAMRFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 68 NONAME - _ZN4QTMS13QTMSAMRFormat11qt_metacastEPKc @ 69 NONAME - _ZN4QTMS13QTMSAMRFormat16staticMetaObjectE @ 70 NONAME DATA 16 - _ZN4QTMS13QTMSAMRFormat19getStaticMetaObjectEv @ 71 NONAME - _ZN4QTMS13QTMSAMRFormatC1Ev @ 72 NONAME - _ZN4QTMS13QTMSAMRFormatC2Ev @ 73 NONAME - _ZN4QTMS13QTMSAMRFormatD0Ev @ 74 NONAME - _ZN4QTMS13QTMSAMRFormatD1Ev @ 75 NONAME - _ZN4QTMS13QTMSAMRFormatD2Ev @ 76 NONAME - _ZN4QTMS13QTMSMicSource11qt_metacallEN11QMetaObject4CallEiPPv @ 77 NONAME - _ZN4QTMS13QTMSMicSource11qt_metacastEPKc @ 78 NONAME - _ZN4QTMS13QTMSMicSource16staticMetaObjectE @ 79 NONAME DATA 16 - _ZN4QTMS13QTMSMicSource19getStaticMetaObjectEv @ 80 NONAME - _ZN4QTMS13QTMSMicSource7GetTypeERi @ 81 NONAME - _ZN4QTMS13QTMSMicSourceC1Ev @ 82 NONAME - _ZN4QTMS13QTMSMicSourceC2Ev @ 83 NONAME - _ZN4QTMS13QTMSMicSourceD0Ev @ 84 NONAME - _ZN4QTMS13QTMSMicSourceD1Ev @ 85 NONAME - _ZN4QTMS13QTMSMicSourceD2Ev @ 86 NONAME - _ZN4QTMS13QTMSModemSink11qt_metacallEN11QMetaObject4CallEiPPv @ 87 NONAME - _ZN4QTMS13QTMSModemSink11qt_metacastEPKc @ 88 NONAME - _ZN4QTMS13QTMSModemSink16staticMetaObjectE @ 89 NONAME DATA 16 - _ZN4QTMS13QTMSModemSink19getStaticMetaObjectEv @ 90 NONAME - _ZN4QTMS13QTMSModemSink7GetTypeERi @ 91 NONAME - _ZN4QTMS13QTMSModemSinkC1Ev @ 92 NONAME - _ZN4QTMS13QTMSModemSinkC2Ev @ 93 NONAME - _ZN4QTMS13QTMSModemSinkD0Ev @ 94 NONAME - _ZN4QTMS13QTMSModemSinkD1Ev @ 95 NONAME - _ZN4QTMS13QTMSModemSinkD2Ev @ 96 NONAME - _ZN4QTMS13QTMSPCMFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 97 NONAME - _ZN4QTMS13QTMSPCMFormat11qt_metacastEPKc @ 98 NONAME - _ZN4QTMS13QTMSPCMFormat16staticMetaObjectE @ 99 NONAME DATA 16 - _ZN4QTMS13QTMSPCMFormat19getStaticMetaObjectEv @ 100 NONAME - _ZN4QTMS13QTMSPCMFormatC1Ev @ 101 NONAME - _ZN4QTMS13QTMSPCMFormatC2Ev @ 102 NONAME - _ZN4QTMS13QTMSPCMFormatD0Ev @ 103 NONAME - _ZN4QTMS13QTMSPCMFormatD1Ev @ 104 NONAME - _ZN4QTMS13QTMSPCMFormatD2Ev @ 105 NONAME - _ZN4QTMS14QTMSClientSink11qt_metacallEN11QMetaObject4CallEiPPv @ 106 NONAME - _ZN4QTMS14QTMSClientSink11qt_metacastEPKc @ 107 NONAME - _ZN4QTMS14QTMSClientSink13ProcessBufferEPKN3TMS9TMSBufferE @ 108 NONAME - _ZN4QTMS14QTMSClientSink15BufferProcessedEPN3TMS9TMSBufferE @ 109 NONAME - _ZN4QTMS14QTMSClientSink16staticMetaObjectE @ 110 NONAME DATA 16 - _ZN4QTMS14QTMSClientSink19getStaticMetaObjectEv @ 111 NONAME - _ZN4QTMS14QTMSClientSink7GetTypeERi @ 112 NONAME - _ZN4QTMS14QTMSClientSinkC1Ev @ 113 NONAME - _ZN4QTMS14QTMSClientSinkC2Ev @ 114 NONAME - _ZN4QTMS14QTMSClientSinkD0Ev @ 115 NONAME - _ZN4QTMS14QTMSClientSinkD1Ev @ 116 NONAME - _ZN4QTMS14QTMSClientSinkD2Ev @ 117 NONAME - _ZN4QTMS14QTMSG711Format10GetVADModeERi @ 118 NONAME - _ZN4QTMS14QTMSG711Format10SetVADModeEi @ 119 NONAME - _ZN4QTMS14QTMSG711Format11qt_metacallEN11QMetaObject4CallEiPPv @ 120 NONAME - _ZN4QTMS14QTMSG711Format11qt_metacastEPKc @ 121 NONAME - _ZN4QTMS14QTMSG711Format16staticMetaObjectE @ 122 NONAME DATA 16 - _ZN4QTMS14QTMSG711Format19getStaticMetaObjectEv @ 123 NONAME - _ZN4QTMS14QTMSG711Format6GetCNGERi @ 124 NONAME - _ZN4QTMS14QTMSG711Format6GetPlcERi @ 125 NONAME - _ZN4QTMS14QTMSG711Format6SetCNGEi @ 126 NONAME - _ZN4QTMS14QTMSG711Format6SetPlcEi @ 127 NONAME - _ZN4QTMS14QTMSG711Format7GetModeERi @ 128 NONAME - _ZN4QTMS14QTMSG711Format7SetModeEi @ 129 NONAME - _ZN4QTMS14QTMSG711FormatC1Ev @ 130 NONAME - _ZN4QTMS14QTMSG711FormatC2Ev @ 131 NONAME - _ZN4QTMS14QTMSG711FormatD0Ev @ 132 NONAME - _ZN4QTMS14QTMSG711FormatD1Ev @ 133 NONAME - _ZN4QTMS14QTMSG711FormatD2Ev @ 134 NONAME - _ZN4QTMS14QTMSG729Format10GetVADModeERi @ 135 NONAME - _ZN4QTMS14QTMSG729Format10SetVADModeEi @ 136 NONAME - _ZN4QTMS14QTMSG729Format11qt_metacallEN11QMetaObject4CallEiPPv @ 137 NONAME - _ZN4QTMS14QTMSG729Format11qt_metacastEPKc @ 138 NONAME - _ZN4QTMS14QTMSG729Format16staticMetaObjectE @ 139 NONAME DATA 16 - _ZN4QTMS14QTMSG729Format19getStaticMetaObjectEv @ 140 NONAME - _ZN4QTMS14QTMSG729FormatC1Ev @ 141 NONAME - _ZN4QTMS14QTMSG729FormatC2Ev @ 142 NONAME - _ZN4QTMS14QTMSG729FormatD0Ev @ 143 NONAME - _ZN4QTMS14QTMSG729FormatD1Ev @ 144 NONAME - _ZN4QTMS14QTMSG729FormatD2Ev @ 145 NONAME - _ZN4QTMS14QTMSGainEffect11GetMaxLevelERj @ 146 NONAME - _ZN4QTMS14QTMSGainEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 147 NONAME - _ZN4QTMS14QTMSGainEffect11qt_metacastEPKc @ 148 NONAME - _ZN4QTMS14QTMSGainEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 149 NONAME - _ZN4QTMS14QTMSGainEffect16staticMetaObjectE @ 150 NONAME DATA 16 - _ZN4QTMS14QTMSGainEffect19getStaticMetaObjectEv @ 151 NONAME - _ZN4QTMS14QTMSGainEffect7GetTypeERi @ 152 NONAME - _ZN4QTMS14QTMSGainEffect8GetLevelERj @ 153 NONAME - _ZN4QTMS14QTMSGainEffect8SetLevelEj @ 154 NONAME - _ZN4QTMS14QTMSGainEffectC1Ev @ 155 NONAME - _ZN4QTMS14QTMSGainEffectC2Ev @ 156 NONAME - _ZN4QTMS14QTMSGainEffectD0Ev @ 157 NONAME - _ZN4QTMS14QTMSGainEffectD1Ev @ 158 NONAME - _ZN4QTMS14QTMSGainEffectD2Ev @ 159 NONAME - _ZN4QTMS14QTMSILBCFormat10GetVADModeERi @ 160 NONAME - _ZN4QTMS14QTMSILBCFormat10SetVADModeEi @ 161 NONAME - _ZN4QTMS14QTMSILBCFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 162 NONAME - _ZN4QTMS14QTMSILBCFormat11qt_metacastEPKc @ 163 NONAME - _ZN4QTMS14QTMSILBCFormat16staticMetaObjectE @ 164 NONAME DATA 16 - _ZN4QTMS14QTMSILBCFormat19getStaticMetaObjectEv @ 165 NONAME - _ZN4QTMS14QTMSILBCFormat6GetCNGERi @ 166 NONAME - _ZN4QTMS14QTMSILBCFormat6SetCNGEi @ 167 NONAME - _ZN4QTMS14QTMSILBCFormat7GetModeERi @ 168 NONAME - _ZN4QTMS14QTMSILBCFormat7SetModeEi @ 169 NONAME - _ZN4QTMS14QTMSILBCFormatC1Ev @ 170 NONAME - _ZN4QTMS14QTMSILBCFormatC2Ev @ 171 NONAME - _ZN4QTMS14QTMSILBCFormatD0Ev @ 172 NONAME - _ZN4QTMS14QTMSILBCFormatD1Ev @ 173 NONAME - _ZN4QTMS14QTMSILBCFormatD2Ev @ 174 NONAME - _ZN4QTMS14QTMSInbandTone11qt_metacallEN11QMetaObject4CallEiPPv @ 175 NONAME - _ZN4QTMS14QTMSInbandTone11qt_metacastEPKc @ 176 NONAME - _ZN4QTMS14QTMSInbandTone15InbandToneEventERKS0_NS_15QTMSSignalEventE @ 177 NONAME - _ZN4QTMS14QTMSInbandTone16staticMetaObjectE @ 178 NONAME DATA 16 - _ZN4QTMS14QTMSInbandTone19getStaticMetaObjectEv @ 179 NONAME - _ZN4QTMS14QTMSInbandTone4StopEv @ 180 NONAME - _ZN4QTMS14QTMSInbandTone5StartEi @ 181 NONAME - _ZN4QTMS14QTMSInbandToneC1Ev @ 182 NONAME - _ZN4QTMS14QTMSInbandToneC2Ev @ 183 NONAME - _ZN4QTMS14QTMSInbandToneD0Ev @ 184 NONAME - _ZN4QTMS14QTMSInbandToneD1Ev @ 185 NONAME - _ZN4QTMS14QTMSInbandToneD2Ev @ 186 NONAME - _ZN4QTMS15QTMSModemSource11qt_metacallEN11QMetaObject4CallEiPPv @ 187 NONAME - _ZN4QTMS15QTMSModemSource11qt_metacastEPKc @ 188 NONAME - _ZN4QTMS15QTMSModemSource16staticMetaObjectE @ 189 NONAME DATA 16 - _ZN4QTMS15QTMSModemSource19getStaticMetaObjectEv @ 190 NONAME - _ZN4QTMS15QTMSModemSource7GetTypeERi @ 191 NONAME - _ZN4QTMS15QTMSModemSourceC1Ev @ 192 NONAME - _ZN4QTMS15QTMSModemSourceC2Ev @ 193 NONAME - _ZN4QTMS15QTMSModemSourceD0Ev @ 194 NONAME - _ZN4QTMS15QTMSModemSourceD1Ev @ 195 NONAME - _ZN4QTMS15QTMSModemSourceD2Ev @ 196 NONAME - _ZN4QTMS15QTMSSpeakerSink11qt_metacallEN11QMetaObject4CallEiPPv @ 197 NONAME - _ZN4QTMS15QTMSSpeakerSink11qt_metacastEPKc @ 198 NONAME - _ZN4QTMS15QTMSSpeakerSink16staticMetaObjectE @ 199 NONAME DATA 16 - _ZN4QTMS15QTMSSpeakerSink19getStaticMetaObjectEv @ 200 NONAME - _ZN4QTMS15QTMSSpeakerSink7GetTypeERi @ 201 NONAME - _ZN4QTMS15QTMSSpeakerSinkC1Ev @ 202 NONAME - _ZN4QTMS15QTMSSpeakerSinkC2Ev @ 203 NONAME - _ZN4QTMS15QTMSSpeakerSinkD0Ev @ 204 NONAME - _ZN4QTMS15QTMSSpeakerSinkD1Ev @ 205 NONAME - _ZN4QTMS15QTMSSpeakerSinkD2Ev @ 206 NONAME - _ZN4QTMS16QTMSClientSource10FillBufferERN3TMS9TMSBufferE @ 207 NONAME - _ZN4QTMS16QTMSClientSource11qt_metacallEN11QMetaObject4CallEiPPv @ 208 NONAME - _ZN4QTMS16QTMSClientSource11qt_metacastEPKc @ 209 NONAME - _ZN4QTMS16QTMSClientSource12BufferFilledERN3TMS9TMSBufferE @ 210 NONAME - _ZN4QTMS16QTMSClientSource13ProcessBufferEPN3TMS9TMSBufferE @ 211 NONAME - _ZN4QTMS16QTMSClientSource14GetEnqueueModeERi @ 212 NONAME - _ZN4QTMS16QTMSClientSource14SetEnqueueModeEi @ 213 NONAME - _ZN4QTMS16QTMSClientSource15BufferProcessedEPKN3TMS9TMSBufferEi @ 214 NONAME - _ZN4QTMS16QTMSClientSource16staticMetaObjectE @ 215 NONAME DATA 16 - _ZN4QTMS16QTMSClientSource19getStaticMetaObjectEv @ 216 NONAME - _ZN4QTMS16QTMSClientSource5FlushEv @ 217 NONAME - _ZN4QTMS16QTMSClientSource7GetTypeERi @ 218 NONAME - _ZN4QTMS16QTMSClientSourceC1Ev @ 219 NONAME - _ZN4QTMS16QTMSClientSourceC2Ev @ 220 NONAME - _ZN4QTMS16QTMSClientSourceD0Ev @ 221 NONAME - _ZN4QTMS16QTMSClientSourceD1Ev @ 222 NONAME - _ZN4QTMS16QTMSClientSourceD2Ev @ 223 NONAME - _ZN4QTMS16QTMSVolumeEffect11GetMaxLevelERj @ 224 NONAME - _ZN4QTMS16QTMSVolumeEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 225 NONAME - _ZN4QTMS16QTMSVolumeEffect11qt_metacastEPKc @ 226 NONAME - _ZN4QTMS16QTMSVolumeEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 227 NONAME - _ZN4QTMS16QTMSVolumeEffect16staticMetaObjectE @ 228 NONAME DATA 16 - _ZN4QTMS16QTMSVolumeEffect19getStaticMetaObjectEv @ 229 NONAME - _ZN4QTMS16QTMSVolumeEffect7GetTypeERi @ 230 NONAME - _ZN4QTMS16QTMSVolumeEffect8GetLevelERj @ 231 NONAME - _ZN4QTMS16QTMSVolumeEffect8SetLevelEj @ 232 NONAME - _ZN4QTMS16QTMSVolumeEffectC1Ev @ 233 NONAME - _ZN4QTMS16QTMSVolumeEffectC2Ev @ 234 NONAME - _ZN4QTMS16QTMSVolumeEffectD0Ev @ 235 NONAME - _ZN4QTMS16QTMSVolumeEffectD1Ev @ 236 NONAME - _ZN4QTMS16QTMSVolumeEffectD2Ev @ 237 NONAME - _ZN4QTMS17QTMSGlobalRouting11qt_metacallEN11QMetaObject4CallEiPPv @ 238 NONAME - _ZN4QTMS17QTMSGlobalRouting11qt_metacastEPKc @ 239 NONAME - _ZN4QTMS17QTMSGlobalRouting16staticMetaObjectE @ 240 NONAME DATA 16 - _ZN4QTMS17QTMSGlobalRouting17GetPreviousOutputERi @ 241 NONAME - _ZN4QTMS17QTMSGlobalRouting18GlobalRoutingEventERKS0_NS_15QTMSSignalEventEi @ 242 NONAME - _ZN4QTMS17QTMSGlobalRouting19GetAvailableOutputsERSt6vectorIjSaIjEE @ 243 NONAME - _ZN4QTMS17QTMSGlobalRouting19getStaticMetaObjectEv @ 244 NONAME - _ZN4QTMS17QTMSGlobalRouting9GetOutputERi @ 245 NONAME - _ZN4QTMS17QTMSGlobalRouting9SetOutputEi @ 246 NONAME - _ZN4QTMS17QTMSGlobalRoutingC1Ev @ 247 NONAME - _ZN4QTMS17QTMSGlobalRoutingC2Ev @ 248 NONAME - _ZN4QTMS17QTMSGlobalRoutingD0Ev @ 249 NONAME - _ZN4QTMS17QTMSGlobalRoutingD1Ev @ 250 NONAME - _ZN4QTMS17QTMSGlobalRoutingD2Ev @ 251 NONAME - _ZN4QTMS19QTMSGlobalVolEffect11GetMaxLevelERj @ 252 NONAME - _ZN4QTMS19QTMSGlobalVolEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 253 NONAME - _ZN4QTMS19QTMSGlobalVolEffect11qt_metacastEPKc @ 254 NONAME - _ZN4QTMS19QTMSGlobalVolEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 255 NONAME - _ZN4QTMS19QTMSGlobalVolEffect16staticMetaObjectE @ 256 NONAME DATA 16 - _ZN4QTMS19QTMSGlobalVolEffect19getStaticMetaObjectEv @ 257 NONAME - _ZN4QTMS19QTMSGlobalVolEffect7GetTypeERi @ 258 NONAME - _ZN4QTMS19QTMSGlobalVolEffect8GetLevelERj @ 259 NONAME - _ZN4QTMS19QTMSGlobalVolEffect8SetLevelEj @ 260 NONAME - _ZN4QTMS19QTMSGlobalVolEffectC1Ev @ 261 NONAME - _ZN4QTMS19QTMSGlobalVolEffectC2Ev @ 262 NONAME - _ZN4QTMS19QTMSGlobalVolEffectD0Ev @ 263 NONAME - _ZN4QTMS19QTMSGlobalVolEffectD1Ev @ 264 NONAME - _ZN4QTMS19QTMSGlobalVolEffectD2Ev @ 265 NONAME - _ZN4QTMS20QTMSGlobalGainEffect11GetMaxLevelERj @ 266 NONAME - _ZN4QTMS20QTMSGlobalGainEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 267 NONAME - _ZN4QTMS20QTMSGlobalGainEffect11qt_metacastEPKc @ 268 NONAME - _ZN4QTMS20QTMSGlobalGainEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 269 NONAME - _ZN4QTMS20QTMSGlobalGainEffect16staticMetaObjectE @ 270 NONAME DATA 16 - _ZN4QTMS20QTMSGlobalGainEffect19getStaticMetaObjectEv @ 271 NONAME - _ZN4QTMS20QTMSGlobalGainEffect7GetTypeERi @ 272 NONAME - _ZN4QTMS20QTMSGlobalGainEffect8GetLevelERj @ 273 NONAME - _ZN4QTMS20QTMSGlobalGainEffect8SetLevelEj @ 274 NONAME - _ZN4QTMS20QTMSGlobalGainEffectC1Ev @ 275 NONAME - _ZN4QTMS20QTMSGlobalGainEffectC2Ev @ 276 NONAME - _ZN4QTMS20QTMSGlobalGainEffectD0Ev @ 277 NONAME - _ZN4QTMS20QTMSGlobalGainEffectD1Ev @ 278 NONAME - _ZN4QTMS20QTMSGlobalGainEffectD2Ev @ 279 NONAME - _ZN4QTMS8QTMSCall11GetCallTypeEv @ 280 NONAME - _ZN4QTMS8QTMSCall11qt_metacallEN11QMetaObject4CallEiPPv @ 281 NONAME - _ZN4QTMS8QTMSCall11qt_metacastEPKc @ 282 NONAME - _ZN4QTMS8QTMSCall12CreateStreamEiRPNS_10QTMSStreamE @ 283 NONAME - _ZN4QTMS8QTMSCall12DeleteStreamERPNS_10QTMSStreamE @ 284 NONAME - _ZN4QTMS8QTMSCall16GetCallContextIdERj @ 285 NONAME - _ZN4QTMS8QTMSCall16staticMetaObjectE @ 286 NONAME DATA 16 - _ZN4QTMS8QTMSCall19getStaticMetaObjectEv @ 287 NONAME - _ZN4QTMS8QTMSCallC1Ev @ 288 NONAME - _ZN4QTMS8QTMSCallC2Ev @ 289 NONAME - _ZN4QTMS8QTMSCallD0Ev @ 290 NONAME - _ZN4QTMS8QTMSCallD1Ev @ 291 NONAME - _ZN4QTMS8QTMSCallD2Ev @ 292 NONAME - _ZN4QTMS8QTMSDTMF11qt_metacallEN11QMetaObject4CallEiPPv @ 293 NONAME - _ZN4QTMS8QTMSDTMF11qt_metacastEPKc @ 294 NONAME - _ZN4QTMS8QTMSDTMF16staticMetaObjectE @ 295 NONAME DATA 16 - _ZN4QTMS8QTMSDTMF19getStaticMetaObjectEv @ 296 NONAME - _ZN4QTMS8QTMSDTMF25ContinueDTMFStringSendingEi @ 297 NONAME - _ZN4QTMS8QTMSDTMF4StopEv @ 298 NONAME - _ZN4QTMS8QTMSDTMF5StartEv @ 299 NONAME - _ZN4QTMS8QTMSDTMF7SetToneEP8_GString @ 300 NONAME - _ZN4QTMS8QTMSDTMF9DTMFEventERKS0_NS_15QTMSSignalEventE @ 301 NONAME - _ZN4QTMS8QTMSDTMFC1Ev @ 302 NONAME - _ZN4QTMS8QTMSDTMFC2Ev @ 303 NONAME - _ZN4QTMS8QTMSDTMFD0Ev @ 304 NONAME - _ZN4QTMS8QTMSDTMFD1Ev @ 305 NONAME - _ZN4QTMS8QTMSDTMFD2Ev @ 306 NONAME - _ZNK4QTMS10QTMSStream10metaObjectEv @ 307 NONAME - _ZNK4QTMS11QTMSFactory10metaObjectEv @ 308 NONAME - _ZNK4QTMS13QTMSAMRFormat10metaObjectEv @ 309 NONAME - _ZNK4QTMS13QTMSMicSource10metaObjectEv @ 310 NONAME - _ZNK4QTMS13QTMSModemSink10metaObjectEv @ 311 NONAME - _ZNK4QTMS13QTMSPCMFormat10metaObjectEv @ 312 NONAME - _ZNK4QTMS14QTMSClientSink10metaObjectEv @ 313 NONAME - _ZNK4QTMS14QTMSG711Format10metaObjectEv @ 314 NONAME - _ZNK4QTMS14QTMSG729Format10metaObjectEv @ 315 NONAME - _ZNK4QTMS14QTMSGainEffect10metaObjectEv @ 316 NONAME - _ZNK4QTMS14QTMSILBCFormat10metaObjectEv @ 317 NONAME - _ZNK4QTMS14QTMSInbandTone10metaObjectEv @ 318 NONAME - _ZNK4QTMS15QTMSModemSource10metaObjectEv @ 319 NONAME - _ZNK4QTMS15QTMSSpeakerSink10metaObjectEv @ 320 NONAME - _ZNK4QTMS16QTMSClientSource10metaObjectEv @ 321 NONAME - _ZNK4QTMS16QTMSVolumeEffect10metaObjectEv @ 322 NONAME - _ZNK4QTMS17QTMSGlobalRouting10metaObjectEv @ 323 NONAME - _ZNK4QTMS19QTMSGlobalVolEffect10metaObjectEv @ 324 NONAME - _ZNK4QTMS20QTMSGlobalGainEffect10metaObjectEv @ 325 NONAME - _ZNK4QTMS8QTMSCall10metaObjectEv @ 326 NONAME - _ZNK4QTMS8QTMSDTMF10metaObjectEv @ 327 NONAME - _ZTIN4QTMS10QTMSFormatE @ 328 NONAME - _ZTIN4QTMS10QTMSStreamE @ 329 NONAME - _ZTIN4QTMS11QTMSFactoryE @ 330 NONAME - _ZTIN4QTMS13QTMSAMRFormatE @ 331 NONAME - _ZTIN4QTMS13QTMSMicSourceE @ 332 NONAME - _ZTIN4QTMS13QTMSModemSinkE @ 333 NONAME - _ZTIN4QTMS13QTMSPCMFormatE @ 334 NONAME - _ZTIN4QTMS14QTMSClientSinkE @ 335 NONAME - _ZTIN4QTMS14QTMSG711FormatE @ 336 NONAME - _ZTIN4QTMS14QTMSG729FormatE @ 337 NONAME - _ZTIN4QTMS14QTMSGainEffectE @ 338 NONAME - _ZTIN4QTMS14QTMSILBCFormatE @ 339 NONAME - _ZTIN4QTMS14QTMSInbandToneE @ 340 NONAME - _ZTIN4QTMS15QTMSModemSourceE @ 341 NONAME - _ZTIN4QTMS15QTMSSpeakerSinkE @ 342 NONAME - _ZTIN4QTMS16QTMSClientSourceE @ 343 NONAME - _ZTIN4QTMS16QTMSVolumeEffectE @ 344 NONAME - _ZTIN4QTMS17QTMSGlobalRoutingE @ 345 NONAME - _ZTIN4QTMS19QTMSGlobalVolEffectE @ 346 NONAME - _ZTIN4QTMS20QTMSGlobalGainEffectE @ 347 NONAME - _ZTIN4QTMS8QTMSCallE @ 348 NONAME - _ZTIN4QTMS8QTMSDTMFE @ 349 NONAME - _ZTVN4QTMS10QTMSFormatE @ 350 NONAME - _ZTVN4QTMS10QTMSStreamE @ 351 NONAME - _ZTVN4QTMS11QTMSFactoryE @ 352 NONAME - _ZTVN4QTMS13QTMSAMRFormatE @ 353 NONAME - _ZTVN4QTMS13QTMSMicSourceE @ 354 NONAME - _ZTVN4QTMS13QTMSModemSinkE @ 355 NONAME - _ZTVN4QTMS13QTMSPCMFormatE @ 356 NONAME - _ZTVN4QTMS14QTMSClientSinkE @ 357 NONAME - _ZTVN4QTMS14QTMSG711FormatE @ 358 NONAME - _ZTVN4QTMS14QTMSG729FormatE @ 359 NONAME - _ZTVN4QTMS14QTMSGainEffectE @ 360 NONAME - _ZTVN4QTMS14QTMSILBCFormatE @ 361 NONAME - _ZTVN4QTMS14QTMSInbandToneE @ 362 NONAME - _ZTVN4QTMS15QTMSModemSourceE @ 363 NONAME - _ZTVN4QTMS15QTMSSpeakerSinkE @ 364 NONAME - _ZTVN4QTMS16QTMSClientSourceE @ 365 NONAME - _ZTVN4QTMS16QTMSVolumeEffectE @ 366 NONAME - _ZTVN4QTMS17QTMSGlobalRoutingE @ 367 NONAME - _ZTVN4QTMS19QTMSGlobalVolEffectE @ 368 NONAME - _ZTVN4QTMS20QTMSGlobalGainEffectE @ 369 NONAME - _ZTVN4QTMS8QTMSCallE @ 370 NONAME - _ZTVN4QTMS8QTMSDTMFE @ 371 NONAME - _ZThn8_N4QTMS13QTMSAMRFormatD0Ev @ 372 NONAME - _ZThn8_N4QTMS13QTMSAMRFormatD1Ev @ 373 NONAME - _ZThn8_N4QTMS13QTMSMicSource7GetTypeERi @ 374 NONAME - _ZThn8_N4QTMS13QTMSModemSink7GetTypeERi @ 375 NONAME - _ZThn8_N4QTMS13QTMSPCMFormatD0Ev @ 376 NONAME - _ZThn8_N4QTMS13QTMSPCMFormatD1Ev @ 377 NONAME - _ZThn8_N4QTMS14QTMSClientSink7GetTypeERi @ 378 NONAME - _ZThn8_N4QTMS14QTMSG711FormatD0Ev @ 379 NONAME - _ZThn8_N4QTMS14QTMSG711FormatD1Ev @ 380 NONAME - _ZThn8_N4QTMS14QTMSG729FormatD0Ev @ 381 NONAME - _ZThn8_N4QTMS14QTMSG729FormatD1Ev @ 382 NONAME - _ZThn8_N4QTMS14QTMSGainEffect7GetTypeERi @ 383 NONAME - _ZThn8_N4QTMS14QTMSILBCFormatD0Ev @ 384 NONAME - _ZThn8_N4QTMS14QTMSILBCFormatD1Ev @ 385 NONAME - _ZThn8_N4QTMS15QTMSModemSource7GetTypeERi @ 386 NONAME - _ZThn8_N4QTMS15QTMSSpeakerSink7GetTypeERi @ 387 NONAME - _ZThn8_N4QTMS16QTMSClientSource7GetTypeERi @ 388 NONAME - _ZThn8_N4QTMS16QTMSVolumeEffect7GetTypeERi @ 389 NONAME - _ZThn8_N4QTMS19QTMSGlobalVolEffect7GetTypeERi @ 390 NONAME - _ZThn8_N4QTMS20QTMSGlobalGainEffect7GetTypeERi @ 391 NONAME - _ZN4QTMS12QTMSRingTone11qt_metacallEN11QMetaObject4CallEiPPv @ 392 NONAME - _ZN4QTMS12QTMSRingTone11qt_metacastEPKc @ 393 NONAME - _ZN4QTMS12QTMSRingTone13RingtoneEventERKS0_NS_15QTMSSignalEventE @ 394 NONAME - _ZN4QTMS12QTMSRingTone16staticMetaObjectE @ 395 NONAME DATA 16 - _ZN4QTMS12QTMSRingTone19getStaticMetaObjectEv @ 396 NONAME - _ZN4QTMS12QTMSRingTone4InitEiP8_GStringS2_ @ 397 NONAME - _ZN4QTMS12QTMSRingTone4MuteEv @ 398 NONAME - _ZN4QTMS12QTMSRingTone4PlayEv @ 399 NONAME - _ZN4QTMS12QTMSRingTone4StopEv @ 400 NONAME - _ZN4QTMS12QTMSRingTone5PauseEv @ 401 NONAME - _ZN4QTMS12QTMSRingTone6DeinitEv @ 402 NONAME - _ZN4QTMS12QTMSRingToneC1Ev @ 403 NONAME - _ZN4QTMS12QTMSRingToneC2Ev @ 404 NONAME - _ZN4QTMS12QTMSRingToneD0Ev @ 405 NONAME - _ZN4QTMS12QTMSRingToneD1Ev @ 406 NONAME - _ZN4QTMS12QTMSRingToneD2Ev @ 407 NONAME - _ZNK4QTMS12QTMSRingTone10metaObjectEv @ 408 NONAME - _ZTIN4QTMS12QTMSRingToneE @ 409 NONAME - _ZTVN4QTMS12QTMSRingToneE @ 410 NONAME + _ZN4QTMS12QTMSRingTone11qt_metacallEN11QMetaObject4CallEiPPv @ 68 NONAME + _ZN4QTMS12QTMSRingTone11qt_metacastEPKc @ 69 NONAME + _ZN4QTMS12QTMSRingTone13RingtoneEventERKS0_NS_15QTMSSignalEventE @ 70 NONAME + _ZN4QTMS12QTMSRingTone16staticMetaObjectE @ 71 NONAME DATA 16 + _ZN4QTMS12QTMSRingTone19getStaticMetaObjectEv @ 72 NONAME + _ZN4QTMS12QTMSRingTone4InitEiP8_GStringS2_ @ 73 NONAME + _ZN4QTMS12QTMSRingTone4MuteEv @ 74 NONAME + _ZN4QTMS12QTMSRingTone4PlayEv @ 75 NONAME + _ZN4QTMS12QTMSRingTone4StopEv @ 76 NONAME + _ZN4QTMS12QTMSRingTone5PauseEv @ 77 NONAME + _ZN4QTMS12QTMSRingTone6DeinitEv @ 78 NONAME + _ZN4QTMS12QTMSRingToneC1Ev @ 79 NONAME + _ZN4QTMS12QTMSRingToneC2Ev @ 80 NONAME + _ZN4QTMS12QTMSRingToneD0Ev @ 81 NONAME + _ZN4QTMS12QTMSRingToneD1Ev @ 82 NONAME + _ZN4QTMS12QTMSRingToneD2Ev @ 83 NONAME + _ZN4QTMS13QTMSAMRFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 84 NONAME + _ZN4QTMS13QTMSAMRFormat11qt_metacastEPKc @ 85 NONAME + _ZN4QTMS13QTMSAMRFormat16staticMetaObjectE @ 86 NONAME DATA 16 + _ZN4QTMS13QTMSAMRFormat19getStaticMetaObjectEv @ 87 NONAME + _ZN4QTMS13QTMSAMRFormatC1Ev @ 88 NONAME + _ZN4QTMS13QTMSAMRFormatC2Ev @ 89 NONAME + _ZN4QTMS13QTMSAMRFormatD0Ev @ 90 NONAME + _ZN4QTMS13QTMSAMRFormatD1Ev @ 91 NONAME + _ZN4QTMS13QTMSAMRFormatD2Ev @ 92 NONAME + _ZN4QTMS13QTMSMicSource11qt_metacallEN11QMetaObject4CallEiPPv @ 93 NONAME + _ZN4QTMS13QTMSMicSource11qt_metacastEPKc @ 94 NONAME + _ZN4QTMS13QTMSMicSource16staticMetaObjectE @ 95 NONAME DATA 16 + _ZN4QTMS13QTMSMicSource19getStaticMetaObjectEv @ 96 NONAME + _ZN4QTMS13QTMSMicSource7GetTypeERi @ 97 NONAME + _ZN4QTMS13QTMSMicSourceC1Ev @ 98 NONAME + _ZN4QTMS13QTMSMicSourceC2Ev @ 99 NONAME + _ZN4QTMS13QTMSMicSourceD0Ev @ 100 NONAME + _ZN4QTMS13QTMSMicSourceD1Ev @ 101 NONAME + _ZN4QTMS13QTMSMicSourceD2Ev @ 102 NONAME + _ZN4QTMS13QTMSModemSink11qt_metacallEN11QMetaObject4CallEiPPv @ 103 NONAME + _ZN4QTMS13QTMSModemSink11qt_metacastEPKc @ 104 NONAME + _ZN4QTMS13QTMSModemSink16staticMetaObjectE @ 105 NONAME DATA 16 + _ZN4QTMS13QTMSModemSink19getStaticMetaObjectEv @ 106 NONAME + _ZN4QTMS13QTMSModemSink7GetTypeERi @ 107 NONAME + _ZN4QTMS13QTMSModemSinkC1Ev @ 108 NONAME + _ZN4QTMS13QTMSModemSinkC2Ev @ 109 NONAME + _ZN4QTMS13QTMSModemSinkD0Ev @ 110 NONAME + _ZN4QTMS13QTMSModemSinkD1Ev @ 111 NONAME + _ZN4QTMS13QTMSModemSinkD2Ev @ 112 NONAME + _ZN4QTMS13QTMSPCMFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 113 NONAME + _ZN4QTMS13QTMSPCMFormat11qt_metacastEPKc @ 114 NONAME + _ZN4QTMS13QTMSPCMFormat16staticMetaObjectE @ 115 NONAME DATA 16 + _ZN4QTMS13QTMSPCMFormat19getStaticMetaObjectEv @ 116 NONAME + _ZN4QTMS13QTMSPCMFormatC1Ev @ 117 NONAME + _ZN4QTMS13QTMSPCMFormatC2Ev @ 118 NONAME + _ZN4QTMS13QTMSPCMFormatD0Ev @ 119 NONAME + _ZN4QTMS13QTMSPCMFormatD1Ev @ 120 NONAME + _ZN4QTMS13QTMSPCMFormatD2Ev @ 121 NONAME + _ZN4QTMS14QTMSClientSink11qt_metacallEN11QMetaObject4CallEiPPv @ 122 NONAME + _ZN4QTMS14QTMSClientSink11qt_metacastEPKc @ 123 NONAME + _ZN4QTMS14QTMSClientSink13ProcessBufferEPKNS_10QTMSBufferE @ 124 NONAME + _ZN4QTMS14QTMSClientSink15BufferProcessedEPNS_10QTMSBufferE @ 125 NONAME + _ZN4QTMS14QTMSClientSink16staticMetaObjectE @ 126 NONAME DATA 16 + _ZN4QTMS14QTMSClientSink19getStaticMetaObjectEv @ 127 NONAME + _ZN4QTMS14QTMSClientSink7GetTypeERi @ 128 NONAME + _ZN4QTMS14QTMSClientSinkC1Ev @ 129 NONAME + _ZN4QTMS14QTMSClientSinkC2Ev @ 130 NONAME + _ZN4QTMS14QTMSClientSinkD0Ev @ 131 NONAME + _ZN4QTMS14QTMSClientSinkD1Ev @ 132 NONAME + _ZN4QTMS14QTMSClientSinkD2Ev @ 133 NONAME + _ZN4QTMS14QTMSG711Format10GetVADModeERi @ 134 NONAME + _ZN4QTMS14QTMSG711Format10SetVADModeEi @ 135 NONAME + _ZN4QTMS14QTMSG711Format11qt_metacallEN11QMetaObject4CallEiPPv @ 136 NONAME + _ZN4QTMS14QTMSG711Format11qt_metacastEPKc @ 137 NONAME + _ZN4QTMS14QTMSG711Format16staticMetaObjectE @ 138 NONAME DATA 16 + _ZN4QTMS14QTMSG711Format19getStaticMetaObjectEv @ 139 NONAME + _ZN4QTMS14QTMSG711Format6GetCNGERi @ 140 NONAME + _ZN4QTMS14QTMSG711Format6GetPlcERi @ 141 NONAME + _ZN4QTMS14QTMSG711Format6SetCNGEi @ 142 NONAME + _ZN4QTMS14QTMSG711Format6SetPlcEi @ 143 NONAME + _ZN4QTMS14QTMSG711Format7GetModeERi @ 144 NONAME + _ZN4QTMS14QTMSG711Format7SetModeEi @ 145 NONAME + _ZN4QTMS14QTMSG711FormatC1Ev @ 146 NONAME + _ZN4QTMS14QTMSG711FormatC2Ev @ 147 NONAME + _ZN4QTMS14QTMSG711FormatD0Ev @ 148 NONAME + _ZN4QTMS14QTMSG711FormatD1Ev @ 149 NONAME + _ZN4QTMS14QTMSG711FormatD2Ev @ 150 NONAME + _ZN4QTMS14QTMSG729Format10GetVADModeERi @ 151 NONAME + _ZN4QTMS14QTMSG729Format10SetVADModeEi @ 152 NONAME + _ZN4QTMS14QTMSG729Format11qt_metacallEN11QMetaObject4CallEiPPv @ 153 NONAME + _ZN4QTMS14QTMSG729Format11qt_metacastEPKc @ 154 NONAME + _ZN4QTMS14QTMSG729Format16staticMetaObjectE @ 155 NONAME DATA 16 + _ZN4QTMS14QTMSG729Format19getStaticMetaObjectEv @ 156 NONAME + _ZN4QTMS14QTMSG729FormatC1Ev @ 157 NONAME + _ZN4QTMS14QTMSG729FormatC2Ev @ 158 NONAME + _ZN4QTMS14QTMSG729FormatD0Ev @ 159 NONAME + _ZN4QTMS14QTMSG729FormatD1Ev @ 160 NONAME + _ZN4QTMS14QTMSG729FormatD2Ev @ 161 NONAME + _ZN4QTMS14QTMSGainEffect11GetMaxLevelERj @ 162 NONAME + _ZN4QTMS14QTMSGainEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 163 NONAME + _ZN4QTMS14QTMSGainEffect11qt_metacastEPKc @ 164 NONAME + _ZN4QTMS14QTMSGainEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 165 NONAME + _ZN4QTMS14QTMSGainEffect16staticMetaObjectE @ 166 NONAME DATA 16 + _ZN4QTMS14QTMSGainEffect19getStaticMetaObjectEv @ 167 NONAME + _ZN4QTMS14QTMSGainEffect7GetTypeERi @ 168 NONAME + _ZN4QTMS14QTMSGainEffect8GetLevelERj @ 169 NONAME + _ZN4QTMS14QTMSGainEffect8SetLevelEj @ 170 NONAME + _ZN4QTMS14QTMSGainEffectC1Ev @ 171 NONAME + _ZN4QTMS14QTMSGainEffectC2Ev @ 172 NONAME + _ZN4QTMS14QTMSGainEffectD0Ev @ 173 NONAME + _ZN4QTMS14QTMSGainEffectD1Ev @ 174 NONAME + _ZN4QTMS14QTMSGainEffectD2Ev @ 175 NONAME + _ZN4QTMS14QTMSILBCFormat10GetVADModeERi @ 176 NONAME + _ZN4QTMS14QTMSILBCFormat10SetVADModeEi @ 177 NONAME + _ZN4QTMS14QTMSILBCFormat11qt_metacallEN11QMetaObject4CallEiPPv @ 178 NONAME + _ZN4QTMS14QTMSILBCFormat11qt_metacastEPKc @ 179 NONAME + _ZN4QTMS14QTMSILBCFormat16staticMetaObjectE @ 180 NONAME DATA 16 + _ZN4QTMS14QTMSILBCFormat19getStaticMetaObjectEv @ 181 NONAME + _ZN4QTMS14QTMSILBCFormat6GetCNGERi @ 182 NONAME + _ZN4QTMS14QTMSILBCFormat6SetCNGEi @ 183 NONAME + _ZN4QTMS14QTMSILBCFormat7GetModeERi @ 184 NONAME + _ZN4QTMS14QTMSILBCFormat7SetModeEi @ 185 NONAME + _ZN4QTMS14QTMSILBCFormatC1Ev @ 186 NONAME + _ZN4QTMS14QTMSILBCFormatC2Ev @ 187 NONAME + _ZN4QTMS14QTMSILBCFormatD0Ev @ 188 NONAME + _ZN4QTMS14QTMSILBCFormatD1Ev @ 189 NONAME + _ZN4QTMS14QTMSILBCFormatD2Ev @ 190 NONAME + _ZN4QTMS14QTMSInbandTone11qt_metacallEN11QMetaObject4CallEiPPv @ 191 NONAME + _ZN4QTMS14QTMSInbandTone11qt_metacastEPKc @ 192 NONAME + _ZN4QTMS14QTMSInbandTone15InbandToneEventERKS0_NS_15QTMSSignalEventE @ 193 NONAME + _ZN4QTMS14QTMSInbandTone16staticMetaObjectE @ 194 NONAME DATA 16 + _ZN4QTMS14QTMSInbandTone19getStaticMetaObjectEv @ 195 NONAME + _ZN4QTMS14QTMSInbandTone4StopEv @ 196 NONAME + _ZN4QTMS14QTMSInbandTone5StartEi @ 197 NONAME + _ZN4QTMS14QTMSInbandToneC1Ev @ 198 NONAME + _ZN4QTMS14QTMSInbandToneC2Ev @ 199 NONAME + _ZN4QTMS14QTMSInbandToneD0Ev @ 200 NONAME + _ZN4QTMS14QTMSInbandToneD1Ev @ 201 NONAME + _ZN4QTMS14QTMSInbandToneD2Ev @ 202 NONAME + _ZN4QTMS15QTMSModemSource11qt_metacallEN11QMetaObject4CallEiPPv @ 203 NONAME + _ZN4QTMS15QTMSModemSource11qt_metacastEPKc @ 204 NONAME + _ZN4QTMS15QTMSModemSource16staticMetaObjectE @ 205 NONAME DATA 16 + _ZN4QTMS15QTMSModemSource19getStaticMetaObjectEv @ 206 NONAME + _ZN4QTMS15QTMSModemSource7GetTypeERi @ 207 NONAME + _ZN4QTMS15QTMSModemSourceC1Ev @ 208 NONAME + _ZN4QTMS15QTMSModemSourceC2Ev @ 209 NONAME + _ZN4QTMS15QTMSModemSourceD0Ev @ 210 NONAME + _ZN4QTMS15QTMSModemSourceD1Ev @ 211 NONAME + _ZN4QTMS15QTMSModemSourceD2Ev @ 212 NONAME + _ZN4QTMS15QTMSSpeakerSink11qt_metacallEN11QMetaObject4CallEiPPv @ 213 NONAME + _ZN4QTMS15QTMSSpeakerSink11qt_metacastEPKc @ 214 NONAME + _ZN4QTMS15QTMSSpeakerSink16staticMetaObjectE @ 215 NONAME DATA 16 + _ZN4QTMS15QTMSSpeakerSink19getStaticMetaObjectEv @ 216 NONAME + _ZN4QTMS15QTMSSpeakerSink7GetTypeERi @ 217 NONAME + _ZN4QTMS15QTMSSpeakerSinkC1Ev @ 218 NONAME + _ZN4QTMS15QTMSSpeakerSinkC2Ev @ 219 NONAME + _ZN4QTMS15QTMSSpeakerSinkD0Ev @ 220 NONAME + _ZN4QTMS15QTMSSpeakerSinkD1Ev @ 221 NONAME + _ZN4QTMS15QTMSSpeakerSinkD2Ev @ 222 NONAME + _ZN4QTMS16QTMSClientSource10FillBufferERNS_10QTMSBufferE @ 223 NONAME + _ZN4QTMS16QTMSClientSource11qt_metacallEN11QMetaObject4CallEiPPv @ 224 NONAME + _ZN4QTMS16QTMSClientSource11qt_metacastEPKc @ 225 NONAME + _ZN4QTMS16QTMSClientSource12BufferFilledERNS_10QTMSBufferE @ 226 NONAME + _ZN4QTMS16QTMSClientSource13ProcessBufferEPNS_10QTMSBufferE @ 227 NONAME + _ZN4QTMS16QTMSClientSource14GetEnqueueModeERi @ 228 NONAME + _ZN4QTMS16QTMSClientSource14SetEnqueueModeEi @ 229 NONAME + _ZN4QTMS16QTMSClientSource15BufferProcessedEPKNS_10QTMSBufferEi @ 230 NONAME + _ZN4QTMS16QTMSClientSource16staticMetaObjectE @ 231 NONAME DATA 16 + _ZN4QTMS16QTMSClientSource19getStaticMetaObjectEv @ 232 NONAME + _ZN4QTMS16QTMSClientSource5FlushEv @ 233 NONAME + _ZN4QTMS16QTMSClientSource7GetTypeERi @ 234 NONAME + _ZN4QTMS16QTMSClientSourceC1Ev @ 235 NONAME + _ZN4QTMS16QTMSClientSourceC2Ev @ 236 NONAME + _ZN4QTMS16QTMSClientSourceD0Ev @ 237 NONAME + _ZN4QTMS16QTMSClientSourceD1Ev @ 238 NONAME + _ZN4QTMS16QTMSClientSourceD2Ev @ 239 NONAME + _ZN4QTMS16QTMSVolumeEffect11GetMaxLevelERj @ 240 NONAME + _ZN4QTMS16QTMSVolumeEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 241 NONAME + _ZN4QTMS16QTMSVolumeEffect11qt_metacastEPKc @ 242 NONAME + _ZN4QTMS16QTMSVolumeEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 243 NONAME + _ZN4QTMS16QTMSVolumeEffect16staticMetaObjectE @ 244 NONAME DATA 16 + _ZN4QTMS16QTMSVolumeEffect19getStaticMetaObjectEv @ 245 NONAME + _ZN4QTMS16QTMSVolumeEffect7GetTypeERi @ 246 NONAME + _ZN4QTMS16QTMSVolumeEffect8GetLevelERj @ 247 NONAME + _ZN4QTMS16QTMSVolumeEffect8SetLevelEj @ 248 NONAME + _ZN4QTMS16QTMSVolumeEffectC1Ev @ 249 NONAME + _ZN4QTMS16QTMSVolumeEffectC2Ev @ 250 NONAME + _ZN4QTMS16QTMSVolumeEffectD0Ev @ 251 NONAME + _ZN4QTMS16QTMSVolumeEffectD1Ev @ 252 NONAME + _ZN4QTMS16QTMSVolumeEffectD2Ev @ 253 NONAME + _ZN4QTMS17QTMSGlobalRouting11qt_metacallEN11QMetaObject4CallEiPPv @ 254 NONAME + _ZN4QTMS17QTMSGlobalRouting11qt_metacastEPKc @ 255 NONAME + _ZN4QTMS17QTMSGlobalRouting16staticMetaObjectE @ 256 NONAME DATA 16 + _ZN4QTMS17QTMSGlobalRouting17GetPreviousOutputERi @ 257 NONAME + _ZN4QTMS17QTMSGlobalRouting18GlobalRoutingEventERKS0_NS_15QTMSSignalEventEi @ 258 NONAME + _ZN4QTMS17QTMSGlobalRouting19GetAvailableOutputsERSt6vectorIjSaIjEE @ 259 NONAME + _ZN4QTMS17QTMSGlobalRouting19getStaticMetaObjectEv @ 260 NONAME + _ZN4QTMS17QTMSGlobalRouting9GetOutputERi @ 261 NONAME + _ZN4QTMS17QTMSGlobalRouting9SetOutputEi @ 262 NONAME + _ZN4QTMS17QTMSGlobalRoutingC1Ev @ 263 NONAME + _ZN4QTMS17QTMSGlobalRoutingC2Ev @ 264 NONAME + _ZN4QTMS17QTMSGlobalRoutingD0Ev @ 265 NONAME + _ZN4QTMS17QTMSGlobalRoutingD1Ev @ 266 NONAME + _ZN4QTMS17QTMSGlobalRoutingD2Ev @ 267 NONAME + _ZN4QTMS19QTMSGlobalVolEffect11GetMaxLevelERj @ 268 NONAME + _ZN4QTMS19QTMSGlobalVolEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 269 NONAME + _ZN4QTMS19QTMSGlobalVolEffect11qt_metacastEPKc @ 270 NONAME + _ZN4QTMS19QTMSGlobalVolEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 271 NONAME + _ZN4QTMS19QTMSGlobalVolEffect16staticMetaObjectE @ 272 NONAME DATA 16 + _ZN4QTMS19QTMSGlobalVolEffect19getStaticMetaObjectEv @ 273 NONAME + _ZN4QTMS19QTMSGlobalVolEffect7GetTypeERi @ 274 NONAME + _ZN4QTMS19QTMSGlobalVolEffect8GetLevelERj @ 275 NONAME + _ZN4QTMS19QTMSGlobalVolEffect8SetLevelEj @ 276 NONAME + _ZN4QTMS19QTMSGlobalVolEffectC1Ev @ 277 NONAME + _ZN4QTMS19QTMSGlobalVolEffectC2Ev @ 278 NONAME + _ZN4QTMS19QTMSGlobalVolEffectD0Ev @ 279 NONAME + _ZN4QTMS19QTMSGlobalVolEffectD1Ev @ 280 NONAME + _ZN4QTMS19QTMSGlobalVolEffectD2Ev @ 281 NONAME + _ZN4QTMS20QTMSGlobalGainEffect11GetMaxLevelERj @ 282 NONAME + _ZN4QTMS20QTMSGlobalGainEffect11qt_metacallEN11QMetaObject4CallEiPPv @ 283 NONAME + _ZN4QTMS20QTMSGlobalGainEffect11qt_metacastEPKc @ 284 NONAME + _ZN4QTMS20QTMSGlobalGainEffect12EffectsEventERKNS_10QTMSEffectENS_15QTMSSignalEventE @ 285 NONAME + _ZN4QTMS20QTMSGlobalGainEffect16staticMetaObjectE @ 286 NONAME DATA 16 + _ZN4QTMS20QTMSGlobalGainEffect19getStaticMetaObjectEv @ 287 NONAME + _ZN4QTMS20QTMSGlobalGainEffect7GetTypeERi @ 288 NONAME + _ZN4QTMS20QTMSGlobalGainEffect8GetLevelERj @ 289 NONAME + _ZN4QTMS20QTMSGlobalGainEffect8SetLevelEj @ 290 NONAME + _ZN4QTMS20QTMSGlobalGainEffectC1Ev @ 291 NONAME + _ZN4QTMS20QTMSGlobalGainEffectC2Ev @ 292 NONAME + _ZN4QTMS20QTMSGlobalGainEffectD0Ev @ 293 NONAME + _ZN4QTMS20QTMSGlobalGainEffectD1Ev @ 294 NONAME + _ZN4QTMS20QTMSGlobalGainEffectD2Ev @ 295 NONAME + _ZN4QTMS8QTMSCall11GetCallTypeEv @ 296 NONAME + _ZN4QTMS8QTMSCall11qt_metacallEN11QMetaObject4CallEiPPv @ 297 NONAME + _ZN4QTMS8QTMSCall11qt_metacastEPKc @ 298 NONAME + _ZN4QTMS8QTMSCall12CreateStreamEiRPNS_10QTMSStreamE @ 299 NONAME + _ZN4QTMS8QTMSCall12DeleteStreamERPNS_10QTMSStreamE @ 300 NONAME + _ZN4QTMS8QTMSCall16GetCallContextIdERj @ 301 NONAME + _ZN4QTMS8QTMSCall16staticMetaObjectE @ 302 NONAME DATA 16 + _ZN4QTMS8QTMSCall19getStaticMetaObjectEv @ 303 NONAME + _ZN4QTMS8QTMSCallC1Ev @ 304 NONAME + _ZN4QTMS8QTMSCallC2Ev @ 305 NONAME + _ZN4QTMS8QTMSCallD0Ev @ 306 NONAME + _ZN4QTMS8QTMSCallD1Ev @ 307 NONAME + _ZN4QTMS8QTMSCallD2Ev @ 308 NONAME + _ZN4QTMS8QTMSDTMF11qt_metacallEN11QMetaObject4CallEiPPv @ 309 NONAME + _ZN4QTMS8QTMSDTMF11qt_metacastEPKc @ 310 NONAME + _ZN4QTMS8QTMSDTMF16staticMetaObjectE @ 311 NONAME DATA 16 + _ZN4QTMS8QTMSDTMF19getStaticMetaObjectEv @ 312 NONAME + _ZN4QTMS8QTMSDTMF25ContinueDTMFStringSendingEi @ 313 NONAME + _ZN4QTMS8QTMSDTMF4StopEv @ 314 NONAME + _ZN4QTMS8QTMSDTMF5StartEv @ 315 NONAME + _ZN4QTMS8QTMSDTMF7SetToneEP8_GString @ 316 NONAME + _ZN4QTMS8QTMSDTMF9DTMFEventERKS0_NS_15QTMSSignalEventE @ 317 NONAME + _ZN4QTMS8QTMSDTMFC1Ev @ 318 NONAME + _ZN4QTMS8QTMSDTMFC2Ev @ 319 NONAME + _ZN4QTMS8QTMSDTMFD0Ev @ 320 NONAME + _ZN4QTMS8QTMSDTMFD1Ev @ 321 NONAME + _ZN4QTMS8QTMSDTMFD2Ev @ 322 NONAME + _ZNK4QTMS10QTMSStream10metaObjectEv @ 323 NONAME + _ZNK4QTMS11QTMSFactory10metaObjectEv @ 324 NONAME + _ZNK4QTMS12QTMSRingTone10metaObjectEv @ 325 NONAME + _ZNK4QTMS13QTMSAMRFormat10metaObjectEv @ 326 NONAME + _ZNK4QTMS13QTMSMicSource10metaObjectEv @ 327 NONAME + _ZNK4QTMS13QTMSModemSink10metaObjectEv @ 328 NONAME + _ZNK4QTMS13QTMSPCMFormat10metaObjectEv @ 329 NONAME + _ZNK4QTMS14QTMSClientSink10metaObjectEv @ 330 NONAME + _ZNK4QTMS14QTMSG711Format10metaObjectEv @ 331 NONAME + _ZNK4QTMS14QTMSG729Format10metaObjectEv @ 332 NONAME + _ZNK4QTMS14QTMSGainEffect10metaObjectEv @ 333 NONAME + _ZNK4QTMS14QTMSILBCFormat10metaObjectEv @ 334 NONAME + _ZNK4QTMS14QTMSInbandTone10metaObjectEv @ 335 NONAME + _ZNK4QTMS15QTMSModemSource10metaObjectEv @ 336 NONAME + _ZNK4QTMS15QTMSSpeakerSink10metaObjectEv @ 337 NONAME + _ZNK4QTMS16QTMSClientSource10metaObjectEv @ 338 NONAME + _ZNK4QTMS16QTMSVolumeEffect10metaObjectEv @ 339 NONAME + _ZNK4QTMS17QTMSGlobalRouting10metaObjectEv @ 340 NONAME + _ZNK4QTMS19QTMSGlobalVolEffect10metaObjectEv @ 341 NONAME + _ZNK4QTMS20QTMSGlobalGainEffect10metaObjectEv @ 342 NONAME + _ZNK4QTMS8QTMSCall10metaObjectEv @ 343 NONAME + _ZNK4QTMS8QTMSDTMF10metaObjectEv @ 344 NONAME + _ZTIN4QTMS10QTMSFormatE @ 345 NONAME + _ZTIN4QTMS10QTMSStreamE @ 346 NONAME + _ZTIN4QTMS11QTMSFactoryE @ 347 NONAME + _ZTIN4QTMS12QTMSRingToneE @ 348 NONAME + _ZTIN4QTMS13QTMSAMRFormatE @ 349 NONAME + _ZTIN4QTMS13QTMSMicSourceE @ 350 NONAME + _ZTIN4QTMS13QTMSModemSinkE @ 351 NONAME + _ZTIN4QTMS13QTMSPCMFormatE @ 352 NONAME + _ZTIN4QTMS14QTMSClientSinkE @ 353 NONAME + _ZTIN4QTMS14QTMSG711FormatE @ 354 NONAME + _ZTIN4QTMS14QTMSG729FormatE @ 355 NONAME + _ZTIN4QTMS14QTMSGainEffectE @ 356 NONAME + _ZTIN4QTMS14QTMSILBCFormatE @ 357 NONAME + _ZTIN4QTMS14QTMSInbandToneE @ 358 NONAME + _ZTIN4QTMS15QTMSModemSourceE @ 359 NONAME + _ZTIN4QTMS15QTMSSpeakerSinkE @ 360 NONAME + _ZTIN4QTMS16QTMSClientSourceE @ 361 NONAME + _ZTIN4QTMS16QTMSVolumeEffectE @ 362 NONAME + _ZTIN4QTMS17QTMSGlobalRoutingE @ 363 NONAME + _ZTIN4QTMS19QTMSGlobalVolEffectE @ 364 NONAME + _ZTIN4QTMS20QTMSGlobalGainEffectE @ 365 NONAME + _ZTIN4QTMS8QTMSCallE @ 366 NONAME + _ZTIN4QTMS8QTMSDTMFE @ 367 NONAME + _ZTVN4QTMS10QTMSFormatE @ 368 NONAME + _ZTVN4QTMS10QTMSStreamE @ 369 NONAME + _ZTVN4QTMS11QTMSFactoryE @ 370 NONAME + _ZTVN4QTMS12QTMSRingToneE @ 371 NONAME + _ZTVN4QTMS13QTMSAMRFormatE @ 372 NONAME + _ZTVN4QTMS13QTMSMicSourceE @ 373 NONAME + _ZTVN4QTMS13QTMSModemSinkE @ 374 NONAME + _ZTVN4QTMS13QTMSPCMFormatE @ 375 NONAME + _ZTVN4QTMS14QTMSClientSinkE @ 376 NONAME + _ZTVN4QTMS14QTMSG711FormatE @ 377 NONAME + _ZTVN4QTMS14QTMSG729FormatE @ 378 NONAME + _ZTVN4QTMS14QTMSGainEffectE @ 379 NONAME + _ZTVN4QTMS14QTMSILBCFormatE @ 380 NONAME + _ZTVN4QTMS14QTMSInbandToneE @ 381 NONAME + _ZTVN4QTMS15QTMSModemSourceE @ 382 NONAME + _ZTVN4QTMS15QTMSSpeakerSinkE @ 383 NONAME + _ZTVN4QTMS16QTMSClientSourceE @ 384 NONAME + _ZTVN4QTMS16QTMSVolumeEffectE @ 385 NONAME + _ZTVN4QTMS17QTMSGlobalRoutingE @ 386 NONAME + _ZTVN4QTMS19QTMSGlobalVolEffectE @ 387 NONAME + _ZTVN4QTMS20QTMSGlobalGainEffectE @ 388 NONAME + _ZTVN4QTMS8QTMSCallE @ 389 NONAME + _ZTVN4QTMS8QTMSDTMFE @ 390 NONAME + _ZThn8_N4QTMS13QTMSAMRFormatD0Ev @ 391 NONAME + _ZThn8_N4QTMS13QTMSAMRFormatD1Ev @ 392 NONAME + _ZThn8_N4QTMS13QTMSMicSource7GetTypeERi @ 393 NONAME + _ZThn8_N4QTMS13QTMSModemSink7GetTypeERi @ 394 NONAME + _ZThn8_N4QTMS13QTMSPCMFormatD0Ev @ 395 NONAME + _ZThn8_N4QTMS13QTMSPCMFormatD1Ev @ 396 NONAME + _ZThn8_N4QTMS14QTMSClientSink7GetTypeERi @ 397 NONAME + _ZThn8_N4QTMS14QTMSG711FormatD0Ev @ 398 NONAME + _ZThn8_N4QTMS14QTMSG711FormatD1Ev @ 399 NONAME + _ZThn8_N4QTMS14QTMSG729FormatD0Ev @ 400 NONAME + _ZThn8_N4QTMS14QTMSG729FormatD1Ev @ 401 NONAME + _ZThn8_N4QTMS14QTMSGainEffect7GetTypeERi @ 402 NONAME + _ZThn8_N4QTMS14QTMSILBCFormatD0Ev @ 403 NONAME + _ZThn8_N4QTMS14QTMSILBCFormatD1Ev @ 404 NONAME + _ZThn8_N4QTMS15QTMSModemSource7GetTypeERi @ 405 NONAME + _ZThn8_N4QTMS15QTMSSpeakerSink7GetTypeERi @ 406 NONAME + _ZThn8_N4QTMS16QTMSClientSource7GetTypeERi @ 407 NONAME + _ZThn8_N4QTMS16QTMSVolumeEffect7GetTypeERi @ 408 NONAME + _ZThn8_N4QTMS19QTMSGlobalVolEffect7GetTypeERi @ 409 NONAME + _ZThn8_N4QTMS20QTMSGlobalGainEffect7GetTypeERi @ 410 NONAME diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/qtmsbufferimpl.h --- a/qtms/inc/qtmsbufferimpl.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/qtmsbufferimpl.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,6 +20,11 @@ #include +// FORWARD DECLARATION +namespace TMS { +class TMSBuffer; +} + namespace QTMS { // FORWARD DECLARATIONS @@ -29,9 +34,9 @@ class QTMSBufferImpl { public: - static gint Create(QTMSBufferType ctype, guint size, - QTMSBuffer*& tmsbuffer); - static gint Delete(QTMSBuffer*& tmsbuffer); + static gint Create(QTMSBufferType ctype, QTMSBuffer*& buffer, + TMS::TMSBuffer*& tmsbuffer); + static gint Delete(QTMSBuffer*& buffer); }; } //namespace QTMS diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/qtmsfactoryimpl.h --- a/qtms/inc/qtmsfactoryimpl.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/qtmsfactoryimpl.h Thu Jul 22 16:38:21 2010 +0100 @@ -69,9 +69,6 @@ gint DeleteGlobalRouting(QTMSGlobalRouting*& globrouting); gint CreateDTMF(QTMSStreamType streamid, QTMSDTMF*& dtmf); gint DeleteDTMF(QTMSDTMF*& dtmf); - gint CreateRTPSession(QTMSRTPSession*& rtpsession, guint8* sdp, - guint mode); - gint DeleteRTPSession(QTMSRTPSession*& rtpsession); gint CreateRingTonePlayer(QTMSRingTone*& rt); gint DeleteRingTonePlayer(QTMSRingTone*& rt); gint CreateInbandTonePlayer(QTMSInbandTone*& inbandtone); diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/qtmsgaineffectimpl.h --- a/qtms/inc/qtmsgaineffectimpl.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/qtmsgaineffectimpl.h Thu Jul 22 16:38:21 2010 +0100 @@ -50,9 +50,6 @@ private: QTMSGainEffectImpl(); gint PostConstruct(); - -private: - gpointer iUserData; }; } //namespace QTMS diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/qtmsmembuffer.h --- a/qtms/inc/qtmsmembuffer.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/qtmsmembuffer.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,6 +20,11 @@ #include +// FORWARD DECLARATION +namespace TMS { +class TMSBuffer; +} + namespace QTMS { // QTMSMemBuffer class @@ -29,24 +34,9 @@ virtual ~QTMSMemBuffer(); /** - * Creates Memory Buffer object of the given size. - * The memory is allocated on the heap. - * - * @param size - * Size of the buffer to be created. - * - * @param buffer - * Created buffer object. - * - * @return - * TMS_RESULT_SUCCESS if buffer is created successfully. - * TMS_RESULT_INSUFFICIENT_MEMORY if buffer creation failed due to - * insufficient memory. - * TMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED if the buffer type is not - * supported. - * + * Factory methods */ - static gint Create(guint size, QTMSBuffer*& buffer); + static gint Create(QTMSBuffer*& buffer, TMS::TMSBuffer*& tmsbuffer); /** * Return buffer type. @@ -108,11 +98,14 @@ private: QTMSMemBuffer(); - gint PostConstruct(guint size); + gint PostConstruct(guint size, TMS::TMSBuffer*& tmsbuffer); + +protected: + TMS::TMSBuffer* iTmsBuffer; private: guint iBufferSize; - guint iTimeStamp; + guint64 iTimeStamp; guint8* iDataPtr; gboolean iOwnsBuffer; }; diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/qtmsstreamimpl.h --- a/qtms/inc/qtmsstreamimpl.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/qtmsstreamimpl.h Thu Jul 22 16:38:21 2010 +0100 @@ -30,26 +30,10 @@ namespace QTMS { -// FORWARD DECLARATIONS -//class QTMSStream; -class QTMSSource; -class QTMSSink; -class QTMSForamt; -class QTMSEffect; -class QTMSBuffer; -class QTMSFormat; - // QTMSStreamImpl class class QTMSStreamImpl : public QTMSStream, public TMS::TMSStreamObserver - { - enum TQueueType - { - EMsgBufQueue, - EMsgComQueue - }; - public: static gint Create(QTMSCallType callType, QTMSStreamType stype, QTMSStream*& qstrm, TMS::TMSStream*& tmsstrm); diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/qtmsvolumeeffectimpl.h --- a/qtms/inc/qtmsvolumeeffectimpl.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/qtmsvolumeeffectimpl.h Thu Jul 22 16:38:21 2010 +0100 @@ -50,9 +50,6 @@ private: QTMSVolumeEffectImpl(); gint PostConstruct(); - -private: - gpointer iUserData; }; } //namespace QTMS diff -r 3b7506f63335 -r f3d2589f22d6 qtms/inc/tmsutility.h --- a/qtms/inc/tmsutility.h Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/inc/tmsutility.h Thu Jul 22 16:38:21 2010 +0100 @@ -20,7 +20,7 @@ #include #include -#include +#include #ifdef _DEBUG #include #endif @@ -63,6 +63,9 @@ #define TOFOURCC(format) TMSUtility::ToFourCC(format) #define TOTMSFORMAT(fourcc) TMSUtility::FourCCToTMSFormat(fourcc) +_LIT(KQTMSPanic, "QTMS Panic!" ); +#define PANIC(reason) User::Panic(KQTMSPanic, reason) + // TMSUtility class class TMSUtility { diff -r 3b7506f63335 -r f3d2589f22d6 qtms/qtmsapi.pro --- a/qtms/qtmsapi.pro Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/qtmsapi.pro Thu Jul 22 16:38:21 2010 +0100 @@ -1,5 +1,4 @@ -# -# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# Copyright (c) 2010 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" @@ -11,7 +10,7 @@ # # Contributors: # -# Description: +# Description: QTMS API project description # TEMPLATE = lib @@ -19,42 +18,35 @@ CONFIG += dll DEFINES += BUILD_TMS_WRAPPER_DLL -QT = core +QT = core CONFIG -= gui +DEFINES += SYMBIAN +TARGET.CAPABILITY = All -tcb +TARGET.EPOCALLOWDLLDATA = 1 +TARGET.UID2 = 0x10009D8D +TARGET.UID3 = 0x10207CA5 - DEFINES += SYMBIAN - TARGET.CAPABILITY = All -tcb - TARGET.EPOCALLOWDLLDATA = 1 - TARGET.UID2 = 0x10009D8D - TARGET.UID3 = 0x10207CA5 - - BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include " \ - "rom/qtms.iby CORE_MW_LAYER_IBY_EXPORT_PATH(qtms.iby)" \ + "rom/qtms.iby CORE_MW_LAYER_IBY_EXPORT_PATH(qtms.iby)" \ "data/qtmsapi_stub.sis /epoc32/data/z/system/install/qtmsapi_stub.sis" - DEPENDPATH += . inc INCLUDEPATH += . \ .\inc - - -qtmsDefFiles = \ - "$${LITERAL_HASH}ifdef WINSCW" \ - "DEFFILE bwins/qtms.def" \ - "$${LITERAL_HASH}else" \ - "DEFFILE eabi/qtms.def" \ - "$${LITERAL_HASH}endif" - -MMP_RULES += qtmsDefFiles +defBlock = \ + "$${LITERAL_HASH}if defined(EABI)" \ + "DEFFILE eabi/qtms.def" \ + "$${LITERAL_HASH}else" \ + "DEFFILE bwins/qtms.def" \ + "$${LITERAL_HASH}endif" +MMP_RULES += defBlock INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE \ $$OS_LAYER_LIBC_SYSTEMINCLUDE \ $$OS_LAYER_GLIB_SYSTEMINCLUDE - LIBS += -ltmsfactory \ -ltmsapi \ -ltmsutility \ @@ -63,7 +55,6 @@ -llibgmodule \ -llibstdcpp - # $$_PRO_FILE_PWD_ points to the directory of the pro file MOC_DIR = ./tmp @@ -100,13 +91,11 @@ qtmsdtmf.h \ qtmsinbandtone.h - - # Source SOURCES += qtmsfactory.cpp \ qtmsfactoryimpl.cpp \ + qtmsbufferimpl.cpp \ qtmsmembuffer.cpp \ - qtmsbufferimpl.cpp \ qtmscall.cpp \ qtmscallimpl.cpp \ qtmsstream.cpp \ @@ -151,4 +140,5 @@ qtmsinbandtone.cpp \ qtmsinbandtoneimpl.cpp -SYMBIAN_PLATFORMS = DEFAULT \ No newline at end of file +SYMBIAN_PLATFORMS = DEFAULT + diff -r 3b7506f63335 -r f3d2589f22d6 qtms/rom/qtms.iby --- a/qtms/rom/qtms.iby Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/rom/qtms.iby Thu Jul 22 16:38:21 2010 +0100 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2010 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" @@ -11,12 +11,10 @@ * * Contributors: * -* Description: -* Iby file for QTMS +* Description: Iby file for QTMS * */ - #ifndef QTMS_IBY #define QTMS_IBY @@ -24,11 +22,10 @@ #include #ifdef FF_TMS -file=ABI_DIR\BUILD_DIR\qtmsapi.dll SHARED_LIB_DIR\qtmsapi.dll +file=ABI_DIR\BUILD_DIR\qtmsapi.dll SHARED_LIB_DIR\qtmsapi.dll //QTMS_Stub -data=ZSYSTEM/install/qtmsapi_stub.sis System/Install/qtmsapi_stub.sis +data=ZSYSTEM/install/qtmsapi_stub.sis System/Install/qtmsapi_stub.sis -#endif - -#endif +#endif //FF_TMS +#endif //QTMS_IBY diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsamrimpl.cpp --- a/qtms/src/qtmsamrimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsamrimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -74,7 +74,6 @@ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iFormat) { - //status = static_cast (iFormat)->GetType(fmttype); status = iFormat->GetType(fmttype); } return status; diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsbufferimpl.cpp --- a/qtms/src/qtmsbufferimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsbufferimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -11,7 +11,7 @@ * * Contributors: * - * Description: QT Bindings for TMS + * Description: Telephony Multimedia Service * */ @@ -22,15 +22,15 @@ using namespace QTMS; -gint QTMSBufferImpl::Create(QTMSBufferType buffertype, guint size, - QTMSBuffer*& tmsbuffer) +gint QTMSBufferImpl::Create(QTMSBufferType buffertype, QTMSBuffer*& buffer, + TMS::TMSBuffer*& tmsbuffer) { - gint ret(TMS_RESULT_INSUFFICIENT_MEMORY); + gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); TRACE_PRN_FN_ENT; switch (buffertype) { case QTMS_BUFFER_MEMORY: - ret = QTMSMemBuffer::Create(size, tmsbuffer); + ret = QTMSMemBuffer::Create(buffer, tmsbuffer); break; default: ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED; @@ -41,17 +41,17 @@ return ret; } -gint QTMSBufferImpl::Delete(QTMSBuffer*& tmsbuffer) +gint QTMSBufferImpl::Delete(QTMSBuffer*& buffer) { - gint ret(TMS_RESULT_INVALID_ARGUMENT); + gint ret(QTMS_RESULT_INVALID_ARGUMENT); TRACE_PRN_FN_ENT; QTMSBufferType buffertype; - ret = tmsbuffer->GetType(buffertype); + ret = buffer->GetType(buffertype); switch (buffertype) { case QTMS_BUFFER_MEMORY: - delete (QTMSMemBuffer*) (tmsbuffer); - tmsbuffer = NULL; + delete (static_cast (buffer)); + buffer = NULL; ret = QTMS_RESULT_SUCCESS; break; default: diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmscall.cpp --- a/qtms/src/qtmscall.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmscall.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -83,7 +83,6 @@ gint QTMSCall::DeleteStream(QTMSStream*& strm) { gint status(QTMS_RESULT_SUCCESS); - //delete (static_cast (strm)); delete strm; strm = NULL; return status; diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsclientsink.cpp --- a/qtms/src/qtmsclientsink.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsclientsink.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -32,13 +32,13 @@ delete iSink; } -// Push mode -gint QTMSClientSink::BufferProcessed(TMS::TMSBuffer* buffer) +gint QTMSClientSink::BufferProcessed(QTMSBuffer* buffer) { gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iSink) { - status = static_cast (iSink)->BufferProcessed(buffer); + TMSBuffer* buf(reinterpret_cast (buffer)); + status = static_cast (iSink)->BufferProcessed(buf); } return status; } @@ -49,7 +49,6 @@ if (iSink) { status = static_cast (iSink)->GetType(sinktype); - //status = iSink->GetType(sinktype); //virtual; should be ok } return status; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsclientsinkimpl.cpp --- a/qtms/src/qtmsclientsinkimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsclientsinkimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -18,6 +18,7 @@ #include #include #include +#include #include "qtmsclientsinkimpl.h" using namespace QTMS; @@ -93,7 +94,9 @@ void QTMSClientSinkImpl::ProcessBuffer(const TMS::TMSBuffer* buffer) { - emit QTMS::QTMSClientSink::ProcessBuffer(buffer); + TMSBuffer* buf(const_cast (buffer)); + QTMSBuffer* qtbuf(reinterpret_cast (buf)); + emit QTMSClientSink::ProcessBuffer(qtbuf); } // End of file diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsclientsource.cpp --- a/qtms/src/qtmsclientsource.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsclientsource.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -74,23 +74,25 @@ return status; } -gint QTMSClientSource::BufferFilled(TMS::TMSBuffer& buffer) +gint QTMSClientSource::BufferFilled(QTMSBuffer& buffer) { gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iSource) { - status = static_cast (iSource)->BufferFilled(buffer); + TMSBuffer& buf(reinterpret_cast(buffer)); + status = static_cast (iSource)->BufferFilled(buf); } return status; } // Push mode -gint QTMSClientSource::ProcessBuffer(TMS::TMSBuffer* buffer) +gint QTMSClientSource::ProcessBuffer(QTMSBuffer* buffer) { gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iSource) { - status = static_cast (iSource)->ProcessBuffer(buffer); + TMSBuffer* buf(reinterpret_cast(buffer)); + status = static_cast (iSource)->ProcessBuffer(buf); } return status; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsclientsourceimpl.cpp --- a/qtms/src/qtmsclientsourceimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsclientsourceimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -16,6 +16,7 @@ */ #include +#include #include #include #include "qtmsclientsourceimpl.h" @@ -32,8 +33,7 @@ RemoveObserver(*this); } -gint QTMSClientSourceImpl::Create(QTMSSource*& qsource, - TMS::TMSSource*& tmssource) +gint QTMSClientSourceImpl::Create(QTMSSource*& qsource, TMSSource*& tmssource) { gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); QTMSClientSourceImpl* self = new QTMSClientSourceImpl(); @@ -70,7 +70,8 @@ return ret; } -gint QTMSClientSourceImpl::RemoveObserver(TMS::TMSClientSourceObserver& obsrvr) +gint QTMSClientSourceImpl::RemoveObserver( + TMS::TMSClientSourceObserver& obsrvr) { gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iSource) @@ -94,13 +95,15 @@ void QTMSClientSourceImpl::FillBuffer(TMS::TMSBuffer& buffer) { - emit QTMS::QTMSClientSource::FillBuffer(buffer); + emit QTMSClientSource::FillBuffer(reinterpret_cast (buffer)); } void QTMSClientSourceImpl::BufferProcessed(const TMS::TMSBuffer* buffer, gint reason) { - emit QTMS::QTMSClientSource::BufferProcessed(buffer, reason); + TMSBuffer* buf(const_cast (buffer)); + emit QTMSClientSource::BufferProcessed( + reinterpret_cast (buf), reason); } // End of file diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsdtmfimpl.cpp --- a/qtms/src/qtmsdtmfimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsdtmfimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -57,13 +57,13 @@ } gint QTMSDTMFImpl::AddObserver(TMS::TMSDTMFObserver& obsrvr, - gpointer /*user_data*/) + gpointer user_data) { gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iDtmf) { - ret = iDtmf->AddObserver(obsrvr, NULL); + ret = iDtmf->AddObserver(obsrvr, user_data); } return ret; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsfactoryimpl.cpp --- a/qtms/src/qtmsfactoryimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsfactoryimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -50,25 +50,30 @@ #include "qtmsg711impl.h" #include "qtmsg729impl.h" #include "qtmsilbcimpl.h" -#include "qtmsmembuffer.h" +#include "qtmsbufferimpl.h" using namespace QTMS; using namespace TMS; QTMSFactoryImpl::QTMSFactoryImpl() { + TRACE_PRN_FN_ENT; TMSVer* ver = NULL; TMSFactory::CreateFactory(iFactory, *ver); + TRACE_PRN_FN_EXT; } QTMSFactoryImpl::~QTMSFactoryImpl() { + TRACE_PRN_FN_ENT; delete iFactory; + TRACE_PRN_FN_EXT; } gint QTMSFactoryImpl::CreateCall(QTMSCallType ctype, QTMSCall*& qtmscall, guint /*ctxid*/) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMSCall* tmscall(NULL); @@ -81,14 +86,17 @@ ret = QTMSCallImpl::Create(qtmscall, tmscall); } } + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteCall(QTMSCall*& qtmscall) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_SUCCESS); delete qtmscall; qtmscall = NULL; + TRACE_PRN_FN_EXT; return ret; } @@ -113,11 +121,13 @@ gint QTMSFactoryImpl::GetSupportedFormats(const QTMSStreamType strmtype, FormatVector& fmtlist) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::FormatVector tmsfmtlist; - if(iFactory) + if (iFactory) { - iFactory->GetSupportedFormats(strmtype,tmsfmtlist); + ret = iFactory->GetSupportedFormats((TMSStreamType) strmtype, + tmsfmtlist); } std::vector::iterator itCodecs = tmsfmtlist.begin(); @@ -147,20 +157,20 @@ break; } - if(qtmsfmt) + if (qtmsfmt) { fmtlist.push_back(qtmsfmt); } } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateFormat(QTMSFormatType fmttype, QTMSFormat*& qtmsfmt) { - gint ret(QTMS_RESULT_SUCCESS); - + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMSFormat* tmsformat(NULL); if (iFactory) @@ -187,18 +197,21 @@ ret = QTMSILBCFormatImpl::Create(qtmsfmt, tmsformat); break; default: + ret = QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED; break; } } } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteFormat(QTMSFormat*& qtmsfmt) { - gint ret(QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED); + TRACE_PRN_FN_ENT; + __ASSERT_ALWAYS(qtmsfmt, PANIC(QTMS_RESULT_NULL_ARGUMENT)); + gint ret(QTMS_RESULT_SUCCESS); QTMSFormatType fmttype; ret = qtmsfmt->GetType(fmttype); switch (fmttype) @@ -206,41 +219,38 @@ case QTMS_FORMAT_PCM: delete (static_cast(qtmsfmt)); qtmsfmt = NULL; - ret = QTMS_RESULT_SUCCESS; break; case QTMS_FORMAT_AMR: delete (static_cast(qtmsfmt)); qtmsfmt = NULL; - ret = QTMS_RESULT_SUCCESS; break; case QTMS_FORMAT_G711: delete (static_cast(qtmsfmt)); qtmsfmt = NULL; - ret = QTMS_RESULT_SUCCESS; break; case QTMS_FORMAT_G729: delete (static_cast(qtmsfmt)); qtmsfmt = NULL; - ret = QTMS_RESULT_SUCCESS; break; case QTMS_FORMAT_ILBC: delete (static_cast(qtmsfmt)); qtmsfmt = NULL; - ret = QTMS_RESULT_SUCCESS; break; default: + ret = QTMS_RESULT_FORMAT_TYPE_NOT_SUPPORTED; break; } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateEffect(QTMSEffectType tmseffecttype, QTMSEffect*& qtmseffect) { - //gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); - gint ret(TMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMSEffect* tmseffect(NULL); + if (iFactory) { ret = iFactory->CreateEffect((TMSEffectType) tmseffecttype, tmseffect); @@ -269,12 +279,13 @@ } } } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteEffect(QTMSEffect*& qtmseffect) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_SUCCESS); QTMSEffectType effecttype; @@ -301,24 +312,32 @@ ret = QTMS_RESULT_EFFECT_TYPE_NOT_SUPPORTED; break; } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateBuffer(QTMSBufferType buffertype, guint size, - QTMSBuffer*& qtmsbuffer) + QTMSBuffer*& buffer) { - gint ret(TMS_RESULT_INSUFFICIENT_MEMORY); TRACE_PRN_FN_ENT; - - switch (buffertype) + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); + TMSBuffer* tmsbuffer(NULL); + if (iFactory) { - case QTMS_BUFFER_MEMORY: - ret = QTMSMemBuffer::Create(size, qtmsbuffer); - break; - default: - ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED; - break; + ret = iFactory->CreateBuffer((TMSBufferType) buffertype, size, + tmsbuffer); + if (ret == TMS_RESULT_SUCCESS) + { + switch (buffertype) + { + case QTMS_BUFFER_MEMORY: + ret = QTMSBufferImpl::Create(buffertype, buffer, tmsbuffer); + break; + default: + ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED; + break; + } + } } TRACE_PRN_FN_EXT; @@ -327,20 +346,24 @@ gint QTMSFactoryImpl::DeleteBuffer(QTMSBuffer*& qtmsbuffer) { - delete (static_cast (qtmsbuffer)); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_SUCCESS); + delete qtmsbuffer; qtmsbuffer = NULL; - return QTMS_RESULT_SUCCESS; + TRACE_PRN_FN_EXT; + return ret; } gint QTMSFactoryImpl::CreateSource(QTMSSourceType srctype, QTMSSource*& qtmssrc) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::TMSSource* tmssource(NULL); if (iFactory) { - ret = iFactory->CreateSource(srctype, tmssource); + ret = iFactory->CreateSource((TMSSourceType) srctype, tmssource); if (ret == TMS_RESULT_SUCCESS) { @@ -356,18 +379,21 @@ ret = QTMSMicSourceImpl::Create(qtmssrc, tmssource); break; default: + ret = TMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED; break; } } } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteSource(QTMSSource*& qtmssrc) { - gint ret(TMS_RESULT_INVALID_ARGUMENT); + TRACE_PRN_FN_ENT; + __ASSERT_ALWAYS(qtmssrc, PANIC(QTMS_RESULT_NULL_ARGUMENT)); + gint ret(QTMS_RESULT_SUCCESS); QTMSSourceType sourcetype; ret = qtmssrc->GetType(sourcetype); switch (sourcetype) @@ -375,20 +401,17 @@ case QTMS_SOURCE_CLIENT: delete (static_cast(qtmssrc)); qtmssrc = NULL; - ret = QTMS_RESULT_SUCCESS; break; case QTMS_SOURCE_MODEM: { delete (static_cast(qtmssrc)); qtmssrc = NULL; - ret = TMS_RESULT_SUCCESS; } break; case TMS_SOURCE_MIC: { delete (static_cast(qtmssrc)); qtmssrc = NULL; - ret = TMS_RESULT_SUCCESS; } break; default: @@ -402,13 +425,14 @@ gint QTMSFactoryImpl::CreateSink(QTMSSinkType sinktype, QTMSSink*& qtmssink) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::TMSSink* tmssink(NULL); if (iFactory) { - ret = iFactory->CreateSink(sinktype, tmssink); + ret = iFactory->CreateSink((TMSSinkType) sinktype, tmssink); if (ret == TMS_RESULT_SUCCESS) { @@ -424,18 +448,21 @@ ret = QTMSSpeakerSinkImpl::Create(qtmssink, tmssink); break; default: + ret = TMS_RESULT_SINK_TYPE_NOT_SUPPORTED; break; } } } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteSink(QTMSSink*& qtmssink) { - gint ret(QTMS_RESULT_INVALID_ARGUMENT); + TRACE_PRN_FN_ENT; + __ASSERT_ALWAYS(qtmssink, PANIC(QTMS_RESULT_NULL_ARGUMENT)); + gint ret(QTMS_RESULT_SUCCESS); QTMSSinkType sinktype; ret = qtmssink->GetType(sinktype); switch (sinktype) @@ -444,34 +471,32 @@ { delete (static_cast(qtmssink)); qtmssink = NULL; - ret = QTMS_RESULT_SUCCESS; } break; case QTMS_SINK_MODEM: { delete (static_cast(qtmssink)); qtmssink = NULL; - ret = QTMS_RESULT_SUCCESS; } break; case QTMS_SINK_SPEAKER: { delete (static_cast(qtmssink)); qtmssink = NULL; - ret = QTMS_RESULT_SUCCESS; } break; default: ret = QTMS_RESULT_SINK_TYPE_NOT_SUPPORTED; break; } - + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateGlobalRouting(QTMSGlobalRouting*& qrouting) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::TMSGlobalRouting* tmsrouting(NULL); if (iFactory) @@ -483,46 +508,54 @@ ret = QTMSGlobalRoutingImpl::Create(qrouting, tmsrouting); } } + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteGlobalRouting(QTMSGlobalRouting*& globalrouting) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_SUCCESS); delete (static_cast(globalrouting)); globalrouting = NULL; + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateDTMF(QTMSStreamType streamtype, QTMSDTMF*& qdtmf) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::TMSDTMF* tmsdtmf = NULL; if (iFactory) { - ret = iFactory->CreateDTMF(streamtype, tmsdtmf); + ret = iFactory->CreateDTMF((TMSStreamType) streamtype, tmsdtmf); if (ret == TMS_RESULT_SUCCESS) { ret = QTMSDTMFImpl::Create(qdtmf, tmsdtmf); } } + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteDTMF(QTMSDTMF*& dtmf) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_SUCCESS); delete (static_cast(dtmf)); dtmf = NULL; + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateRingTonePlayer(QTMSRingTone*& rt) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::TMSRingTone* tmsrt = NULL; @@ -535,20 +568,24 @@ ret = QTMSRingToneImpl::Create(rt, tmsrt); } } + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteRingTonePlayer(QTMSRingTone*& rt) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_SUCCESS); delete (static_cast(rt)); rt = NULL; + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::CreateInbandTonePlayer(QTMSInbandTone*& qinbandtone) { - gint ret(QTMS_RESULT_SUCCESS); + TRACE_PRN_FN_ENT; + gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT); TMS::TMSInbandTone* tmsinband = NULL; if (iFactory) @@ -560,14 +597,17 @@ ret = QTMSInbandToneImpl::Create(qinbandtone, tmsinband); } } + TRACE_PRN_FN_EXT; return ret; } gint QTMSFactoryImpl::DeleteInbandTonePlayer(QTMSInbandTone*& inbandtone) { + TRACE_PRN_FN_ENT; gint ret(QTMS_RESULT_SUCCESS); delete (static_cast(inbandtone)); inbandtone = NULL; + TRACE_PRN_FN_EXT; return ret; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsg711impl.cpp --- a/qtms/src/qtmsg711impl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsg711impl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -72,7 +72,6 @@ gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iFormat) { - //status = static_cast (iFormat)->GetType(fmttype); status = iFormat->GetType(fmttype); } return status; diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsgaineffectimpl.cpp --- a/qtms/src/qtmsgaineffectimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsgaineffectimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -57,13 +57,14 @@ } gint QTMSGainEffectImpl::AddObserver(TMS::TMSEffectObserver& obsrvr, - gpointer /*user_data*/) + gpointer user_data) { gint ret(QTMS_RESULT_SUCCESS); if (iEffect) { - ret = static_cast (iEffect)->AddObserver(obsrvr, NULL); + ret = static_cast (iEffect)->AddObserver(obsrvr, + user_data); } return ret; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsilbc.cpp --- a/qtms/src/qtmsilbc.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsilbc.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -28,7 +28,6 @@ QTMSILBCFormat::~QTMSILBCFormat() { - // iFormat is deleted with QTMSFormat::iFormat } gint QTMSILBCFormat::SetMode(const QTMSG711CodecMode aMode) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsinbandtoneimpl.cpp --- a/qtms/src/qtmsinbandtoneimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsinbandtoneimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -85,7 +85,6 @@ const TMS::TMSInbandTone& /*inbandtone*/, TMS::TMSSignalEvent event) { QTMSSignalEvent qevent; - qevent.type = event.type; qevent.reason = event.reason; qevent.curr_state = event.curr_state; diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsipcallbodyimpl.cpp --- a/qtms/src/qtmsipcallbodyimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* - * Copyright (c) 2010 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: QT Bindings for TMS - * - */ - -#include -#include -#include "qtmsstreamimpl.h" -#include "tmsutility.h" -#include "qtmsipcallimpl.h" - -using namespace QTMS; - -QTMSIPCallImpl::QTMSIPCallImpl() - { - TRACE_PRN_FN_ENT; - TRACE_PRN_FN_EXT; - } - -QTMSIPCallImpl::~QTMSIPCallImpl() - { - TRACE_PRN_FN_ENT; - - TRACE_PRN_FN_EXT; - } - -/* -gint QTMSIPCallImpl::Create(QTMSCallBody*& bodyimpl) - { - gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); - QTMSIPCallImpl* self = new QTMSIPCallImpl; - - TRACE_PRN_FN_ENT; - if (self) - { - ret = self->PostConstruct(); - if (ret != QTMS_RESULT_SUCCESS) - { - delete self; - self = NULL; - } - } - bodyimpl = self; - - TRACE_PRN_FN_EXT; - return ret; - } -*/ -gint QTMSIPCallImpl::PostConstruct() - { - gint ret(QTMS_RESULT_SUCCESS); - TRACE_PRN_FN_ENT; - - - TRACE_PRN_FN_EXT; - return ret; - } - -QTMSCallType QTMSIPCallImpl::GetCallType() - { - QTMSCallType ctype(QTMS_CALL_IP); - return ctype; - } - -gint QTMSIPCallImpl::GetCallContextId(guint& ctxid) - { - gint ret(QTMS_RESULT_FEATURE_NOT_SUPPORTED); - ctxid = 0; - return ret; - } - -gint QTMSIPCallImpl::CreateStream(QTMSStreamType type, QTMSStream*& strm) - { - gint ret(QTMS_RESULT_CALL_TYPE_NOT_SUPPORTED); - strm = NULL; - switch (type) - { - case QTMS_STREAM_UPLINK: - case QTMS_STREAM_DOWNLINK: - // ret = QTMSStreamImpl::Create(QTMS_CALL_IP, type, iSession, strm); - break; - default: - break; - } - TRACE_PRN_FN_EXT; - return ret; - } - -gint QTMSIPCallImpl::DeleteStream(QTMSStream*& /*strm*/) - { - gint ret(QTMS_RESULT_SUCCESS); - TRACE_PRN_FN_ENT; - // ret = RemStreamFromList(strm); - TRACE_PRN_FN_EXT; - return ret; - } - -gint QTMSIPCallImpl::AddStreamToList(QTMSStream* /*strm*/) - { - gint ret(QTMS_RESULT_SUCCESS); - TRACE_PRN_FN_ENT; - // iStreamsVector.push_back(strm); - TRACE_PRN_FN_EXT; - return ret; - } - -gint QTMSIPCallImpl::RemStreamFromList(QTMSStream*& /*strm*/) - { - gint ret(QTMS_RESULT_DOES_NOT_EXIST); - - TRACE_PRN_FN_EXT; - return ret; - } - -// End of file diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsmembuffer.cpp --- a/qtms/src/qtmsmembuffer.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsmembuffer.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -16,19 +16,17 @@ */ #include -#include +#include +#include "tmsutility.h" #include "qtmsmembuffer.h" -#include "tmsutility.h" using namespace QTMS; using namespace TMS; -QTMSMemBuffer::QTMSMemBuffer() : - iBufferSize(0), - iTimeStamp(0), - iDataPtr(NULL), - iOwnsBuffer(FALSE) +QTMSMemBuffer::QTMSMemBuffer() { + iTmsBuffer = NULL; + iOwnsBuffer = FALSE; } QTMSMemBuffer::~QTMSMemBuffer() @@ -39,36 +37,20 @@ } } -gint QTMSMemBuffer::Create(guint size, QTMSBuffer*& tmsbuffer) +gint QTMSMemBuffer::Create(QTMSBuffer*& buffer, TMS::TMSBuffer*& tmsbuffer) { - gint ret(TMS_RESULT_INSUFFICIENT_MEMORY); + gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); TRACE_PRN_FN_ENT; QTMSMemBuffer* self = new QTMSMemBuffer(); if (self) { - ret = self->PostConstruct(size); - if (ret != TMS_RESULT_SUCCESS) - { - delete self; - self = NULL; - } + self->iTmsBuffer = tmsbuffer; + tmsbuffer->GetDataPtr(self->iDataPtr); + tmsbuffer->GetDataSize(self->iBufferSize); + tmsbuffer->GetTimeStamp(self->iTimeStamp); + self->iOwnsBuffer = FALSE; } - tmsbuffer = self; - TRACE_PRN_FN_EXT; - return ret; - } - -gint QTMSMemBuffer::PostConstruct(guint size) - { - gint ret(TMS_RESULT_SUCCESS); - TRACE_PRN_FN_ENT; - iDataPtr = (guint8*) malloc(size); - if (!iDataPtr) - { - ret = TMS_RESULT_INSUFFICIENT_MEMORY; - } - iOwnsBuffer = TRUE; - iBufferSize = size; + buffer = self; TRACE_PRN_FN_EXT; return ret; } @@ -76,83 +58,78 @@ gint QTMSMemBuffer::GetType(QTMSBufferType& buffertype) { gint ret(TMS_RESULT_SUCCESS); - buffertype = TMS_BUFFER_MEMORY; + buffertype = QTMS_BUFFER_MEMORY; return ret; } -// Implementation of TMSBuffer interface begins /** - Gets the timestamp on the Buffer so that the framework can - determine the time at which this buffer has to be rendered - by the output device sink. - - @param ts - timestamp in microseconds - + * Gets the timestamp on the Buffer so that the framework can + * determine the time at which this buffer has to be rendered + * by the output device sink. + * + * @param ts timestamp in microseconds + * */ gint QTMSMemBuffer::GetTimeStamp(guint64& ts) { - gint ret(TMS_RESULT_SUCCESS); + gint ret(QTMS_RESULT_SUCCESS); ts = iTimeStamp; return ret; } /** - Sets the timestamp on the Buffer so that the framework can - determine the time at which this buffer has to be rendered - by the output device sink. - - @param ts - timestamp in milliseconds - + * Sets the timestamp on the Buffer so that the framework can + * determine the time at which this buffer has to be rendered + * by the output device sink. + * + * @param ts timestamp in milliseconds + * */ gint QTMSMemBuffer::SetTimeStamp(const guint64 ts) { - gint ret(TMS_RESULT_SUCCESS); + gint ret(QTMS_RESULT_SUCCESS); iTimeStamp = ts; + ret = iTmsBuffer->SetTimeStamp(ts); return ret; } /** - Gets the size of data in the buffer specified by the client. - - @param size - size of data in bytes - + * Gets the size of data in the buffer specified by the client. + * + * @param size size of data in bytes + * */ gint QTMSMemBuffer::GetDataSize(guint& size) { - gint ret(TMS_RESULT_SUCCESS); + gint ret(QTMS_RESULT_SUCCESS); size = iBufferSize; return ret; } /** - Sets the size of data in the buffer after the client - fill it. - - @param size - size of data in bytes - + * Sets the size of data in the buffer after the client fill it. + * + * @param size size of data in bytes + * */ gint QTMSMemBuffer::SetDataSize(const guint size) { - gint ret(TMS_RESULT_SUCCESS); - iBufferSize = size; + gint ret(QTMS_RESULT_SUCCESS); + ret = iTmsBuffer->SetDataSize(size); + iBufferSize = size; //TODO: should realloc when new size > old size (?) return ret; } /** - Gets the pointer to the memory location associated with this - buffer where the data is stored. - - @param bufptr - ptr to the data stored in the buffer. - + * Gets the pointer to the memory location associated with this + * buffer where the data is stored. + * + * @param bufptr ptr to the data stored in the buffer. + * */ gint QTMSMemBuffer::GetDataPtr(guint8*& bufptr) { - gint ret(TMS_RESULT_SUCCESS); + gint ret(QTMS_RESULT_SUCCESS); bufptr = iDataPtr; return ret; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsmicsource.cpp --- a/qtms/src/qtmsmicsource.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsmicsource.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -30,7 +30,7 @@ QTMSMicSource::~QTMSMicSource() { - delete iSource; + delete (static_cast (iSource)); } gint QTMSMicSource::GetType(QTMSSourceType& sourcetype) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsmodemsink.cpp --- a/qtms/src/qtmsmodemsink.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsmodemsink.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -30,7 +30,7 @@ QTMSModemSink::~QTMSModemSink() { - delete iSink; + delete (static_cast(iSink)); } gint QTMSModemSink::GetType(QTMSSinkType& sinktype) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsmodemsource.cpp --- a/qtms/src/qtmsmodemsource.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsmodemsource.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -28,7 +28,7 @@ QTMSModemSource::~QTMSModemSource() { - delete iSource; + delete (static_cast (iSource)); } gint QTMSModemSource::GetType(QTMSSourceType& sourcetype) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmspcm.cpp --- a/qtms/src/qtmspcm.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmspcm.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -25,7 +25,6 @@ QTMSPCMFormat::~QTMSPCMFormat() { - // iFormat is deleted with QTMSFormat::iFormat } // End of file diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmssinkimpl.cpp --- a/qtms/src/qtmssinkimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* - * Copyright (c) 2010 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: QT Bindings for TMS - * - */ - -#include -//#include "qtmsclientsinkimpl.h" -#include "tmsutility.h" -#include "qtmssinkimpl.h" -//#include "qtmsmodemsinkimpl.h" -//#include "qtmsspeakersinkimpl.h" - -using namespace QTMS; - -gint QTMSSinkImpl::Create(QTMSSinkType /*sinktype*/, QTMSSink*& /*qtmssink*/) - { - gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); - TRACE_PRN_FN_ENT; - /* switch (sinktype) - { - case QTMS_SINK_CLIENT: - ret = QTMSClientSinkImpl::Create(QTMSsink); - break; - case QTMS_SINK_MODEM: - ret = QTMSModemSinkImpl::Create(QTMSsink); - break; - case QTMS_SINK_SPEAKER: - ret = QTMSSpeakerSinkImpl::Create(QTMSsink); - break; - default: - ret = QTMS_RESULT_SINK_TYPE_NOT_SUPPORTED; - break; - } - - TRACE_PRN_FN_EXT; - */ - return ret; - } - -gint QTMSSinkImpl::Delete(QTMSSink*& /*qtmssink*/) - { - gint ret(QTMS_RESULT_INVALID_ARGUMENT); - TRACE_PRN_FN_ENT; - /* QTMSSinkType sinktype; - ret = QTMSsink->GetType(sinktype); - switch (sinktype) - { - case QTMS_SINK_CLIENT: - { - delete (QTMSClientSinkImpl*) (QTMSsink); - QTMSsink = NULL; - ret = QTMS_RESULT_SUCCESS; - } - break; - case QTMS_SINK_MODEM: - { - delete (QTMSModemSinkImpl*) (QTMSsink); - QTMSsink = NULL; - ret = QTMS_RESULT_SUCCESS; - } - break; - case QTMS_SINK_SPEAKER: - { - delete (QTMSSpeakerSinkImpl*) (QTMSsink); - QTMSsink = NULL; - ret = QTMS_RESULT_SUCCESS; - } - break; - default: - ret = QTMS_RESULT_SINK_TYPE_NOT_SUPPORTED; - break; - } - - TRACE_PRN_FN_EXT; - */ - return ret; - } - -// End of file diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmssourceimpl.cpp --- a/qtms/src/qtmssourceimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* - * Copyright (c) 2010 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: QT Bindings for TMS - * - */ - -#include -//#include "qtmsclientsourceimpl.h" -#include "tmsutility.h" -#include "qtmssourceimpl.h" -//#include "qtmsmodemsourceimpl.h" -//#include "qtmsmicsourceimpl.h" - -using namespace QTMS; - -gint QTMSSourceImpl::Create(QTMSSourceType /*sourcetype*/, - QTMSSource*& /*qtmssource*/) - { - gint ret(QTMS_RESULT_INSUFFICIENT_MEMORY); - /* TRACE_PRN_FN_ENT; - switch (sourcetype) - { - case QTMS_SOURCE_CLIENT: - ret = QTMSClientSourceImpl::Create(QTMSsource); - break; - case QTMS_SOURCE_MODEM: - ret = QTMSModemSourceImpl::Create(QTMSsource); - break; - case QTMS_SOURCE_MIC: - ret = QTMSMicSourceImpl::Create(QTMSsource); - break; - default: - ret = QTMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED; - break; - } - - TRACE_PRN_FN_EXT; - */ - return ret; - } - -gint QTMSSourceImpl::Delete(QTMSSource*& /*qtmssource*/) - { - gint ret(QTMS_RESULT_INVALID_ARGUMENT); - TRACE_PRN_FN_ENT; - /* QTMSSourceType sourcetype; - ret = QTMSsource->GetType(sourcetype); - switch (sourcetype) - { - case QTMS_SOURCE_CLIENT: - delete (QTMSClientSourceImpl*) (QTMSsource); - QTMSsource = NULL; - ret = QTMS_RESULT_SUCCESS; - break; - case QTMS_SOURCE_MODEM: - { - delete (QTMSModemSourceImpl*) (QTMSsource); - QTMSsource = NULL; - ret = QTMS_RESULT_SUCCESS; - } - break; - case QTMS_SOURCE_MIC: - { - delete (QTMSMicSourceImpl*) (QTMSsource); - QTMSsource = NULL; - ret = QTMS_RESULT_SUCCESS; - } - break; - default: - ret = QTMS_RESULT_SOURCE_TYPE_NOT_SUPPORTED; - break; - } - - TRACE_PRN_FN_EXT; - */ - return ret; - } - -// End of file diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsspeakersink.cpp --- a/qtms/src/qtmsspeakersink.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsspeakersink.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -28,7 +28,7 @@ QTMSSpeakerSink::~QTMSSpeakerSink() { - delete iSink; + delete (static_cast (iSink)); } gint QTMSSpeakerSink::GetType(QTMSSinkType& sinktype) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsstream.cpp --- a/qtms/src/qtmsstream.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsstream.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -361,12 +361,12 @@ return status; } -gint QTMSStream::Init() +gint QTMSStream::Init(gint retrytime) { gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iStream) { - status = iStream->Init(); + status = iStream->Init(retrytime); } return status; } @@ -381,12 +381,12 @@ return status; } -gint QTMSStream::Start() +gint QTMSStream::Start(gint retrytime) { gint status(QTMS_RESULT_UNINITIALIZED_OBJECT); if (iStream) { - status = iStream->Start(); + status = iStream->Start(retrytime); } return status; } diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsstreamimpl.cpp --- a/qtms/src/qtmsstreamimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsstreamimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -85,7 +85,7 @@ return ret; } -void QTMSStreamImpl::TMSStreamEvent(const TMS::TMSStream& stream, +void QTMSStreamImpl::TMSStreamEvent(const TMS::TMSStream& /*stream*/, TMS::TMSSignalEvent event) { QTMSSignalEvent qevent; diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsvolumeeffect.cpp --- a/qtms/src/qtmsvolumeeffect.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsvolumeeffect.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -30,7 +30,7 @@ QTMSVolumeEffect::~QTMSVolumeEffect() { - delete iEffect; + delete (static_cast(iEffect)); } gint QTMSVolumeEffect::GetLevel(guint& level) diff -r 3b7506f63335 -r f3d2589f22d6 qtms/src/qtmsvolumeeffectimpl.cpp --- a/qtms/src/qtmsvolumeeffectimpl.cpp Wed Jun 16 16:05:08 2010 +0100 +++ b/qtms/src/qtmsvolumeeffectimpl.cpp Thu Jul 22 16:38:21 2010 +0100 @@ -57,14 +57,14 @@ } gint QTMSVolumeEffectImpl::AddObserver(TMS::TMSEffectObserver& obsrvr, - gpointer /*user_data*/) + gpointer user_data) { gint ret(QTMS_RESULT_SUCCESS); if (iEffect) { ret = static_cast (iEffect)->AddObserver(obsrvr, - NULL); + user_data); } return ret; }