--- 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 <mpxcollectioncommanddefs.h>
#include <mpxmediamtpdefs.h>
+#include <e32property.h> // for RProperty
+#include <UsbWatcherInternalPSKeys.h>
+#include <usbpersonalityids.h>
+
#include <mpxcollectionutility.h>
#include <mpxharvesterutility.h>
@@ -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)
--- 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 <mpxcollectioncommanddefs.h>
#include <UsbWatcherInternalPSKeys.h>
#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
#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 );
--- 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 <thumbnailmanager.h>
#endif //RD_MPX_TNM_INTEGRATION
// cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode
-#include <UsbWatcherInternalPSKeys.h>
-#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
#include <mpxcollectionuihelper.h>
#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)
--- 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" );
--- 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
--- 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<CMPXHarvesterDB> 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.
--- 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
*/
--- 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
--- 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<TDriveNumber>(driveNum), iFs );
+ static_cast<TDriveNumber>(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<count; )
+ for( TInt i=0; i < iDatabases.Count(); )
{
// Close db, delete and recreate
//
@@ -1000,13 +1008,23 @@
{
name.Append(iRAMFolder);
name.Append(aDriveUnit.Name()[0]);
- name.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 )
+ name.Append( KHarvesterDBNameEMMC );
+ else
+ name.Append( KHarvesterDBName );
}
else
{
name.Append(aDriveUnit.Name());
name.Append(KHarvesterDBPath);
- name.Append(KHarvesterDBName);
+ if ( iEMMC )
+ name.Append( KHarvesterDBNameEMMC );
+ else
+ name.Append( KHarvesterDBName );
}
MPX_DEBUG2("CMPXHarvesterDatabaseManager::GenerateHarvesterDbName name = %S", &name );
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Wed Jun 16 16:05:08 2010 +0100
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Thu Jul 22 16:38:21 2010 +0100
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Handles all file related activities
-* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.5.2 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.5.4 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -46,8 +46,7 @@
#include <caf/caferr.h>
#include <caf/content.h>
#include <caf/data.h>
-#include <UsbWatcherInternalPSKeys.h>
-#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
#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
// ---------------------------------------------------------------------------
//
--- 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; i<count; ++i )
{
@@ -281,7 +293,7 @@
// get the value, except for album art
if ( fieldType != EMetaDataJpeg )
{
- TRAPD( err, value = metaCont.At( i, fieldType ).AllocL() );
+ MPX_TRAPD( err, value = metaCont.At( i, fieldType ).AllocL() );
if ( KErrNone != err )
{
MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL - error = %i", err);
@@ -400,7 +412,7 @@
case EMetaDataDuration:
{
const TDesC& mimeType = iMedia->ValueText( 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<TBool>( KMPXMediaDrmProtected );
- MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL protected %i", prot);
- }
-
- TMPXMediaDrmRightsStatus status(EMPXDrmRightsFull);
- if( drm->IsSupported( KMPXMediaDrmRightsStatus ) )
- {
- status = drm->ValueTObjectL<TMPXMediaDrmRightsStatus>(KMPXMediaDrmRightsStatus);
- iMedia->SetTObjectValueL<TInt>(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<TBool>( KMPXMediaDrmProtected, prot );
- iMedia->SetTObjectValueL<TUint16>( 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<TInt>( 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<TInt>( 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<TInt> 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<TMPXGeneralType>( 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<TBool>( KMPXMediaDrmProtected, prot );
+ iMedia->SetTObjectValueL<TUint16>( 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<TBool>( KMPXMediaDrmProtected );
+ MPX_DEBUG2("CMPXMetadataExtractor::SetDrmMediaPropertiesL protected %i", prot);
+ }
+
+ TMPXMediaDrmRightsStatus status(EMPXDrmRightsFull);
+ if( drm->IsSupported( KMPXMediaDrmRightsStatus ) )
+ {
+ status = drm->ValueTObjectL<TMPXMediaDrmRightsStatus>(KMPXMediaDrmRightsStatus);
+ iMedia->SetTObjectValueL<TInt>(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<TBool>( KMPXMediaDrmProtected, prot );
+ iMedia->SetTObjectValueL<TUint16>( 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 );
+
+ }
--- 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
--- /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 <usbman.h>
+#include <mpxpskeyobserver.h>
+#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
--- 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;
--- /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 <e32base.h>
+#include <f32file.h>
+#include <e32property.h>
+#ifdef RD_MULTIPLE_DRIVE
+#include <driveinfo.h>
+#endif //RD_MULTIPLE_DRIVE
+#include <mpxpskeywatcher.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <UsbWatcherInternalPSKeys.h>
+#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
+#include <mpxlog.h>
+#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
+
--- 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();
}
// ---------------------------------------------------------------------------
--- 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();
}
// ----------------------------------------------------------------------------
--- 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 <platform_paths.hrh>
+
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
--- 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;
};
--- 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;
--- 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
--- 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 );
--- 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
--- 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
//--------------------------------------------------------------------------------------------
--- 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 <mtp/mtpprotocolconstants.h>
+#include <mtpprivatepskeys.h>
#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 );
};
Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg has changed
Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg has changed
Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg has changed
--- 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 <e32base.h>
-#include <d32dbms.h>
#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<TUint> 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
--- 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 <mtp/mmtpobjectmgr.h>
#include <mtp/mmtpstoragemgr.h>
#include <mtp/mmtpreferencemgr.h>
+#include <mtp/tmtptypeuint32.h>
#include <mpxmediaarray.h>
#include <mpxmedia.h>
-#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<TUint> handles;
+ CleanupClosePushL( context ); // + context
+ CleanupClosePushL( handles ); // + handles
+
+ // search all handles in desired storage with desired DP id
+ TMTPObjectMgrQueryParams params( aStorageId, KMTPFormatsAll, KMTPHandleNone, iFramework.DataProviderId() );
- TInt removeCount = 0;
- for ( TInt i = 0; i < count; i++ )
+ do
{
- TInt index = i - removeCount;
- TPtrC temp( aReferences[index] );
- PRINT2( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL ref[%d]'s name = %S" ), index, &temp );
- PERFLOGSTART( KObjectManagerHandle );
- TUint32 handle = iFramework.ObjectMgr().HandleL( temp );
- PERFLOGSTOP( KObjectManagerHandle );
- if ( handle == KMTPHandleNone ) // object doesn't exist
+ iObjectMgr.GetObjectHandlesL( params, context, handles );
+
+ for ( TInt i = 0; i < handles.Count(); i++ )
{
- PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp );
-
- // if handle is invalid, remove from reference array
- aReferences.Delete( index, 1 );
- removeCount++;
+ CMTPObjectMetaData* objectInfo = CMTPObjectMetaData::NewLC(); // + objectInfo
+
+ iResetCount++;
+ iObjectMgr.ObjectL( handles[i], *objectInfo );
+ // EMTPSubFormatCodeUnknown means references of the object haven't been insert into reference db of fw.
+ objectInfo->SetUint( CMTPObjectMetaData::EFormatSubCode, EMTPSubFormatCodeUnknown );
+ iObjectMgr.ModifyObjectL( *objectInfo );
+ CleanupStack::PopAndDestroy( objectInfo ); // - objectInfo
}
}
- CleanupStack::PopAndDestroy( object ); // - object
+ while ( !context.QueryComplete() );
- // add all references into references db
- MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr();
- PERFLOGSTART( KReferenceManagerSetReference );
- referenceMgr.SetReferencesL( aAbstractMediaName, aReferences );
- PERFLOGSTOP( KReferenceManagerSetReference );
+ CleanupStack::PopAndDestroy( &handles ); // - handles
+ CleanupStack::PopAndDestroy( &context ); // - context
- PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddReferencesL" ) );
+ PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::ResetObjectFormatSubCodeL" ) );
}
//end of file
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/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
--- 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 <e32base.h>
-#include <d32dbms.h>
-
#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<TEntry> iDirStack;
RArray<TUint> 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;
--- 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
--- 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,
--- 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 <mtp/mmtpobjectmgr.h>
#include <mtp/mmtpstoragemgr.h>
#include <mtp/cmtpobjectmetadata.h>
-#include <hal.h>
-#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();
}
--- 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)
--- 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
--- 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 );
--- 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 );
--- 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
};
--- 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:
--- 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:
/**
--- 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:
--- 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<TMmMtpRollbackAction> iRollbackList;
TUint32 iPreviousTransactionID;
TUint32 iPreviousOperation;
--- 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 );
--- 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 );
--- 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.
--- 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 )
--- 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
}
--- 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
}
--- 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 <mtp/cmtptypefile.h>
#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 );
--- 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;
--- 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
}
--- 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" ),
--- 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<TUint>* 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<KMtpMaxDateTimeStringLength> timeStr;
- MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(),
- iObjectInfo->DesC( CMTPObjectMetaData::ESuid ),
- timeStr );
+ MmMtpDpUtility::GetObjectDateModifiedL( iFramework.Fs(), suid, timeStr );
PRINT1( _L( "MM MTP <> CGetObjectPropValue::ServiceL Date time %S" ), &timeStr );
iMTPTypeString = CMTPTypeString::NewL( timeStr );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp 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 <mtp/cmtptypearray.h>
#include <mtp/mmtpreferencemgr.h>
+#include <mtp/mmtpobjectmgr.h>
#ifdef _DEBUG
-#include <mtp/mmtpobjectmgr.h>
#include <mtp/tmtptypeuint128.h>
#endif
#include "cgetobjectreferences.h"
+#include "mmmtpdputility.h"
#include "mmmtpdplogger.h"
+#include "cmmmtpdpperflog.h"
+#include "mmmtpdpconfig.h"
+#include "cmmmtpdpmetadataaccesswrapper.h"
+#include "tmmmtpdppanic.h"
+
+const TInt KMTPDriveGranularity = 5;
+
+#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
+_LIT( KMpxQueryAbstractMediaReference, "MpxQueryAbstractMediaReference" );
+_LIT( KReferenceManagerSetReference, "ReferenceManagerSetReference" );
+_LIT( KObjectManagerHandle, "ObjectManagerHandle" );
+#endif
// -----------------------------------------------------------------------------
// Verification data for the GetReferences request
@@ -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
--- 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 <mtp/cmtptypefile.h>
#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<KMaxFileName> into TFileName for easily change when fs change the limitation of filename
- TFileName fileSuid;
- fileSuid.Append( objectInfo->DesC( CMTPObjectMetaData::ESuid ) );
+ TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid );
iFileObject = CMTPTypeFile::NewL( iFramework.Fs(),
- fileSuid,
+ fileName,
( TFileMode ) ( EFileRead | EFileShareReadersOnly ),
iPartialDataLength,
iOffset );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp 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
--- 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" ) );
--- 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 <mtp/tmtptypeevent.h>
#include <mtp/mmtpconnection.h>
#include <mtp/mmtpobjectmgr.h>
-#include <e32property.h>
-#include <mtpprivatepskeys.h>
#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
// -----------------------------------------------------------------------------
--- 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 )
{
--- 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
--- 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" ) );
--- 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
{
--- 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
--- 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
--- 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 <e32property.h>
#include <mtpprivatepskeys.h>
+#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( );
}
--- 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<TMPXItemId>( KMPXMediaGeneralId,
KMtpInvalidSongID );
- searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot );
+ if ( iStoreRoot.Length() > 0 )
+ {
+ searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot );
+ }
RArray<TMPXAttribute> 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<TMPXAttribute> 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<CMPXMediaArray> ( KMPXMediaArrayContents ) ) );
+ CMPXMediaArray* mediaArray = foundMedia->Value<CMPXMediaArray> ( KMPXMediaArrayContents );
+ for ( TInt i = 0; i < count; i++ )
+ aAbstractMedias.AppendL( ( *mediaArray )[i]->ValueText( KMPXMediaGeneralUri ) );
}
CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia
@@ -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<TMPXAttribute> attributes;
+ CleanupClosePushL( attributes ); // + attributes
+ attributes.AppendL( KMPXMediaGeneralId );
+ attributes.AppendL( KMPXMediaGeneralTitle );
+ attributes.AppendL( KMPXMediaGeneralUri );
+
+ CMPXMedia* refOwner = CollectionHelperL()->GetL( aRefOwnerSuid,
+ attributes.Array(),
+ aCategory );
- // Extract the playlist id from the found object
- TUint32 abstractMediaId = *( *aAbstractMedia ).Value<TMPXItemId>( KMPXMediaGeneralId );
+ __ASSERT_DEBUG( refOwner, Panic( EMmMTPDpObjectNull ) );
+
+ CleanupStack::PushL( refOwner ); // + refOwner
+
+ // 2. Extract the general id from the found object
+ if ( !refOwner->IsSupported( KMPXMediaGeneralId ) )
+ PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL Before GeneralId" ) );
+
+ TUint32 abstractMediaId = *( *refOwner ).Value<TMPXItemId>( KMPXMediaGeneralId );
+ PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAllReferenceL After GeneralId" ) );
+
+ CleanupStack::PopAndDestroy( refOwner ); // - refOwner
+ CleanupStack::PopAndDestroy( &attributes ); // - attributes
// find the media object that contains a list of songs in the playlist
RArray<TInt> contentIDs;
@@ -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<TMPXAttribute> playlistAttributes;
CleanupClosePushL( playlistAttributes ); // + playlistAttributes
--- 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 <mtp/mmtpdataproviderframework.h>
#include <mtp/mmtpobjectmgr.h>
#include <mtp/tmtptypeuint32.h>
+#include <e32property.h> // 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
--- 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 <data_caging_paths.hrh>
@@ -52,8 +52,8 @@
#endif
#if defined(ARMCC)
-deffile ../eabi/
+deffile ../eabi/
#elif defined(WINSCW)
-deffile ../bwinscw/
+deffile ../bwinscw/
#endif
--- 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 <e32std.h>
#include <e32svr.h>
@@ -46,6 +45,7 @@
class TVideoPlaylistUtilityLog : public TDes16Overflow
{
public:
+
inline static void NullLog( TRefByValue<const TDesC16> /*aFmt*/, ... )
{
}
@@ -53,7 +53,7 @@
inline static void VideoPlaylistUtilityLog( TRefByValue<const TDesC16> aFmt, ... )
{
TBuf< 512 > buffer;
-
+
VA_LIST list;
VA_START( list, aFmt );
buffer.AppendFormatList( aFmt, list );
@@ -76,14 +76,14 @@
TRefByValue<const TDesC> 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<const TDesC> 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)
--- 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"
--- 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");
--- 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<CMPXMediaArray>(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;
}
--- 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]
+
Binary file mmappfw_plat/collection_helper_api/tsrc/data/1.alb has changed
Binary file mmappfw_plat/collection_helper_api/tsrc/data/1.mp3 has changed
Binary file mmappfw_plat/collection_helper_api/tsrc/data/1.wma has changed
--- 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);
--- 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;
}
--- 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
--- 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 <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+
+// FORWARD DECLARATION
class CMPXMedia;
class CMPXCollectionPath;
-class CMetaDataUtility;
class CMPXFileInfoUtility;
class CMPXDrmMediaUtility;
class MMPXMetadataExtractorObserver;
-#include <thumbnailmanager.h>
-#include <thumbnailmanagerobserver.h>
+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:
--- 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
{
--- 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, "==");
--- 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)
{
--- 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 <mpxpluginhandlerbase.h>
#include <mpxplugininfo.h>
+#include <mpxpluginhandlerobserver.h>
// 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;
}
--- 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;
}
--- 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);
--- 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)
--- 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;
--- 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 <qtms.h>
-#include <QObject>
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
--- 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 <QObject>
#include <qtms.h>
+#include <qtmsbuffer.h>
#include <qtmssink.h>
-#include <QObject>
#include <qglobal.h>
#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:
/**
--- 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 <QObject>
#include <qtms.h>
+#include <qtmsbuffer.h>
#include <qtmssource.h>
-#include <QObject>
#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:
/**
--- 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.
--- 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
--- 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.
--- 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.
*
--- /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
--- /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 <QObject>
+#include <QtTest/QtTest>
+#include "qtestmains60.h"
+
+#include <qtms.h>
+#include <qtmsfactory.h>
+#include <qtmscall.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <qtmsformat.h>
+
+#include <qtmspcmformat.h>
+#include <qtmsamrformat.h>
+#include <qtmsilbcformat.h>
+#include <qtmsg711format.h>
+#include <qtmsg729format.h>
+
+#include <qtmsclientsink.h>
+#include <qtmsclientsource.h>
+#include <qtmsvolumeeffect.h>
+#include <qtmsgaineffect.h>
+#include <qtmsglobalvoleffect.h>
+#include <qtmsglobalgaineffect.h>
+#include <qtmsglobalrouting.h>
+
+#include <qtmsbuffer.h>
+#include <qtmsdtmf.h>
+#include <qtmsringtone.h>
+#include <qtmsinbandtone.h>
+#include <tmsbuffer.h>
+
+using namespace QTMS;
+
+_LIT8(KRTBeepSequence, "\x00\x11\x0A\x0A\x08\x73\x0A\x40\x28\x0A\xF7\
+\x05\xFC\x40\x64\x0A\x08\x40\x32\x0A\xF7\x06\x0B");
+_LIT16(KTestFile1, "c:\\data\\sounds\\digital\\test_8khz.wav");
+
+class QTmsCsTest : public QObject
+ {
+Q_OBJECT
+private slots:
+ void initTestCase();
+ void CSCallSetup();
+
+ void CreateUplink();
+ void CreateDnlink();
+ void CreateMicSource();
+ void AddMicSourceToStream();
+ void CreateModemSink();
+ void AddModemSinkToStream();
+ void CreateModemSource();
+ void AddModemSourceToStream();
+ void CreateSpeakerSink();
+ void AddSpeakerSinkToStream();
+
+ void CreateStreamVol();
+ void CreateStreamGain();
+
+ void InitUplink();
+ void InitDnlink();
+
+ void StartUplink();
+ void StopUplink();
+ void StartDnlink();
+
+ void StreamVol();
+ void StreamGain();
+ // void StopDnlink();
+
+ void CreateGlobalVol();
+ void CreateGlobalGain();
+ void CreateRouting_data();
+ void CreateRouting();
+
+ void CreateInband_data();
+ void CreateInband();
+ void CreateDnlinkDtmf();
+ void CreateUplinkDtmf();
+
+ void CreateRingTone();
+
+ void InitRingTonePlayerFromProfiles();
+ void PlayRingTone();
+ void PauseRingTone();
+ void MuteRingTone();
+ void StopRingTone();
+ void CloseRingTonePlayer();
+
+ void CloseUplink();
+ void CloseDownlink();
+ void cleanupTestCase();
+public slots:
+ //From TMSStreamObserver
+ void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event);
+ //From TMSClientSinkObserver
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+ //From TMSGlobalRoutingObserver
+ void GlobalRoutingEvent(const QTMSGlobalRouting& routing,
+ QTMSSignalEvent event, QTMSAudioOutput output);
+ //From TMSRingToneObserver
+ void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event);
+ //From TMSDTMFObserver
+ void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event);
+ //From TMSInbandToneObserver
+ void InbandToneEvent(const QTMSInbandTone& inbandtone,
+ QTMSSignalEvent event);
+
+private:
+ void InitRingToneSequencePlayer();
+ void InitRingTonePlayerFromFile();
+ void StopDnlink();
+ void GetAvailableOutput();
+ void DisplayDevice(QTMSAudioOutput device);
+
+private:
+ QTMSFactory *m_Factory;
+ QTMSCall *m_Call;
+ QTMSDTMF *m_Dnlnkdtmf;
+ QTMSDTMF *m_Uplnkdtmf;
+ QTMSStream *m_Dnlink;
+ QTMSStream *m_Uplink;
+ QTMSSource *m_MicSource;
+ QTMSSource *m_ModemSource;
+ QTMSSink *m_SpeakerSink;
+ QTMSSink *m_ModemSink;
+ QTMSEffect *m_Vol;
+ QTMSEffect *m_Gain;
+ QTMSEffect *m_GlobalVol;
+ QTMSEffect *m_GlobalGain;
+ QTMSGlobalRouting *m_Routing;
+ QTMSInbandTone *m_InbandTonePlayer;
+ QTMSRingTone *m_RingTonePlayer;
+ GString* m_RTStr;
+ GString* m_TTSStr;
+ QSignalSpy *m_UplinkSpy;
+ QSignalSpy *m_DnlinkSpy;
+ QSignalSpy *m_InbandSpy;
+ QSignalSpy *m_RoutingSpy;
+ OutputVector m_Availableoutputs;
+
+ };
+
+void QTmsCsTest::initTestCase()
+ {
+ qDebug("Start QTms CS tests");
+
+ g_setenv("G_SLICE", "always-malloc", 1);
+ m_Factory = NULL;
+ m_Call = NULL;
+ m_Dnlink = NULL;
+ m_Uplink = NULL;
+ m_MicSource = NULL;
+ m_ModemSource = NULL;
+ m_SpeakerSink = NULL;
+ m_ModemSink = NULL;
+ m_Vol = NULL;
+ m_Gain = NULL;
+ m_GlobalVol = NULL;
+ m_GlobalGain = NULL;
+ m_Routing = NULL;
+ m_Dnlnkdtmf = NULL;
+ m_Uplnkdtmf = NULL;
+ m_InbandTonePlayer = NULL;
+ m_RingTonePlayer = NULL;
+ m_UplinkSpy = NULL;
+ m_DnlinkSpy = NULL;
+
+ QTMSVer *ver(NULL);
+ gint status;
+ status = QTMSFactory::CreateFactory(m_Factory, *ver);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qRegisterMetaType<QTMSSignalEvent>("QTMSSignalEvent");
+ qRegisterMetaType<QTMSAudioOutput>("QTMSAudioOutput");
+
+
+ }
+
+void QTmsCsTest::cleanupTestCase()
+ {
+ qDebug("End QTms tests");
+
+ StopDnlink();
+
+ m_Factory->DeleteSource(m_MicSource);
+ m_Factory->DeleteSource(m_ModemSource);
+ m_Factory->DeleteSink(m_ModemSink);
+ m_Factory->DeleteSink(m_SpeakerSink);
+
+ m_Factory->DeleteDTMF(m_Dnlnkdtmf);
+ m_Factory->DeleteInbandTonePlayer(m_InbandTonePlayer);
+ m_Factory->DeleteRingTonePlayer(m_RingTonePlayer);
+
+ m_Factory->DeleteEffect(m_Vol);
+ m_Factory->DeleteEffect(m_Gain);
+ m_Factory->DeleteEffect(m_GlobalVol);
+ m_Factory->DeleteEffect(m_GlobalGain);
+
+ m_Factory->DeleteGlobalRouting(m_Routing);
+
+ m_Call->DeleteStream(m_Uplink);
+ m_Call->DeleteStream(m_Dnlink);
+
+ m_Factory->DeleteCall(m_Call);
+
+ delete m_Factory;
+
+ }
+
+void QTmsCsTest::CSCallSetup()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_Call)
+ {
+ gboolean issupported(FALSE);
+ m_Factory->IsCallTypeSupported(QTMS_CALL_CS, issupported);
+ QVERIFY(issupported == TRUE);
+ status = m_Factory->CreateCall(QTMS_CALL_CS, m_Call, 0);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTMSCallType calltype = m_Call->GetCallType();
+ QVERIFY(calltype == QTMS_CALL_CS);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+void QTmsCsTest::CreateUplink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call)
+ {
+ status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_UplinkSpy = new QSignalSpy(m_Uplink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_UplinkSpy->isValid() );
+
+ //QCOMPARE(m_UplinkSpy->count(), 0 );
+
+
+ connect(m_Uplink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)),
+ this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ }
+ }
+
+ void QTmsCsTest::CreateDnlink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call)
+ {
+ status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_DnlinkSpy = new QSignalSpy(m_Dnlink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_DnlinkSpy->isValid() );
+
+ //QCOMPARE(m_DnlinkSpy->count(), 0 );
+
+ connect(m_Dnlink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)),
+ this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+ }
+ }
+
+
+ void QTmsCsTest::CreateModemSink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_ModemSink)
+ {
+ status = m_Factory->CreateSink(QTMS_SINK_MODEM, m_ModemSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::CreateModemSource()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_ModemSource)
+ {
+ status = m_Factory->CreateSource(QTMS_SOURCE_MODEM, m_ModemSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::AddModemSinkToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_ModemSink)
+ {
+ status = m_Uplink->AddSink(m_ModemSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::AddModemSourceToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_ModemSource)
+ {
+ status = m_Dnlink->AddSource(m_ModemSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+
+ void QTmsCsTest::CreateMicSource()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_MicSource)
+ {
+ status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::AddMicSourceToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_MicSource)
+ {
+ status = m_Uplink->AddSource(m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::CreateSpeakerSink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_SpeakerSink)
+ {
+ status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::AddSpeakerSinkToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_SpeakerSink)
+ {
+ status = m_Dnlink->AddSink(m_SpeakerSink);
+ qDebug("QTMS speaker sink added to stream");
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsCsTest::InitUplink()
+ {
+ QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 1 );
+ }
+
+ void QTmsCsTest::InitDnlink()
+ {
+ QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 1 );
+ }
+
+ void QTmsCsTest::StartUplink()
+ {
+ QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 2 );
+ }
+
+ void QTmsCsTest::StartDnlink()
+ {
+ QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 2 );
+ }
+void QTmsCsTest::StopUplink()
+ {
+ QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 3 );
+ }
+
+void QTmsCsTest::StopDnlink()
+ {
+ QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 3 );
+ }
+
+void QTmsCsTest::CloseUplink()
+ {
+ m_Uplink->Deinit();
+ QTest::qWait(1000);
+ if (m_Uplink)
+ {
+ if (m_Gain)
+ {
+ QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_MicSource)
+ {
+ QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ModemSink)
+ {
+ QVERIFY(m_Uplink->RemoveSink(m_ModemSink)== QTMS_RESULT_SUCCESS);
+ }
+ }
+ }
+
+void QTmsCsTest::CloseDownlink()
+ {
+ m_Dnlink->Deinit();
+ QTest::qWait(1000);
+ if (m_Dnlink)
+ {
+ if (m_Vol)
+ {
+ QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ModemSource)
+ {
+ QVERIFY(m_Dnlink->RemoveSource(m_ModemSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_SpeakerSink)
+ {
+ QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS);
+ }
+ }
+
+ }
+
+void QTmsCsTest::CreateStreamVol()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_Vol)
+ {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSVolumeEffect*> (m_Vol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ if(m_Dnlink)
+ {
+ status = m_Dnlink->AddEffect(m_Vol);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ }
+ }
+
+void QTmsCsTest::StreamVol()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ guint maxvol(0);
+ if (m_Vol)
+ {
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(vol,maxvol);
+ }
+ }
+
+void QTmsCsTest::CreateStreamGain()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_Gain)
+ {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGainEffect*> (m_Gain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ if(m_Uplink)
+ {
+ status = m_Uplink->AddEffect(m_Gain);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+ }
+
+void QTmsCsTest::StreamGain()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Gain)
+ {
+ guint maxgain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGainEffect*> (m_Gain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(gain,maxgain);
+ }
+
+ }
+
+
+void QTmsCsTest::CreateGlobalVol()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalVol)
+ {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalVolEffect*> (m_GlobalVol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxvol(0);
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->GetMaxLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->SetLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(vol,maxvol);
+
+ }
+ }
+
+
+void QTmsCsTest::CreateGlobalGain()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalGain)
+ {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalGainEffect*> (m_GlobalGain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxgain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(gain,maxgain);
+
+ }
+ }
+
+void QTmsCsTest::CreateRouting_data()
+ {
+ gint status;
+ if (m_Factory && !m_Routing)
+ {
+ status = m_Factory->CreateGlobalRouting(m_Routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_RoutingSpy = new QSignalSpy(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,
+ QTMSAudioOutput)));
+
+ QVERIFY( m_RoutingSpy->isValid() );
+
+ // QCOMPARE(m_RoutingSpy->count(), 0 );
+ connect(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,QTMSAudioOutput)),
+ this,
+ SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,QTMSAudioOutput)));
+ }
+
+ //Populate data and test based on available output
+ GetAvailableOutput();
+ }
+
+void QTmsCsTest::CreateRouting()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ QFETCH(QTMSAudioOutput, routing);
+
+ if(m_Routing)
+ {
+ status = m_Routing->SetOutput(routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+#ifndef __WINSCW__
+ QTest::qWait(1000);
+ // QCOMPARE(m_RoutingSpy->count(), 1 );
+#endif
+ QTMSAudioOutput current;
+ status = m_Routing->GetOutput(current);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QCOMPARE(routing,current);
+
+ QTMSAudioOutput previous;
+ status = m_Routing->GetPreviousOutput(previous);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("Previous routing:");
+ DisplayDevice(previous);
+ }
+ }
+
+void QTmsCsTest::GetAvailableOutput()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Routing)
+ {
+ status = m_Routing->GetAvailableOutputs(m_Availableoutputs);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qDebug("Available outputs: %d",m_Availableoutputs.size());
+ std::vector<guint>::iterator iteroutputs =
+ m_Availableoutputs.begin();
+ for (; iteroutputs < m_Availableoutputs.end(); iteroutputs++)
+ {
+ DisplayDevice(*iteroutputs);
+ }
+ }
+ }
+
+void QTmsCsTest::DisplayDevice(QTMSAudioOutput device)
+ {
+ QTest::addColumn<QTMSAudioOutput>("routing");
+
+ switch (device)
+ {
+ case QTMS_AUDIO_OUTPUT_NONE:
+ {
+ qDebug("none");
+ QTest::newRow("None")<<QTMS_AUDIO_OUTPUT_NONE;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PUBLIC:
+ {
+ qDebug("Public");
+ QTest::newRow("Public")<<QTMS_AUDIO_OUTPUT_PUBLIC;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PRIVATE:
+ {
+ qDebug("Private");
+ QTest::newRow("Private")<<QTMS_AUDIO_OUTPUT_PRIVATE;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_HANDSET:
+ {
+ qDebug("Handset");
+ QTest::newRow("Handset")<<QTMS_AUDIO_OUTPUT_HANDSET;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_LOUDSPEAKER:
+ {
+ qDebug("Loudspeaker");
+ QTest::newRow("Loud speaker")<< QTMS_AUDIO_OUTPUT_LOUDSPEAKER;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY:
+ {
+ qDebug("Wired accessory");
+ QTest::newRow("Wired accessory")<<QTMS_AUDIO_OUTPUT_WIRED_ACCESSORY;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_ACCESSORY:
+ {
+ qDebug("Accessory");
+ QTest::newRow("Accessory")<< QTMS_AUDIO_OUTPUT_ACCESSORY;
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_ETTY:
+ {
+ qDebug("TTY");
+ QTest::newRow("ETTY")<< QTMS_AUDIO_OUTPUT_ETTY;
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+void QTmsCsTest::CreateDnlinkDtmf()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ status = m_Factory->CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (m_Dnlnkdtmf)
+ {
+ QSignalSpy dtmfspy(m_Dnlnkdtmf,
+ SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ QVERIFY( dtmfspy.isValid() );
+
+ //QCOMPARE(dtmfspy.count(), 0 );
+
+ connect(m_Dnlnkdtmf,
+ SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this,
+ SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ dtmfstring = g_string_new("4723");
+ status = m_Dnlnkdtmf->SetTone(dtmfstring);
+
+ m_Dnlnkdtmf->Start();
+ QTest::qWait(1000);
+ g_string_free(dtmfstring, TRUE);
+ //QCOMPARE(dtmfspy.count(), 1 );
+
+ status = m_Dnlnkdtmf->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(dtmfspy.count(), 2 );
+
+ }
+ }
+
+void QTmsCsTest::CreateUplinkDtmf()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ status = m_Factory->CreateDTMF(QTMS_STREAM_UPLINK, m_Uplnkdtmf);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (m_Uplnkdtmf)
+ {
+ QSignalSpy uplinkdtmfspy(m_Uplnkdtmf,
+ SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ QVERIFY( uplinkdtmfspy.isValid() );
+
+ //QCOMPARE(dtmfspy.count(), 0 );
+
+ connect(m_Uplnkdtmf,
+ SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this,
+ SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ dtmfstring = g_string_new("4723");
+ status = m_Uplnkdtmf->SetTone(dtmfstring);
+
+ m_Uplnkdtmf->Start();
+ QTest::qWait(1000);
+ g_string_free(dtmfstring, TRUE);
+ //QCOMPARE(dtmfspy.count(), 1 );
+
+ m_Uplnkdtmf->ContinueDTMFStringSending(FALSE);
+
+ status = m_Uplnkdtmf->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(dtmfspy.count(), 2 );
+
+ }
+ }
+
+
+void QTmsCsTest::CreateInband_data()
+ {
+
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_InbandTonePlayer)
+ {
+ status = m_Factory->CreateInbandTonePlayer(m_InbandTonePlayer);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ m_InbandSpy = new QSignalSpy(m_InbandTonePlayer,
+ SIGNAL(InbandToneEvent(const QTMSInbandTone&,QTMSSignalEvent)));
+
+ QVERIFY( m_InbandSpy->isValid() );
+
+ //QCOMPARE(m_InbandSpy->count(), 0 );
+ connect(m_InbandTonePlayer,
+ SIGNAL(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent)),
+ this,
+ SLOT(InbandToneEvent(const QTMSInbandTone&, QTMSSignalEvent)));
+ }
+
+ QTest::addColumn<QTMSInbandToneType>("inbandTone");
+
+ QTest::newRow("Busy")<<QTMS_INBAND_USER_BUSY;
+ QTest::newRow("Path not avail")<<QTMS_INBAND_RADIO_PATH_NOT_AVAIL;
+ QTest::newRow("Congestion")<< QTMS_INBAND_CONGESTION;
+ QTest::newRow("Special info")<<QTMS_INBAND_SPECIAL_INFO;
+ QTest::newRow("Reorder")<< QTMS_INBAND_REORDER;
+ QTest::newRow("Remote alerting")<<QTMS_INBAND_REMOTE_ALEARTING;
+ QTest::newRow("call waiting")<< QTMS_INBAND_CALL_WAITING;
+ QTest::newRow("data call")<< QTMS_INBAND_DATA_CALL;
+ QTest::newRow("no sequence")<< QTMS_INBAND_NO_SEQUENCE;
+ QTest::newRow("beep sequence")<<QTMS_INBAND_BEEP_SEQUENCE;
+
+ }
+
+
+void QTmsCsTest::CreateInband()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSInbandToneType, inbandTone);
+
+ if (m_InbandTonePlayer)
+ {
+ status = m_InbandTonePlayer->Start(inbandTone);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ // QCOMPARE(m_InbandSpy->count(), 1 );
+
+ status = m_InbandTonePlayer->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ // QCOMPARE(m_InbandSpy->count(), 2 );
+ }
+ }
+
+
+void QTmsCsTest::CreateRingTone()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory)
+ {
+ status = m_Factory->CreateRingTonePlayer(m_RingTonePlayer);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(m_RingTonePlayer,
+ SIGNAL(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent)),
+ this,
+ SLOT(RingtoneEvent(const QTMSRingTone&,QTMSSignalEvent)));
+ }
+
+ }
+
+void QTmsCsTest::InitRingTonePlayerFromProfiles()
+ {
+ if (m_RingTonePlayer)
+ {
+ gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_DEFAULT);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+
+ }
+
+void QTmsCsTest::InitRingTonePlayerFromFile()
+ {
+ if (m_RingTonePlayer)
+ {
+ TBuf<sizeof(KTestFile1)> buf(KTestFile1);
+ m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length() * 2);
+ gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_FILE, m_RTStr);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ g_string_free(m_RTStr, TRUE);
+ m_RTStr = NULL;
+ }
+
+ }
+
+
+void QTmsCsTest::InitRingToneSequencePlayer()
+ {
+ if (m_RingTonePlayer)
+ {
+ TBuf8<sizeof(KRTBeepSequence)> buf(KRTBeepSequence);
+ m_RTStr = g_string_new_len((gchar*) buf.Ptr(), buf.Length());
+ gint status = m_RingTonePlayer->Init(QTMS_RINGTONE_SEQUENCE, m_RTStr);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ g_string_free(m_RTStr, TRUE);
+ }
+ }
+
+
+void QTmsCsTest::PlayRingTone()
+ {
+ if (m_RingTonePlayer)
+ {
+ gint status = m_RingTonePlayer->Play();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+ }
+
+
+void QTmsCsTest::PauseRingTone()
+ {
+ if (m_RingTonePlayer)
+ {
+ gint status = m_RingTonePlayer->Pause(); //pause audio for video RT only
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+ }
+
+
+void QTmsCsTest::StopRingTone()
+ {
+ if (m_RingTonePlayer)
+ {
+ gint status = m_RingTonePlayer->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ }
+ }
+
+
+void QTmsCsTest::MuteRingTone()
+ {
+ if (m_RingTonePlayer)
+ {
+ m_RingTonePlayer->Mute();
+ }
+ }
+
+void QTmsCsTest::CloseRingTonePlayer()
+ {
+ if (m_Factory && m_RingTonePlayer)
+ {
+ m_RingTonePlayer->Deinit();
+ m_Factory->DeleteRingTonePlayer(m_RingTonePlayer);
+ }
+ }
+
+void QTmsCsTest::EffectsEvent(const QTMSEffect& tmseffect,
+ QTMSSignalEvent event)
+ {
+ QTMSEffectType effecttype;
+ const_cast<QTMSEffect&> (tmseffect).GetType(effecttype);
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ switch (effecttype)
+ {
+ case TMS_EFFECT_GLOBAL_VOL:
+ {
+ switch (event.type)
+ {
+ case TMS_EVENT_EFFECT_VOL_CHANGED:
+ qDebug("Global vol effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case TMS_EFFECT_GLOBAL_GAIN:
+ {
+ switch (event.type)
+ {
+ case TMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Global gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case TMS_EFFECT_VOLUME:
+ qDebug("Stream vol effect change");
+ break;
+ case TMS_EFFECT_GAIN:
+ qDebug("Stream gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+
+
+void QTmsCsTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/,
+ QTMSSignalEvent event, QTMSAudioOutput /*output*/)
+ {
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type)
+ {
+ case TMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED:
+ qDebug("Available outputs changed");
+ break;
+ case TMS_EVENT_ROUTING_OUTPUT_CHANGED:
+ qDebug("output changed");
+ break;
+ case TMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE:
+ qDebug("set output complete");
+ break;
+ default:
+ break;
+ }
+
+ }
+
+void QTmsCsTest::TMSStreamEvent(const QTMSStream& stream,
+ QTMSSignalEvent event)
+ {
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ gint streamId;
+ streamId = const_cast<QTMSStream&> (stream).GetStreamId();
+ qDebug("StreamID %d",streamId);
+ gint state;
+ state = const_cast<QTMSStream&> (stream).GetState();
+ QVERIFY(state == event.curr_state);
+
+ switch (const_cast<QTMSStream&> (stream).GetStreamType())
+ {
+ case QTMS_STREAM_UPLINK:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state)
+ {
+ case QTMS_STREAM_INITIALIZED:
+ {
+ qDebug("Uplink initialized ");
+ break;
+ }
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Uplink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Uplink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Uplink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ case QTMS_STREAM_DOWNLINK:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state)
+ {
+ case QTMS_STREAM_INITIALIZED:
+ {
+ qDebug("Downlink initialized ");
+ break;
+ }
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Downlink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Downlink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Downlink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+
+void QTmsCsTest::RingtoneEvent(const QTMSRingTone& /*rt*/,
+ QTMSSignalEvent event)
+ {
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type)
+ {
+ case TMS_EVENT_RINGTONE_OPEN_COMPLETE:
+ qDebug("RT Open Complete");
+ break;
+ case TMS_EVENT_RINGTONE_PLAY_COMPLETE:
+ qDebug("RT Play Complete");
+ break;
+ default:
+ break;
+ }
+ }
+
+
+void QTmsCsTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event)
+ {
+ if(event.reason!= QTMS_RESULT_SUCCESS)
+ {
+ QEXPECT_FAIL("","Need to be in call, expect uplink dtmf to fail", Continue);
+ }
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ switch (event.type)
+ {
+ case QTMS_EVENT_DTMF_TONE_STARTED:
+ qDebug("DTMF Started");
+ break;
+ case QTMS_EVENT_DTMF_TONE_STOPPED:
+ qDebug("DTMF Stopped");
+ break;
+ default:
+ break;
+ }
+ }
+
+void QTmsCsTest::InbandToneEvent(const QTMSInbandTone& /*inbandtone*/,
+ QTMSSignalEvent event)
+ {
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type)
+ {
+ case QTMS_EVENT_INBAND_TONE_STARTED:
+ qDebug("Inband Tone Started");
+ break;
+ case QTMS_EVENT_INBAND_TONE_STOPPED:
+ qDebug("Inband Tone Stopped");
+ break;
+ default:
+ break;
+ }
+ }
+
+QTEST_MAIN_S60(QTmsCsTest)
+
+#include "qtmscstest.moc"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmscstest/qtmscstest.pro 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
--- /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
--- /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 <QObject>
+#include <QtTest/QtTest>
+#include "qtestmains60.h"
+
+#include <qtms.h>
+#include <qtmsfactory.h>
+#include <qtmscall.h>
+#include <qtmsstream.h>
+#include <tmsstreamobsrvr.h>
+#include <qtmsformat.h>
+
+#include <qtmspcmformat.h>
+#include <qtmsamrformat.h>
+#include <qtmsilbcformat.h>
+#include <qtmsg711format.h>
+#include <qtmsg729format.h>
+
+#include <qtmsclientsink.h>
+#include <qtmsclientsource.h>
+#include <qtmsvolumeeffect.h>
+#include <qtmsgaineffect.h>
+#include <qtmsglobalvoleffect.h>
+#include <qtmsglobalgaineffect.h>
+#include <qtmsglobalrouting.h>
+
+#include <qtmsbuffer.h>
+#include <qtmsdtmf.h>
+#include <qtmsringtone.h>
+#include <qtmsinbandtone.h>
+#include <tmsbuffer.h>
+
+
+// CONSTANTS
+#define __TEST_CODE_COVERAGE__
+
+using namespace QTMS;
+
+class QTmsVoipTest : public QObject
+ {
+Q_OBJECT
+private slots:
+ void initTestCase();
+ void init();
+ void cleanup();
+ void SupportedFormats();
+ void CreateRouting_data();
+ void CreateRouting();
+ void CreateGlobalVol();
+ void CreateGlobalGain();
+ void CreateFormat_data();
+ void CreateFormat();
+ void CreateStreamVol();
+ void CreateStreamGain();
+ void CreateDnlinkDtmf();
+ void CreateBuffer();
+
+ void cleanupTestCase();
+public slots:
+ //From TMSClientSourceObserver
+ void FillBuffer(TMS::TMSBuffer& buffer);
+ void BufferProcessed(TMS::TMSBuffer* buffer, gint reason);
+ //From TMSClientSinkObserver
+ void ProcessBuffer(const TMS::TMSBuffer* buffer);
+ //From TMSStreamObserver
+ void TMSStreamEvent(const QTMSStream& stream, QTMSSignalEvent event);
+ //From TMSClientSinkObserver
+ void EffectsEvent(const QTMSEffect& tmseffect, QTMSSignalEvent event);
+ //From TMSGlobalRoutingObserver
+ void GlobalRoutingEvent(const QTMSGlobalRouting& routing,
+ QTMSSignalEvent event, QTMSAudioOutput output);
+ //From TMSRingToneObserver
+ void RingtoneEvent(const QTMSRingTone& rt, QTMSSignalEvent event);
+ //From TMSDTMFObserver
+ void DTMFEvent(const QTMSDTMF& dtmf, QTMSSignalEvent event);
+
+private:
+
+ void VoipCallSetup();
+
+ void SupportedUplinkFormats();
+ void SupportedDnlinkFormats();
+
+ void CreateUplink();
+ void CreateDnlink();
+
+ void CreateMicSource();
+ void AddMicSourceToStream();
+
+ void CreateClientSink();
+ void AddClientSinkToStream();
+
+ void CreateClientSource();
+ void AddClientSourceToStream();
+
+ void CreateSpeakerSink();
+ void AddSpeakerSinkToStream();
+
+ void InitUplink();
+ void InitDnlink();
+
+ void DeinitUplink();
+ void DeinitDnlink();
+
+ void StartUplink();
+ void StopUplink();
+ void StartDnlink();
+
+ void ResetUplnkFormat();
+ void ResetDnlnkFormat();
+
+ void StreamVol();
+ void StreamGain();
+
+ void CloseUplink();
+ void CloseDownlink();
+
+ void DisplayFormat(QTMSFormatType format);
+ void StopDnlink();
+ void CreateRingTone();
+
+ void ToggleVad();
+ void GetVad();
+ void ToggleCng();
+ void GetCng();
+ void TogglePlc();
+ void GetPlc();
+
+ void SelectMinBitrate();
+ void SelectMaxBitrate();
+ void SetBitrate(guint bitrate);
+ void GetSupportedBitrates();
+ gint GetSupportedBitrates(BitRateVector& aBrArr);
+ void GetBitrate();
+
+ void SetDnLinkG711ALAW();
+ void SetDnLinkG711uLAW();
+ void SetDnLinkILBC20MS();
+ void SetDnLinkILBC30MS();
+ void SetUpLinkG711ALAW();
+ void SetUpLinkG711uLAW();
+ void SetUpLinkILBC20MS();
+ void SetUpLinkILBC30MS();
+ void GetDnLinkG711Mode();
+ void GetDnLinkILBCMode();
+ void GetUpLinkG711Mode();
+ void GetUpLinkILBCMode();
+
+ void DisplayDevice(QTMSAudioOutput device);
+
+private:
+ QTMSFactory *m_Factory;
+ QTMSCall *m_Call;
+ QTMSDTMF *m_Dnlnkdtmf;
+ QTMSStream *m_Dnlink;
+ QTMSStream *m_Uplink;
+
+ QTMSSource *m_MicSource;
+ QTMSSource *m_ClientSource;
+ QTMSSink *m_ClientSink;
+ QTMSSink *m_SpeakerSink;
+
+ QTMSFormat *m_G711EncFormatIntfc;
+ QTMSFormat *m_G711DecFormatIntfc;
+ QTMSFormat *m_G729EncFormatIntfc;
+ QTMSFormat *m_G729DecFormatIntfc;
+ QTMSFormat *m_ILBCEncFormatIntfc;
+ QTMSFormat *m_ILBCDecFormatIntfc;
+ QTMSFormat *m_AMRNBEncFormatIntfc;
+ QTMSFormat *m_AMRNBDecFormatIntfc;
+ QTMSFormat *m_PCM16EncFormatIntfc;
+ QTMSFormat *m_PCM16DecFormatIntfc;
+
+ QTMS::FormatVector m_UplCodecs;
+ QTMS::FormatVector m_DnlCodecs;
+
+ BitRateVector m_BitratesVector;
+ guint iBitrate;
+
+ QTMSEffect *m_Vol;
+ QTMSEffect *m_Gain;
+ QTMSEffect *m_GlobalVol;
+ QTMSEffect *m_GlobalGain;
+ QTMSGlobalRouting *m_Routing;
+
+ QTMSFormatType m_DnLinkCodec;
+ QTMSFormatType m_UpLinkCodec;
+
+ QSignalSpy *m_UplinkSpy;
+ QSignalSpy *m_DnlinkSpy;
+ QSignalSpy *m_RoutingSpy;
+
+ gboolean m_Vad;
+ gboolean m_Cng;
+ gboolean m_Plc;
+
+ };
+
+void QTmsVoipTest::initTestCase()
+ {
+ qDebug("Start QTms Voip tests");
+
+ g_setenv("G_SLICE", "always-malloc", 1);
+
+ qRegisterMetaType<QTMSSignalEvent>("QTMSSignalEvent");
+ qRegisterMetaType<QTMSAudioOutput>("QTMSAudioOutput");
+
+ }
+
+void QTmsVoipTest::cleanupTestCase()
+ {
+ qDebug("End QTms tests");
+ }
+
+void QTmsVoipTest::init()
+ {
+ qDebug("****NEW TEST****");
+ m_Factory = NULL;
+ m_Call = NULL;
+ m_Dnlink = NULL;
+ m_Uplink = NULL;
+ m_MicSource = NULL;
+ m_ClientSource = NULL;
+ m_SpeakerSink = NULL;
+ m_ClientSink = NULL;
+ m_Vol = NULL;
+ m_Gain = NULL;
+ m_GlobalVol = NULL;
+ m_GlobalGain = NULL;
+ m_Routing = NULL;
+ m_Dnlnkdtmf = NULL;
+
+ m_G711EncFormatIntfc = NULL;
+ m_G711DecFormatIntfc = NULL;
+ m_G729EncFormatIntfc = NULL;
+ m_G729DecFormatIntfc = NULL;
+ m_ILBCEncFormatIntfc = NULL;
+ m_ILBCDecFormatIntfc = NULL;
+ m_AMRNBEncFormatIntfc = NULL;
+ m_AMRNBDecFormatIntfc = NULL;
+ m_PCM16EncFormatIntfc = NULL;
+ m_PCM16DecFormatIntfc = NULL;
+
+ m_UplinkSpy = NULL;
+ m_DnlinkSpy = NULL;
+
+ QTMSVer *ver(NULL);
+ gint status;
+ status = QTMSFactory::CreateFactory(m_Factory, *ver);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ VoipCallSetup();
+
+ CreateUplink();
+ CreateDnlink();
+
+ CreateMicSource();
+ AddMicSourceToStream();
+
+ CreateClientSink();
+ AddClientSinkToStream();
+
+ CreateClientSource();
+ AddClientSourceToStream();
+
+ CreateSpeakerSink();
+ AddSpeakerSinkToStream();
+
+ }
+void QTmsVoipTest::cleanup()
+ {
+ qDebug("****END TEST******");
+
+ ResetUplnkFormat();
+ ResetDnlnkFormat();
+
+ CloseUplink();
+ CloseDownlink();
+
+ if (m_MicSource)
+ m_Factory->DeleteSource(m_MicSource);
+ if (m_ClientSource)
+ m_Factory->DeleteSource(m_ClientSource);
+ if (m_ClientSink)
+ m_Factory->DeleteSink(m_ClientSink);
+ if (m_SpeakerSink)
+ m_Factory->DeleteSink(m_SpeakerSink);
+
+ if (m_Dnlnkdtmf)
+ m_Factory->DeleteDTMF(m_Dnlnkdtmf);
+
+ if (m_Vol)
+ m_Factory->DeleteEffect(m_Vol);
+ if (m_Gain)
+ m_Factory->DeleteEffect(m_Gain);
+ if (m_GlobalVol)
+ m_Factory->DeleteEffect(m_GlobalVol);
+ if (m_GlobalGain)
+ m_Factory->DeleteEffect(m_GlobalGain);
+
+ if (m_Routing)
+ m_Factory->DeleteGlobalRouting(m_Routing);
+
+ if (m_PCM16EncFormatIntfc)
+ m_Factory->DeleteFormat(m_PCM16EncFormatIntfc);
+ if (m_ILBCEncFormatIntfc)
+ m_Factory->DeleteFormat(m_ILBCEncFormatIntfc);
+ if (m_AMRNBEncFormatIntfc)
+ m_Factory->DeleteFormat(m_AMRNBEncFormatIntfc);
+ if (m_G711EncFormatIntfc)
+ m_Factory->DeleteFormat(m_G711EncFormatIntfc);
+ if (m_G729EncFormatIntfc)
+ m_Factory->DeleteFormat(m_G729EncFormatIntfc);
+ if (m_PCM16DecFormatIntfc)
+ m_Factory->DeleteFormat(m_PCM16DecFormatIntfc);
+ if (m_ILBCDecFormatIntfc)
+ m_Factory->DeleteFormat(m_ILBCDecFormatIntfc);
+ if (m_AMRNBDecFormatIntfc)
+ m_Factory->DeleteFormat(m_AMRNBDecFormatIntfc);
+ if (m_G711DecFormatIntfc)
+ m_Factory->DeleteFormat(m_G711DecFormatIntfc);
+ if (m_G729DecFormatIntfc)
+ m_Factory->DeleteFormat(m_G729DecFormatIntfc);
+
+ if (m_Uplink)
+ m_Call->DeleteStream(m_Uplink);
+ if (m_Dnlink)
+ m_Call->DeleteStream(m_Dnlink);
+
+ if (m_Call)
+ m_Factory->DeleteCall(m_Call);
+
+ if (m_Factory)
+ delete m_Factory;
+
+ }
+
+void QTmsVoipTest::VoipCallSetup()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_Call)
+ {
+ gboolean issupported(FALSE);
+ m_Factory->IsCallTypeSupported(QTMS_CALL_IP,issupported);
+ QVERIFY(issupported == TRUE);
+ status = m_Factory->CreateCall(QTMS_CALL_IP, m_Call, 0);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ guint ctxid;
+ m_Call->GetCallContextId(ctxid);
+ }
+
+ }
+
+void QTmsVoipTest::SupportedFormats()
+ {
+ SupportedUplinkFormats();
+ SupportedDnlinkFormats();
+ }
+
+void QTmsVoipTest::SupportedUplinkFormats()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ status = m_Factory->GetSupportedFormats(QTMS_STREAM_UPLINK,m_UplCodecs);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qDebug("Supported UPL codecs");
+ std::vector<QTMSFormat*>::iterator codecs = m_UplCodecs.begin();
+ QTMSFormatType fmttype;
+ for (; codecs < m_UplCodecs.end(); codecs++)
+ {
+ (*codecs)->GetType(fmttype);
+ DisplayFormat(fmttype);
+ }
+ gint size = m_UplCodecs.size();
+ for (gint i = 0; i < size; i++)
+ {
+ codecs = m_UplCodecs.begin();
+ m_Factory->DeleteFormat(*codecs);
+ m_UplCodecs.erase(codecs);
+ }
+
+ }
+
+void QTmsVoipTest::SupportedDnlinkFormats()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ status = m_Factory->GetSupportedFormats(QTMS_STREAM_DOWNLINK,m_DnlCodecs);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ qDebug("Supported DNL codecs");
+ std::vector<QTMSFormat*>::iterator codecs = m_DnlCodecs.begin();
+ QTMSFormatType fmttype;
+ for (; codecs < m_DnlCodecs.end(); codecs++)
+ {
+ (*codecs)->GetType(fmttype);
+ DisplayFormat(fmttype);
+ }
+ gint size = m_DnlCodecs.size();
+ for (gint i = 0; i < size; i++)
+ {
+ codecs = m_DnlCodecs.begin();
+ m_Factory->DeleteFormat(*codecs);
+ m_DnlCodecs.erase(codecs);
+ }
+ }
+
+
+void QTmsVoipTest::DisplayFormat(QTMSFormatType format)
+ {
+ switch (format)
+ {
+ case QTMS_FORMAT_AMR:
+ qDebug("AMR-NB");
+ break;
+ case QTMS_FORMAT_G711:
+ qDebug("G.711");
+ break;
+ case QTMS_FORMAT_G729:
+ qDebug("G.729");
+ break;
+ case QTMS_FORMAT_ILBC:
+ qDebug("iLBC");
+ break;
+ case QTMS_FORMAT_PCM:
+ qDebug("PCM-16");
+ break;
+ default:
+ break;
+ }
+ }
+
+void QTmsVoipTest::CreateUplink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call)
+ {
+ status = m_Call->CreateStream(QTMS_STREAM_UPLINK, m_Uplink);
+
+ m_UplinkSpy = new QSignalSpy(m_Uplink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_UplinkSpy->isValid() );
+
+ // QCOMPARE(m_UplinkSpy->count(), 0 );
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ connect(m_Uplink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)),
+ this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+ }
+ }
+
+ void QTmsVoipTest::CreateDnlink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Call)
+ {
+ status = m_Call->CreateStream(QTMS_STREAM_DOWNLINK, m_Dnlink);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_DnlinkSpy = new QSignalSpy(m_Dnlink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+
+ QVERIFY( m_DnlinkSpy->isValid() );
+
+ // QCOMPARE(m_DnlinkSpy->count(), 0 );
+
+ connect(m_Dnlink,
+ SIGNAL(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)),
+ this,
+ SLOT(TMSStreamEvent(const QTMSStream&, QTMSSignalEvent)));
+ }
+ }
+
+void QTmsVoipTest::CreateClientSource()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory && !m_ClientSource)
+ {
+ status = m_Factory->CreateSource(QTMS_SOURCE_CLIENT, m_ClientSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+
+void QTmsVoipTest::AddClientSourceToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_ClientSource)
+ {
+ connect(static_cast<QTMSClientSource*> (m_ClientSource),
+ SIGNAL(FillBuffer(TMS::TMSBuffer&)), this,
+ SLOT(FillBuffer(TMS::TMSBuffer&)));
+ status = m_Dnlink->AddSource(m_ClientSource);
+
+#ifdef __TEST_CODE_COVERAGE__
+ QTMSSourceType st;
+ static_cast<QTMSClientSource*>(m_ClientSource)->GetType(st);
+ gboolean enqueue(FALSE);
+ static_cast<QTMSClientSource*>(m_ClientSource)->GetEnqueueMode(enqueue);
+ static_cast<QTMSClientSource*>(m_ClientSource)->SetEnqueueMode(FALSE);
+ static_cast<QTMSClientSource*>(m_ClientSource)->Flush();
+#endif //__TEST_CODE_COVERAGE__
+ }
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+
+ void QTmsVoipTest::CreateClientSink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_ClientSink)
+ {
+ status = m_Factory->CreateSink(QTMS_SINK_CLIENT, m_ClientSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsVoipTest::AddClientSinkToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_ClientSink)
+ {
+ connect(static_cast<QTMSClientSink*> (m_ClientSink),
+ SIGNAL(ProcessBuffer(const TMS::TMSBuffer*)), this,
+ SLOT(ProcessBuffer(const TMS::TMSBuffer*)));
+ status = m_Uplink->AddSink(m_ClientSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+
+
+ void QTmsVoipTest::CreateMicSource()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_MicSource)
+ {
+ status = m_Factory->CreateSource(TMS_SOURCE_MIC, m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsVoipTest::AddMicSourceToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Uplink && m_MicSource)
+ {
+ status = m_Uplink->AddSource(m_MicSource);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsVoipTest::CreateSpeakerSink()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_SpeakerSink)
+ {
+ status = m_Factory->CreateSink(QTMS_SINK_SPEAKER, m_SpeakerSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsVoipTest::AddSpeakerSinkToStream()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Dnlink && m_SpeakerSink)
+ {
+ status = m_Dnlink->AddSink(m_SpeakerSink);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ }
+
+ void QTmsVoipTest::InitUplink()
+ {
+ QVERIFY(m_Uplink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 1 );
+
+ GetSupportedBitrates();
+ SelectMinBitrate();
+ SelectMaxBitrate();
+ GetBitrate();
+
+ ToggleVad();
+ GetVad();
+
+ SetUpLinkG711ALAW();
+ SetUpLinkG711uLAW();
+ GetUpLinkG711Mode();
+
+ SetUpLinkILBC20MS();
+ SetUpLinkILBC30MS();
+ GetUpLinkILBCMode();
+
+ }
+
+ void QTmsVoipTest::InitDnlink()
+ {
+ QVERIFY(m_Dnlink->Init() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 1 );
+ ToggleCng();
+ GetCng();
+ TogglePlc();
+ GetPlc();
+
+ SetDnLinkG711ALAW();
+ SetDnLinkG711uLAW();
+ GetDnLinkG711Mode();
+
+ SetDnLinkILBC20MS();
+ SetDnLinkILBC30MS();
+ GetDnLinkILBCMode();
+
+ }
+ void QTmsVoipTest::DeinitUplink()
+ {
+ m_Uplink->Deinit();
+ QTest::qWait(1000);
+ }
+
+ void QTmsVoipTest::DeinitDnlink()
+ {
+ m_Dnlink->Deinit();
+ QTest::qWait(1000);
+ }
+
+ void QTmsVoipTest::StartUplink()
+ {
+ QVERIFY(m_Uplink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 2 );
+ }
+
+ void QTmsVoipTest::StartDnlink()
+ {
+ QVERIFY(m_Dnlink->Start() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 2 );
+ }
+void QTmsVoipTest::StopUplink()
+ {
+#ifdef __TEST_CODE_COVERAGE__
+ QVERIFY(m_Uplink->Pause()== QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+#endif //__TEST_CODE_COVERAGE__
+
+ QVERIFY(m_Uplink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_UplinkSpy->count(), 3 );
+ }
+
+void QTmsVoipTest::StopDnlink()
+ {
+#ifdef __TEST_CODE_COVERAGE__
+ QVERIFY(m_Dnlink->Pause() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+#endif //__TEST_CODE_COVERAGE__
+
+ QVERIFY(m_Dnlink->Stop() == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(m_DnlinkSpy->count(), 3 );
+ }
+
+void QTmsVoipTest::CloseUplink()
+ {
+ m_Uplink->Deinit();
+ QTest::qWait(1000);
+ if (m_Uplink)
+ {
+ if (m_Gain)
+ {
+ QVERIFY(m_Uplink->RemoveEffect(m_Gain)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_MicSource)
+ {
+ QVERIFY(m_Uplink->RemoveSource(m_MicSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ClientSink)
+ {
+ QVERIFY(m_Uplink->RemoveSink(m_ClientSink)== QTMS_RESULT_SUCCESS);
+ }
+ }
+ }
+
+void QTmsVoipTest::CloseDownlink()
+ {
+ m_Dnlink->Deinit();
+ QTest::qWait(1000);
+ if (m_Dnlink)
+ {
+ if (m_Vol)
+ {
+ QVERIFY(m_Dnlink->RemoveEffect(m_Vol)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_ClientSource)
+ {
+ QVERIFY(m_Dnlink->RemoveSource(m_ClientSource)== QTMS_RESULT_SUCCESS);
+ }
+ if (m_SpeakerSink)
+ {
+ QVERIFY(m_Dnlink->RemoveSink(m_SpeakerSink) == QTMS_RESULT_SUCCESS);
+ }
+ }
+
+ }
+
+void QTmsVoipTest::ResetUplnkFormat()
+ {
+ if (m_Uplink)
+ {
+ switch (m_UpLinkCodec)
+ {
+ case QTMS_FORMAT_PCM:
+ m_Uplink->ResetFormat(m_PCM16EncFormatIntfc);
+ break;
+ case QTMS_FORMAT_AMR:
+ m_Uplink->ResetFormat(m_AMRNBEncFormatIntfc);
+ break;
+ case QTMS_FORMAT_G711:
+ m_Uplink->ResetFormat(m_G711EncFormatIntfc);
+ break;
+ case QTMS_FORMAT_G729:
+ m_Uplink->ResetFormat(m_G729EncFormatIntfc);
+ break;
+ case QTMS_FORMAT_ILBC:
+ m_Uplink->ResetFormat(m_ILBCEncFormatIntfc);
+ break;
+ default:
+ break;
+ }
+ }
+
+ }
+
+void QTmsVoipTest::ResetDnlnkFormat()
+ {
+ if (m_Dnlink)
+ {
+ switch (m_DnLinkCodec)
+ {
+ case QTMS_FORMAT_PCM:
+ m_Dnlink->ResetFormat(m_PCM16DecFormatIntfc);
+ break;
+ case QTMS_FORMAT_AMR:
+ m_Dnlink->ResetFormat(m_AMRNBDecFormatIntfc);
+ break;
+ case QTMS_FORMAT_G711:
+ m_Dnlink->ResetFormat(m_G711DecFormatIntfc);
+ break;
+ case QTMS_FORMAT_G729:
+ m_Dnlink->ResetFormat(m_G729DecFormatIntfc);
+ break;
+ case QTMS_FORMAT_ILBC:
+ m_Dnlink->ResetFormat(m_ILBCDecFormatIntfc);
+ break;
+ default:
+ break;
+ }
+ }
+ }
+
+void QTmsVoipTest::CreateFormat_data()
+ {
+ QTest::addColumn<QTMSFormatType>("format");
+
+#ifndef __WINSCW__
+ QTest::newRow("G711")<<QTMS_FORMAT_G711;
+ QTest::newRow("G729")<<QTMS_FORMAT_G729;
+ QTest::newRow("iLBC")<<QTMS_FORMAT_ILBC;
+ QTest::newRow("AMR")<<QTMS_FORMAT_AMR;
+#endif
+ QTest::newRow("PCM") << QTMS_FORMAT_PCM;
+ }
+
+void QTmsVoipTest::CreateFormat()
+ {
+ gint decstatus(QTMS_RESULT_SUCCESS);
+ gint encstatus(QTMS_RESULT_SUCCESS);
+ gint setencstatus(QTMS_RESULT_SUCCESS);
+ gint setdecstatus(QTMS_RESULT_SUCCESS);
+ QFETCH(QTMSFormatType, format);
+
+ m_DnLinkCodec = format;
+ m_UpLinkCodec = format;
+
+ switch (format)
+ {
+ case QTMS_FORMAT_G711:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_G711,
+ m_G711DecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G711,
+ m_G711EncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_G711DecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_G711EncFormatIntfc);
+ qDebug("G.711 Set");
+
+ }
+ break;
+ case QTMS_FORMAT_G729:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729,
+ m_G729DecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_G729,
+ m_G729EncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_G729DecFormatIntfc);
+ setdecstatus = m_Uplink->SetFormat(m_G729EncFormatIntfc);
+ qDebug("G.729 Set");
+ }
+ break;
+ case QTMS_FORMAT_ILBC:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC,
+ m_ILBCDecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_ILBC,
+ m_ILBCEncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_ILBCDecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_ILBCEncFormatIntfc);
+ qDebug("iLBC Set");
+ }
+ break;
+ case QTMS_FORMAT_AMR:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR,
+ m_AMRNBDecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_AMR,
+ m_AMRNBEncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_AMRNBDecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_AMRNBEncFormatIntfc);
+ qDebug("AMR-NB Set");
+ }
+ break;
+ case QTMS_FORMAT_PCM:
+ {
+ decstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM,
+ m_PCM16DecFormatIntfc);
+ encstatus = m_Factory->CreateFormat(QTMS_FORMAT_PCM,
+ m_PCM16EncFormatIntfc);
+ setdecstatus = m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+ setencstatus = m_Uplink->SetFormat(m_PCM16EncFormatIntfc);
+ qDebug("PCM-16 Set");
+ }
+ break;
+ default:
+ break;
+ }
+
+ QVERIFY(decstatus == QTMS_RESULT_SUCCESS);
+ QVERIFY(encstatus == QTMS_RESULT_SUCCESS);
+ QVERIFY(setdecstatus == QTMS_RESULT_SUCCESS);
+ QVERIFY(setencstatus == QTMS_RESULT_SUCCESS);
+
+ InitUplink();
+ InitDnlink();
+ }
+
+
+void QTmsVoipTest::ToggleVad()
+ {
+ //m_Vad = (m_Vad) ? EFalse : ETrue;
+
+ m_Vad = ETrue;
+ switch (m_UpLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetVADMode(
+ m_Vad);
+ qDebug("G711 VAD set %d", m_Vad);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->SetVADMode(
+ m_Vad);
+ qDebug("G729 VAD set %d",m_Vad);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetVADMode(
+ m_Vad);
+ qDebug("iLBC VAD set %d",m_Vad);
+ break;
+ case QTMS_FORMAT_AMR:
+ //static_cast<TMSAMRFormat*>(iAMRNBEncFormatIntfc)->SetVADMode(m_Vad);
+ break;
+ case QTMS_FORMAT_PCM:
+ // Not supported; just for testing failing condition
+ //static_cast<QTMSPCMFormat*>(iPCM16EncFormatIntfc)->SetVADMode(m_Vad);
+ break;
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::GetVad()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ gboolean vad = EFalse;
+
+ switch (m_UpLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ status = static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->GetVADMode(
+ vad);
+ qDebug("get G711 VAD: %d", vad);
+ break;
+ case QTMS_FORMAT_G729:
+ status = static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->GetVADMode(
+ vad);
+ qDebug("get G729 VAD: %d", vad);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetVADMode(
+ vad);
+ qDebug("get iLBC VAD: %d", vad);
+ break;
+ default:
+ return;
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ // QVERIFY(vad == m_Vad);
+
+
+ }
+
+void QTmsVoipTest::ToggleCng()
+ {
+// m_Cng = (m_Cng) ? EFalse : ETrue;
+
+ m_Cng = ETrue;
+ switch (m_DnLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ //case EG711_10MS:
+ static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetCNG(m_Cng);
+ qDebug("G711 CNG set %d", m_Cng);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->SetCNG(m_Cng);
+ qDebug("iLBC CNG set %d", m_Cng);
+ break;
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::GetCng()
+ {
+ gint status;
+ gboolean cng = EFalse;
+ switch (m_DnLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ status = static_cast<QTMSG711Format*>(m_G711DecFormatIntfc)->GetCNG(cng);
+ qDebug("G711 CNG: %d", cng);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = static_cast<QTMSILBCFormat*>(m_ILBCDecFormatIntfc)->GetCNG(cng);
+ qDebug("iLBC CNG: %d", cng);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ break;
+ default:
+ break;
+ }
+
+ // QVERIFY(cng == m_Cng);
+
+ }
+
+
+void QTmsVoipTest::TogglePlc()
+ {
+// m_Plc = (m_Plc) ? EFalse : ETrue;
+ m_Plc = ETrue;
+ if (m_DnLinkCodec == QTMS_FORMAT_G711)
+ {
+ static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetPlc(m_Plc);
+ qDebug("G711 PLC set %d",m_Plc );
+ }
+ }
+
+void QTmsVoipTest::GetPlc()
+ {
+ gboolean plc = EFalse;
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status =
+ static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->GetPlc(
+ plc);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("G711 PLC: %d", plc);
+ // QVERIFY(plc == m_Plc);
+ }
+ }
+
+
+
+void QTmsVoipTest::SelectMinBitrate()
+ {
+ if (m_BitratesVector.size() > 0)
+ {
+ std::vector<guint>::iterator bitrate = m_BitratesVector.begin();
+ iBitrate = *bitrate;
+ SetBitrate(iBitrate);
+ qDebug("BR set %d",iBitrate);
+ }
+ }
+
+
+void QTmsVoipTest::SelectMaxBitrate()
+ {
+ if (m_BitratesVector.size() > 0)
+ {
+ iBitrate = m_BitratesVector.back();
+ SetBitrate(iBitrate);
+ qDebug("BR set %d",iBitrate);
+ }
+ }
+
+
+void QTmsVoipTest::SetBitrate(guint bitrate)
+ {
+ switch (m_UpLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_AMR:
+ static_cast<QTMSAMRFormat*> (m_AMRNBEncFormatIntfc)->SetBitRate(
+ bitrate);
+ qDebug("Set BR %d",bitrate);
+ break;
+ case QTMS_FORMAT_PCM:
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::GetSupportedBitrates()
+ {
+ gint numOfItems(0);
+ m_BitratesVector.clear();
+ gint status = GetSupportedBitrates(m_BitratesVector);
+
+ numOfItems = m_BitratesVector.size();
+ qDebug("BR Count %d", numOfItems);
+ std::vector<guint>::iterator itBitrates = m_BitratesVector.begin();
+ for (; itBitrates < m_BitratesVector.end(); itBitrates++)
+ {
+ qDebug("BR %d", *itBitrates);
+ }
+ }
+
+
+gint QTmsVoipTest::GetSupportedBitrates(BitRateVector& aBrArr)
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ switch (m_UpLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ status = m_G711EncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_G729:
+ status = m_G729EncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_ILBC:
+ status = m_ILBCEncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_AMR:
+ status = m_AMRNBEncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ case QTMS_FORMAT_PCM:
+ // not supported, but test for correct error handling
+ //status = m_PCM16EncFormatIntfc->GetSupportedBitRates(aBrArr);
+ break;
+ default:
+ status = KErrNotSupported;
+ break;
+ }
+
+ return status;
+ }
+
+
+void QTmsVoipTest::GetBitrate()
+ {
+ guint bitrate;
+ switch (m_UpLinkCodec)
+ {
+ case QTMS_FORMAT_G711:
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("G711 bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_G729:
+ static_cast<QTMSG729Format*> (m_G729EncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("G729 bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_ILBC:
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("iLBC bitrate: %d", bitrate);
+ break;
+ case QTMS_FORMAT_AMR:
+ static_cast<QTMSAMRFormat*> (m_AMRNBEncFormatIntfc)->GetBitRate(
+ bitrate);
+ qDebug("AMR bitrate: %d", bitrate);
+ break;
+ case TMS_FORMAT_PCM:
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::SetDnLinkG711ALAW()
+ {
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_ALAW);
+ qDebug("SetDnLinkG711ALAW status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL G.711 Mode Set: [aLaw]");
+ }
+ }
+
+
+void QTmsVoipTest::SetDnLinkG711uLAW()
+ {
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status = static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_MULAW);
+ qDebug("SetDnLinkG711uLAW status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL G.711 Mode Set: [uLaw]");
+ }
+ }
+
+
+void QTmsVoipTest::GetDnLinkG711Mode()
+ {
+ QTMSG711CodecMode mode;
+ if (m_G711DecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status =
+ static_cast<QTMSG711Format*> (m_G711DecFormatIntfc)->GetMode(
+ mode);
+ qDebug("GetDnLinkG711Mode status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == TMS_G711_CODEC_MODE_MULAW)
+ {
+ qDebug("DNL G711 Mode: [uLaw]");
+ }
+ else
+ {
+ qDebug("DNL G711 Mode: [aLaw]");
+ }
+ }
+ }
+
+
+void QTmsVoipTest::SetDnLinkILBC20MS()
+ {
+ if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC)
+ {
+ gint status =
+ static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->SetMode(
+ TMS_ILBC_CODEC_MODE_20MS_FRAME);
+ qDebug("SetDnLinkILBC20MS status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL iLBC Mode Set: [20ms]");
+ }
+ }
+
+
+void QTmsVoipTest::SetDnLinkILBC30MS()
+ {
+ if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC)
+ {
+ gint status =
+ static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->SetMode(
+ TMS_ILBC_CODEC_MODE_30MS_FRAME);
+ qDebug("SetDnLinkILBC30MS status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("DNL iLBC Mode Set: [30ms]");
+ }
+ }
+
+
+void QTmsVoipTest::GetDnLinkILBCMode()
+ {
+ QTMSILBCCodecMode mode;
+ if (m_ILBCDecFormatIntfc && m_DnLinkCodec == QTMS_FORMAT_ILBC)
+ {
+ gint status =
+ static_cast<QTMSILBCFormat*> (m_ILBCDecFormatIntfc)->GetMode(
+ mode);
+ qDebug("GetDnLinkILBCMode status %d",status);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME)
+ {
+ qDebug("DNL iLBC Mode: [30ms]");
+ }
+ else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME)
+ {
+ qDebug("DNL iLBC Mode: [20ms]");
+ }
+ }
+ }
+
+void QTmsVoipTest::SetUpLinkG711ALAW()
+ {
+ if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status =
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_ALAW);
+
+ qDebug("SetUpLinkG711ALAW status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL G.711 Mode Set: [aLaw]");
+ }
+ }
+
+void QTmsVoipTest::SetUpLinkG711uLAW()
+ {
+ if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status =
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->SetMode(
+ QTMS_G711_CODEC_MODE_MULAW);
+ qDebug("SetUpLinkG711uLAW status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL G.711 Mode Set: [uLaw]");
+ }
+ }
+
+void QTmsVoipTest::GetUpLinkG711Mode()
+ {
+ QTMSG711CodecMode mode;
+ if (m_G711EncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_G711)
+ {
+ gint status =
+ static_cast<QTMSG711Format*> (m_G711EncFormatIntfc)->GetMode(
+ mode);
+ qDebug("GetUpLinkG711Mode status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == QTMS_G711_CODEC_MODE_MULAW)
+ {
+ qDebug("UPL G.711 Mode: [uLaw]");
+ }
+ else if (mode == QTMS_G711_CODEC_MODE_ALAW)
+ {
+ qDebug("UPL G.711 Mode: [aLaw]");
+ }
+ }
+
+ }
+
+
+void QTmsVoipTest::SetUpLinkILBC20MS()
+ {
+ if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC)
+ {
+ gint status =
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetMode(
+ QTMS_ILBC_CODEC_MODE_20MS_FRAME);
+ qDebug("SetUpLinkILBC20MS status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL iLBC Mode Set: [20ms]");
+ }
+ }
+
+
+void QTmsVoipTest::SetUpLinkILBC30MS()
+ {
+ if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC)
+ {
+ gint status =
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->SetMode(
+ QTMS_ILBC_CODEC_MODE_30MS_FRAME);
+ qDebug("SetUpLinkILBC30MS status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("UPL iLBC Mode Set: [30ms]");
+ }
+ }
+
+void QTmsVoipTest::GetUpLinkILBCMode()
+ {
+ QTMSILBCCodecMode mode;
+ if (m_ILBCEncFormatIntfc && m_UpLinkCodec == QTMS_FORMAT_ILBC)
+ {
+ gint status =
+ static_cast<QTMSILBCFormat*> (m_ILBCEncFormatIntfc)->GetMode(
+ mode);
+ qDebug("GetUpLinkILBCMode status %d",status);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (mode == QTMS_ILBC_CODEC_MODE_30MS_FRAME)
+ {
+ qDebug("UPL iLBC Mode: [30ms]");
+ }
+ else if (mode == QTMS_ILBC_CODEC_MODE_20MS_FRAME)
+ {
+ qDebug("UPL iLBC Mode: [20ms]");
+ }
+ }
+
+ }
+
+
+void QTmsVoipTest::CreateStreamVol()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && m_Dnlink && !m_Vol)
+ {
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+
+ status = m_Factory->CreateEffect(QTMS_EFFECT_VOLUME, m_Vol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSVolumeEffect*> (m_Vol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ if(m_Dnlink)
+ {
+ status = m_Dnlink->AddEffect(m_Vol);
+ }
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ InitDnlink();
+
+ StreamVol();
+
+ }
+ }
+
+void QTmsVoipTest::StreamVol()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ guint maxvol(0);
+ if (m_Vol)
+ {
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetMaxLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->SetLevel(maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSVolumeEffect*> (m_Vol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(vol,maxvol);
+ }
+ }
+
+void QTmsVoipTest::CreateStreamGain()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && m_Uplink && !m_Gain)
+ {
+
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16EncFormatIntfc);
+ m_Uplink->SetFormat(m_PCM16EncFormatIntfc);
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GAIN, m_Gain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGainEffect*> (m_Gain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ status = m_Uplink->AddEffect(m_Gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ InitUplink();
+
+ StreamGain();
+ }
+ }
+
+void QTmsVoipTest::StreamGain()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Gain)
+ {
+ guint maxgain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ static_cast<QTMSGainEffect*> (m_Gain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGainEffect*> (m_Gain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QCOMPARE(gain,maxgain);
+ }
+
+ }
+
+void QTmsVoipTest::CreateGlobalVol()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalVol)
+ {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_VOL, m_GlobalVol);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalVolEffect*> (m_GlobalVol),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this, SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxvol(0);
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->GetMaxLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global max vol %d",maxvol);
+
+ status = static_cast<QTMSGlobalVolEffect*>(m_GlobalVol)->SetLevel(
+ maxvol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint vol(0);
+ status = static_cast<QTMSGlobalVolEffect*> (m_GlobalVol)->GetLevel(vol);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global vol %d",vol);
+
+ QCOMPARE(vol,maxvol);
+
+ }
+ }
+
+
+void QTmsVoipTest::CreateGlobalGain()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ if (m_Factory && !m_GlobalGain)
+ {
+ status = m_Factory->CreateEffect(QTMS_EFFECT_GLOBAL_GAIN, m_GlobalGain);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ connect(static_cast<QTMSGlobalGainEffect*> (m_GlobalGain),
+ SIGNAL(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)),
+ this,
+ SLOT(EffectsEvent(const QTMSEffect&,QTMSSignalEvent)));
+
+ guint maxgain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetMaxLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global max gain %d",maxgain);
+
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->SetLevel(maxgain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+
+ guint gain(0);
+ static_cast<QTMSGlobalGainEffect*>(m_GlobalGain)->GetLevel(gain);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ qDebug("global gain %d",gain);
+
+ QCOMPARE(gain,maxgain);
+
+ }
+ }
+
+void QTmsVoipTest::CreateRouting_data()
+ {
+
+ QTest::addColumn<QTMSAudioOutput>("routing");
+
+ QTest::newRow("Public")<<QTMS_AUDIO_OUTPUT_PUBLIC;
+ QTest::newRow("Private")<<QTMS_AUDIO_OUTPUT_PRIVATE;
+
+
+ }
+
+void QTmsVoipTest::CreateRouting()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+
+ QFETCH(QTMSAudioOutput, routing);
+
+ if (m_Factory && !m_Routing)
+ {
+ m_UpLinkCodec = QTMS_FORMAT_PCM;
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+
+ InitDnlink();
+ StartDnlink();
+
+ status = m_Factory->CreateGlobalRouting(m_Routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ m_RoutingSpy = new QSignalSpy(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,
+ QTMSSignalEvent,
+ QTMSAudioOutput)));
+
+ QVERIFY( m_RoutingSpy->isValid() );
+
+ //QCOMPARE(m_RoutingSpy->count(), 0 );
+ connect(m_Routing,
+ SIGNAL(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput)),
+ this,
+ SLOT(GlobalRoutingEvent(const QTMSGlobalRouting&,QTMSSignalEvent,QTMSAudioOutput)));
+ }
+
+ if(m_Routing)
+ {
+ status = m_Routing->SetOutput(routing);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+#ifndef __WINSCW__
+ QTest::qWait(1000);
+ //QCOMPARE(m_RoutingSpy->count(), 1 );
+#endif
+ QTMSAudioOutput current;
+ status = m_Routing->GetOutput(current);
+ DisplayDevice(current);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+#ifndef __WINSCW__
+ QCOMPARE(routing,current);
+#endif
+ StopDnlink();
+ }
+ }
+
+
+void QTmsVoipTest::DisplayDevice(QTMSAudioOutput device)
+ {
+ qDebug("Current Output:");
+
+ switch (device)
+ {
+ case QTMS_AUDIO_OUTPUT_NONE:
+ {
+ qDebug("none");
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PUBLIC:
+ {
+ qDebug("Public");
+ }
+ break;
+ case QTMS_AUDIO_OUTPUT_PRIVATE:
+ {
+ qDebug("Private");
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::CreateDnlinkDtmf()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ GString* dtmfstring(NULL);
+
+ if (m_Factory && m_Dnlink && !m_Dnlnkdtmf)
+ {
+ m_UpLinkCodec = QTMS_FORMAT_PCM;
+ m_Factory->CreateFormat(QTMS_FORMAT_PCM, m_PCM16DecFormatIntfc);
+ m_Dnlink->SetFormat(m_PCM16DecFormatIntfc);
+
+ InitDnlink();
+
+ status = m_Factory->CreateDTMF(QTMS_STREAM_DOWNLINK, m_Dnlnkdtmf);
+
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+
+ QSignalSpy dtmfspy(m_Dnlnkdtmf,
+ SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ QVERIFY( dtmfspy.isValid() );
+
+ //QCOMPARE(dtmfspy.count(), 0 );
+
+ connect(m_Dnlnkdtmf,
+ SIGNAL(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)), this,
+ SLOT(DTMFEvent(const QTMSDTMF&,QTMSSignalEvent)));
+
+ dtmfstring = g_string_new("4723");
+ status = m_Dnlnkdtmf->SetTone(dtmfstring);
+
+ m_Dnlnkdtmf->Start();
+ QTest::qWait(1000);
+ g_string_free(dtmfstring, TRUE);
+ //QCOMPARE(dtmfspy.count(), 1 );
+
+ status = m_Dnlnkdtmf->Stop();
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ QTest::qWait(1000);
+ //QCOMPARE(dtmfspy.count(), 2 );
+ }
+ }
+
+void QTmsVoipTest::CreateRingTone()
+ {
+
+ }
+
+
+void QTmsVoipTest::CreateBuffer()
+ {
+ gint status(QTMS_RESULT_SUCCESS);
+ if (m_Factory)
+ {
+ QTMSBuffer* qtmsbuffer(NULL);
+ QTMSBufferType buftype(QTMS_BUFFER_MEMORY);
+ guint size(100);
+ status = m_Factory->CreateBuffer(QTMS_BUFFER_MEMORY,
+ size, qtmsbuffer);
+ QVERIFY(status == QTMS_RESULT_SUCCESS);
+ if (qtmsbuffer)
+ {
+ qtmsbuffer->GetType(buftype);
+ qtmsbuffer->GetDataSize(size);
+ qtmsbuffer->SetDataSize(size);
+ guint8* pbuf(NULL);
+ qtmsbuffer->GetDataPtr(pbuf);
+ guint64 ts(0);
+ qtmsbuffer->GetTimeStamp(ts);
+ qtmsbuffer->SetTimeStamp(ts);
+ m_Factory->DeleteBuffer(qtmsbuffer);
+ }
+ }
+ }
+
+
+void QTmsVoipTest::FillBuffer(TMS::TMSBuffer& buffer)
+ {
+ //TODO: add loopback test and file playback
+#ifdef __TEST_CODE_COVERAGE__
+ if(m_ClientSource)
+ {
+ static_cast<QTMSClientSource*> (m_ClientSource)->BufferFilled(
+ buffer);
+ }
+#endif
+
+ }
+
+void QTmsVoipTest::BufferProcessed(TMS::TMSBuffer* /*buffer*/, gint /*reason*/)
+ {
+ }
+
+void QTmsVoipTest::ProcessBuffer(const TMS::TMSBuffer* buffer)
+ {
+ //TODO: add loopback test
+#ifdef __TEST_CODE_COVERAGE__
+ TMS::TMSBuffer* recBuf(NULL);
+ recBuf = const_cast<TMS::TMSBuffer*> (buffer);
+ if(m_ClientSink)
+ {
+ static_cast<QTMSClientSink*> (m_ClientSink)->BufferProcessed(
+ recBuf);
+ }
+#endif
+ }
+
+
+
+void QTmsVoipTest::EffectsEvent(const QTMSEffect& tmseffect,
+ QTMSSignalEvent event)
+ {
+ QTMSEffectType effecttype;
+ const_cast<QTMSEffect&> (tmseffect).GetType(effecttype);
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ switch (effecttype)
+ {
+ case QTMS_EFFECT_GLOBAL_VOL:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_EFFECT_VOL_CHANGED:
+ qDebug("Global vol effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case QTMS_EFFECT_GLOBAL_GAIN:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Global gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case QTMS_EFFECT_VOLUME:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Stream vol effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ case QTMS_EFFECT_GAIN:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_EFFECT_GAIN_CHANGED:
+ qDebug("Stream gain effect change");
+ break;
+ default:
+ break;
+ }
+ }
+ break;
+ default:
+ break;
+ }
+ }
+
+
+
+void QTmsVoipTest::GlobalRoutingEvent(const QTMSGlobalRouting& /*routing*/,
+ QTMSSignalEvent event, QTMSAudioOutput /*output*/)
+ {
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type)
+ {
+ case QTMS_EVENT_ROUTING_AVAIL_OUTPUTS_CHANGED:
+ qDebug("Available outputs changed");
+ break;
+ case QTMS_EVENT_ROUTING_OUTPUT_CHANGED:
+ qDebug("output changed");
+ break;
+ case QTMS_EVENT_ROUTING_SET_OUTPUT_COMPLETE:
+ qDebug("set output complete");
+ break;
+ default:
+ break;
+ }
+
+ }
+
+void QTmsVoipTest::TMSStreamEvent(const QTMSStream& stream,
+ QTMSSignalEvent event)
+ {
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+
+ gint streamId;
+ streamId = const_cast<QTMSStream&> (stream).GetStreamId();
+ qDebug("StreamID %d",streamId);
+ gint state;
+ state = const_cast<QTMSStream&> (stream).GetState();
+ QVERIFY(state == event.curr_state);
+
+ switch (const_cast<QTMSStream&> (stream).GetStreamType())
+ {
+ case QTMS_STREAM_UPLINK:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state)
+ {
+ case QTMS_STREAM_INITIALIZED:
+ {
+ qDebug("Uplink initialized ");
+ break;
+ }
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Uplink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Uplink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Uplink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ case QTMS_STREAM_DOWNLINK:
+ {
+ switch (event.type)
+ {
+ case QTMS_EVENT_STREAM_STATE_CHANGED:
+ {
+ switch (event.curr_state)
+ {
+ case QTMS_STREAM_INITIALIZED:
+ qDebug("Downlink initialized ");
+ break;
+ case QTMS_STREAM_UNINITIALIZED:
+ qDebug("Downlink uninitialized ");
+ break;
+ case QTMS_STREAM_PAUSED:
+ qDebug("Downlink paused ");
+ break;
+ case QTMS_STREAM_STARTED:
+ qDebug("Downlink started ");
+ break;
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ break;
+ }
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::RingtoneEvent(const QTMSRingTone& /*rt*/,
+ QTMSSignalEvent event)
+ {
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type)
+ {
+ case QTMS_EVENT_RINGTONE_OPEN_COMPLETE:
+ qDebug("RT Open Complete");
+ break;
+ case QTMS_EVENT_RINGTONE_PLAY_COMPLETE:
+ qDebug("RT Play Complete");
+ break;
+ default:
+ break;
+ }
+ }
+
+
+void QTmsVoipTest::DTMFEvent(const QTMSDTMF& /*dtmf*/, QTMSSignalEvent event)
+ {
+
+ QVERIFY(event.reason == QTMS_RESULT_SUCCESS);
+ switch (event.type)
+ {
+ case QTMS_EVENT_DTMF_TONE_STARTED:
+ qDebug("DTMF Started");
+ break;
+ case QTMS_EVENT_DTMF_TONE_STOPPED:
+ qDebug("DTMF Stopped");
+ break;
+ default:
+ break;
+ }
+ }
+
+
+QTEST_MAIN_S60(QTmsVoipTest)
+
+#include "qtmsvoiptest.moc"
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/tsrc/qtmsvoiptest/qtmsvoiptest.pro 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
--- /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 <platform_paths.hrh>
+
+TEMPLATE = subdirs
+
+BLD_INF_RULES.prj_exports += "$${LITERAL_HASH}include <platform_paths.hrh>"
+
+
+SUBDIRS = qtmscstest \
+ qtmsvoiptest
+
+
+SYMBIAN_PLATFORMS = DEFAULT
Binary file mpx/Conf/mpx.confml has changed
Binary file mpx/cenrep/101FFCD2.txt has changed
--- 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);
}
// ----------------------------------------------------------------------------
--- 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
--- 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;
}
--- 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
--- 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
// ----------------------------------------------------------------------------
//
--- 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<TProcessId>(
KMPXCommandPlaybackGeneralClientPid);
}
- else if (EPbCmdStop == cmd)
- {
- ASSERT(aCmd.IsSupported(KMPXCommandPlaybackGeneralClientPid));
- iLastInactiveProcess = aCmd.ValueTObjectL<TProcessId>(
- 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:
--- 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);
}
--- 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<CMPXMedia>(aMessage, 1, cmd);
CleanupStack::PushL(cmd);
- if (aMessage.Int0())
- { // aSync command
- SetAsync(aMessage);
- } // else sync command
iPlayer->CommandL(*cmd, *iMessageQueue);
CleanupStack::PopAndDestroy(cmd);
break;
--- 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);
--- 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
--- 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...<src> <destination>
-"/epoc32/release/armv5/udeb/qtmsapi.dll" -"!:/sys/bin/qtmsapi.dll"
+"/epoc32/release/armv5/udeb/qtmsapi.dll"-"!:/sys/bin/qtmsapi.dll"
--- 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<unsigned int, class std::allocator<unsigned int> > &)
- ?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<class QTMS::QTMSFormat *, class std::allocator<class QTMS::QTMSFormat *> > &)
- ?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<unsigned int, class std::allocator<unsigned int> > &)
- ?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<unsigned int, class std::allocator<unsigned int> > &)
+ ?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<class QTMS::QTMSFormat *, class std::allocator<class QTMS::QTMSFormat *> > &)
+ ?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<unsigned int, class std::allocator<unsigned int> > &)
+ ?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 &)
--- 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
--- 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 <qtms.h>
+// 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
--- 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);
--- 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
--- 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 <qtmsbuffer.h>
+// 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;
};
--- 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);
--- 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
--- 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 <e32std.h>
#include <tms.h>
-#include <telephonyaudiorouting.h>
+#include <TelephonyAudioRouting.h>
#ifdef _DEBUG
#include <e32debug.h>
#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
{
--- 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 <platform_paths.hrh>" \
- "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
+
--- 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 <data_caging_paths_for_iby.hrh>
#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
--- 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<TMSFormat*> (iFormat)->GetType(fmttype);
status = iFormat->GetType(fmttype);
}
return status;
--- 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<QTMSMemBuffer*> (buffer));
+ buffer = NULL;
ret = QTMS_RESULT_SUCCESS;
break;
default:
--- 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<QTMSStreamImpl*> (strm));
delete strm;
strm = NULL;
return status;
--- 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<TMSClientSink*> (iSink)->BufferProcessed(buffer);
+ TMSBuffer* buf(reinterpret_cast<TMSBuffer*> (buffer));
+ status = static_cast<TMSClientSink*> (iSink)->BufferProcessed(buf);
}
return status;
}
@@ -49,7 +49,6 @@
if (iSink)
{
status = static_cast<TMSClientSink*> (iSink)->GetType(sinktype);
- //status = iSink->GetType(sinktype); //virtual; should be ok
}
return status;
}
--- 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 <qtms.h>
#include <tmsbuffer.h>
#include <tmsclientsink.h>
+#include <qtmsbuffer.h>
#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<TMSBuffer*> (buffer));
+ QTMSBuffer* qtbuf(reinterpret_cast<QTMSBuffer*> (buf));
+ emit QTMSClientSink::ProcessBuffer(qtbuf);
}
// End of file
--- 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<TMSClientSource*> (iSource)->BufferFilled(buffer);
+ TMSBuffer& buf(reinterpret_cast<TMSBuffer&>(buffer));
+ status = static_cast<TMSClientSource*> (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<TMSClientSource*> (iSource)->ProcessBuffer(buffer);
+ TMSBuffer* buf(reinterpret_cast<TMSBuffer*>(buffer));
+ status = static_cast<TMSClientSource*> (iSource)->ProcessBuffer(buf);
}
return status;
}
--- 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 <qtms.h>
+#include <qtmsbuffer.h>
#include <tmsbuffer.h>
#include <tmsclientsource.h>
#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<QTMSBuffer&> (buffer));
}
void QTMSClientSourceImpl::BufferProcessed(const TMS::TMSBuffer* buffer,
gint reason)
{
- emit QTMS::QTMSClientSource::BufferProcessed(buffer, reason);
+ TMSBuffer* buf(const_cast<TMSBuffer*> (buffer));
+ emit QTMSClientSource::BufferProcessed(
+ reinterpret_cast<QTMSBuffer*> (buf), reason);
}
// End of file
--- 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;
}
--- 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<TMSFormat*>::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<QTMSPCMFormatImpl*>(qtmsfmt));
qtmsfmt = NULL;
- ret = QTMS_RESULT_SUCCESS;
break;
case QTMS_FORMAT_AMR:
delete (static_cast<QTMSAMRFormatImpl*>(qtmsfmt));
qtmsfmt = NULL;
- ret = QTMS_RESULT_SUCCESS;
break;
case QTMS_FORMAT_G711:
delete (static_cast<QTMSG711FormatImpl*>(qtmsfmt));
qtmsfmt = NULL;
- ret = QTMS_RESULT_SUCCESS;
break;
case QTMS_FORMAT_G729:
delete (static_cast<QTMSG729FormatImpl*>(qtmsfmt));
qtmsfmt = NULL;
- ret = QTMS_RESULT_SUCCESS;
break;
case QTMS_FORMAT_ILBC:
delete (static_cast<QTMSILBCFormatImpl*>(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<QTMSMemBuffer*> (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<QTMSClientSourceImpl*>(qtmssrc));
qtmssrc = NULL;
- ret = QTMS_RESULT_SUCCESS;
break;
case QTMS_SOURCE_MODEM:
{
delete (static_cast<QTMSModemSourceImpl*>(qtmssrc));
qtmssrc = NULL;
- ret = TMS_RESULT_SUCCESS;
}
break;
case TMS_SOURCE_MIC:
{
delete (static_cast<QTMSMicSourceImpl*>(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<QTMSClientSinkImpl*>(qtmssink));
qtmssink = NULL;
- ret = QTMS_RESULT_SUCCESS;
}
break;
case QTMS_SINK_MODEM:
{
delete (static_cast<QTMSModemSinkImpl*>(qtmssink));
qtmssink = NULL;
- ret = QTMS_RESULT_SUCCESS;
}
break;
case QTMS_SINK_SPEAKER:
{
delete (static_cast<QTMSSpeakerSinkImpl*>(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<QTMSGlobalRoutingImpl*>(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<QTMSDTMFImpl*>(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<QTMSRingToneImpl*>(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<QTMSInbandToneImpl*>(inbandtone));
inbandtone = NULL;
+ TRACE_PRN_FN_EXT;
return ret;
}
--- 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<TMSFormat*> (iFormat)->GetType(fmttype);
status = iFormat->GetType(fmttype);
}
return status;
--- 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<TMSGainEffect*> (iEffect)->AddObserver(obsrvr, NULL);
+ ret = static_cast<TMSGainEffect*> (iEffect)->AddObserver(obsrvr,
+ user_data);
}
return ret;
}
--- 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)
--- 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;
--- 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 <qtms.h>
-#include <qtmsstream.h>
-#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
--- 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 <qtms.h>
-#include <qtmsbuffer.h>
+#include <tmsbuffer.h>
+#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;
}
--- 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<TMSMicSource*> (iSource));
}
gint QTMSMicSource::GetType(QTMSSourceType& sourcetype)
--- 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<TMSModemSink*>(iSink));
}
gint QTMSModemSink::GetType(QTMSSinkType& sinktype)
--- 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<TMSModemSource*> (iSource));
}
gint QTMSModemSource::GetType(QTMSSourceType& sourcetype)
--- 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
--- 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 <qtms.h>
-//#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
--- 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 <qtms.h>
-//#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
--- 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<TMSSpeakerSink*> (iSink));
}
gint QTMSSpeakerSink::GetType(QTMSSinkType& sinktype)
--- 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;
}
--- 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;
--- 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<TMSVolumeEffect*>(iEffect));
}
gint QTMSVolumeEffect::GetLevel(guint& level)
--- 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<TMSVolumeEffect*> (iEffect)->AddObserver(obsrvr,
- NULL);
+ user_data);
}
return ret;
}