Revision: 201019
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 27 May 2010 13:19:19 +0300
changeset 32 edd273b3192a
parent 27 cbb1bfb7ebfb
child 35 2ee890d2f7e7
Revision: 201019 Kit: 2010121
mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp
mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp
mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp
mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp
mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp
mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp
mmappcomponents/harvester/server/group/mpxharvester.mmp
mmappcomponents/harvester/server/inc/mpxconnectioneventhandler.h
mmappcomponents/harvester/server/inc/mpxharvesterengine.h
mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp
mmappcomponents/harvester/server/src/mpxharvesterengine.cpp
mmappcomponents/harvester/server/src/mpxharvesterserver.cpp
mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp
mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h
mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h
mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpperflog.inl
mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh
mmappcomponents/mmmtpdataprovider/inc/mmmtpdpfiledefs.h
mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h
mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg
mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg
mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderdescriptionutility.h
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderenumerator.h
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderdescriptionutility.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csendobject.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp
mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp
mmappcomponents/playbackhelper/group/playbackhelper.mmp
mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h
mmappfw_plat/harvester_metadata_extractor_api/inc/mpxmetadataextractor.h
mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.h
mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h
mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h
mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h
mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp
mpx/commonframework/common/src/mpxpluginmonitor.cpp
mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h
mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl
mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp
mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp
mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp
qtms/SIS/QTMS_udeb_STUB_SIS.bat
qtms/SIS/qtms.pkg
qtms/bwins/qtmsu.def
qtms/eabi/qtmsu.def
qtms/inc/qtmsfactoryimpl.h
qtms/inc/qtmsgaineffectimpl.h
qtms/inc/qtmsmembuffer.h
qtms/inc/qtmsstreamimpl.h
qtms/inc/qtmsvolumeeffectimpl.h
qtms/inc/tmsutility.h
qtms/qtmsapi.pro
qtms/rom/qtms.iby
qtms/src/qtmsamrimpl.cpp
qtms/src/qtmsbufferimpl.cpp
qtms/src/qtmscall.cpp
qtms/src/qtmsclientsink.cpp
qtms/src/qtmsdtmfimpl.cpp
qtms/src/qtmsfactoryimpl.cpp
qtms/src/qtmsg711impl.cpp
qtms/src/qtmsgaineffectimpl.cpp
qtms/src/qtmsilbc.cpp
qtms/src/qtmsipcallbodyimpl.cpp
qtms/src/qtmsmembuffer.cpp
qtms/src/qtmspcm.cpp
qtms/src/qtmssinkimpl.cpp
qtms/src/qtmssourceimpl.cpp
qtms/src/qtmsstreamimpl.cpp
qtms/src/qtmsvolumeeffectimpl.cpp
--- a/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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/src/mpxharvesterdbmanager.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp	Thu May 27 13:19:19 2010 +0300
@@ -211,6 +211,7 @@
     TInt index = FindDatabaseIndex ( aDrive );
     if ( index == KErrNotFound )
         {
+        index = iDatabases.Count();
         db = CMPXHarvesterDB::NewL( aDrive, iFs );
         CleanupStack::PushL( db );
         iDatabases.AppendL( db );
@@ -407,8 +408,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
         //
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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.3 % << 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"
@@ -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);
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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.3 % << 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);
@@ -875,14 +816,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 +984,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 +1021,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 +1056,7 @@
         if ( iObs && !iCancelled )
             {
             iObs->HandleCreateMediaComplete( iMedia, error );
+            iMedia = NULL;  // ownership transferred.
             }
         
         CleanUp();
@@ -1124,3 +1074,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/server/group/mpxharvester.mmp	Thu May 27 13:19:19 2010 +0300
@@ -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 May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/server/inc/mpxharvesterengine.h	Thu May 27 13:19:19 2010 +0300
@@ -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 May 27 13:19:19 2010 +0300
@@ -0,0 +1,315 @@
+/*
+* 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;
+    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);
+    
+    RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d"), usbStatus, mtpStatus);
+    RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d"), iState);
+    RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)"), iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured);
+    
+    // events from lower level is not causing multiple callback on the same type
+    // usb is really only connected if went through Address or Configured state
+    if( (usbStatus == KUsbPersonalityIdMS) && (iDeviceState == EUsbDeviceStateAddress || iDeviceState == EUsbDeviceStateConfigured))
+        {
+        if ((iState == EMPXConnectionMTPIdle) || (iState == EMPXConnectionMTPActive))
+            {
+            MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End");
+            RDebug::Print(_L("tpoon: 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");
+            RDebug::Print(_L("tpoon: MS End"));
+            iObserver.HandleSystemEventL( EUSBMassStorageEndEvent, -1 );
+            iState = EMPXConnectionNone;
+            }
+        }
+    
+    // after MassStorage End, it is possible that MTP is still connected
+    if (iState != EMPXConnectionMassStorage)
+        {
+        if ((mtpStatus == EMtpPSStatusUninitialized) && (iState != EMPXConnectionNone))
+            {
+            MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End");
+            RDebug::Print(_L("tpoon: 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();
+            }
+        }
+    }
+
+void CMPXConnectionEventHandler::DoMSStartEventL()
+    {
+    MPX_DEBUG1("CMPXConnectionEventHandler::DoMSStartEventL - USB MassStorage Start");
+    RDebug::Print(_L("tpoon: MS Start"));
+    iObserver.HandleSystemEventL( EUSBMassStorageStartEvent, -1 );
+    iState = EMPXConnectionMassStorage;
+    }
+
+void CMPXConnectionEventHandler::DoMTPStartEventL()
+    {
+    MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPStartEventL - MTP Start");
+    RDebug::Print(_L("tpoon: MTP Start"));
+    iObserver.HandleSystemEventL( EUSBMTPStartEvent, -1 );
+    iState = EMPXConnectionMTPActive;
+    }
+
+void CMPXConnectionEventHandler::DoMTPNotActiveEventL()
+    {
+    MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPNotActiveEventL - MTP Not Active");
+    RDebug::Print(_L("tpoon: 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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxharvesterserver.cpp	Thu May 27 13:19:19 2010 +0300
@@ -119,7 +119,7 @@
     {
     iEngine = CMPXHarvesterEngine::NewL();
     StartL(KMPXHarvesterServerName);
-    RProcess().SetPriority(::EPriorityLow);
+    RProcess().SetPriority(::EPriorityBackground);
     }
     
 // ----------------------------------------------------------------------------
--- a/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mediaplayersettingsengine/group/MPSettEng.mmp	Thu May 27 13:19:19 2010 +0300
@@ -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(ARMCC)
-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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h	Thu May 27 13:19:19 2010 +0300
@@ -165,9 +165,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 +230,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/cmmmtpdpperflog.inl	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpperflog.inl	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdpfiledefs.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h	Thu May 27 13:19:19 2010 +0300
@@ -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
@@ -128,12 +126,8 @@
     /** Provides Callback mechanism for completion of enumeration*/
     CAbstractMediaMtpDataProvider& iDataProvider;
 
-    TParse iPath;
-    TEntryArray iEntries;
-    TInt iFirstUnprocessed;
     RArray<TUint> iStorages;
     TUint32 iStorageId;
-    TUint32 iParentHandle;
 
     CMPXMediaArray* iAbstractMedias;
     TInt iCount;
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp	Thu May 27 13:19:19 2010 +0300
@@ -25,13 +25,11 @@
 #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;
@@ -82,7 +80,7 @@
     iAbstractMedias( NULL ),
     iCount( 0 ),
     iCurrentIndex( 0 ),
-    iEnumState ( EEnumPlaylist )
+    iEnumState ( EEnumNone )
     {
     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" ) );
@@ -269,42 +263,41 @@
 //
 void CAbstractMediaMtpDataProviderEnumerator::ScanNextL()
     {
-    while ( iStorages.Count() > 0 )
+    PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::ScanNextL" ) );
+
+    if ( iCurrentIndex >= iCount )
         {
-        while ( iEnumState < EEnumCount )
+        iEnumState++;
+        }
+
+    if ( iEnumState >= EEnumCount )
+        {
+        iEnumState = EEnumPlaylist;
+        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 +307,56 @@
 //
 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
+        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 )
+            {
+            // 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 );
+            }
+        else // EEnumPlaylist
+            {
+            // Add an object to the object store for DB based playlist
+            AddEntryL( *abstractMedia );
+            }
+
+        if ( ret )
+            {
+            PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunL abstractMedia=%S" ), abstractMedia );
+
+            // find all reference of each abstract media
+            CDesCArray* references = new ( ELeave ) CDesCArrayFlat( KMTPDriveGranularity );
+            CleanupStack::PushL( references ); // + references
+
+            PERFLOGSTART( KMpxQueryAbstractMediaReference );
+            iDataProvider.GetWrapperL().GetAllReferenceL( media, *references );
+            PERFLOGSTOP( KMpxQueryAbstractMediaReference );
+
+            // insert references into reference db
+            AddReferencesL( *abstractMedia, *references );
+
+            CleanupStack::PopAndDestroy( references ); // - references
+            }
+        CleanupStack::PopAndDestroy( abstractMedia ); // - abstractMedia
         }
 
-    if ( ret )
-        {
-        PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunL abstractMedia=%S" ), abstractMedia );
-        AddEntryL( *abstractMedia );
-
-        // find all reference of each abstract media
-        CDesCArray* references = new ( ELeave ) CDesCArrayFlat( KMTPDriveGranularity );
-        CleanupStack::PushL( references ); // + references
-    
-        PERFLOGSTART( KMpxQueryAbstractMediaReference );
-        iDataProvider.GetWrapperL().GetAllReferenceL( media, *references );
-        PERFLOGSTOP( KMpxQueryAbstractMediaReference );
-    
-        // insert references into reference db
-        AddReferencesL( *abstractMedia, *references );
-    
-        CleanupStack::PopAndDestroy( references ); // - references
-        }     
-    CleanupStack::PopAndDestroy( abstractMedia ); // - abstractMedia
-
     ScanNextL();
+    PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::RunL" ) );
     }
 
 // -----------------------------------------------------------------------------
@@ -363,6 +369,7 @@
     if ( aError != KErrNone )
         PRINT1( _L( "MM MTP <> CAbstractMediaMtpDataProviderEnumerator::RunError with error %d" ), aError );
 
+    TRAP_IGNORE( SignalCompleteL( iDataProvider ) );
     return KErrNone;
     }
 
@@ -427,24 +434,34 @@
 
     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" ) );
     }
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderdescriptionutility.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderdescriptionutility.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/cmediamtpdataproviderenumerator.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h	Thu May 27 13:19:19 2010 +0300
@@ -46,10 +46,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 +59,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderdescriptionutility.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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;
     }
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataproviderenumerator.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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] ) );
+        const TDesC& 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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def	Thu May 27 13:19:19 2010 +0300
@@ -5,59 +5,59 @@
 	?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 &)
-	?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 13 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
-	?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 14 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 16 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
-	?RunL@CRequestProcessor@@MAEXXZ @ 17 NONAME ; void CRequestProcessor::RunL(void)
-	?ServiceL@CDeleteObject@@MAEXXZ @ 18 NONAME ; void CDeleteObject::ServiceL(void)
-	?DoCancel@CSetObjectPropList@@MAEXXZ @ 19 NONAME ; void CSetObjectPropList::DoCancel(void)
-	?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 20 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
-	?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 21 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
-	?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 22 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 23 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
-	?UsbDisconnect@CSendObject@@MAEXXZ @ 24 NONAME ; void CSendObject::UsbDisconnect(void)
-	?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 25 NONAME ; void CGetFormatCapabilities::ServiceL(void)
-	?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
-	?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)
+	?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)
+	??0CGetObjectInfo@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 13 NONAME ; CGetObjectInfo::CGetObjectInfo(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 14 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
+	?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 16 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 17 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
+	?RunL@CRequestProcessor@@MAEXXZ @ 18 NONAME ; void CRequestProcessor::RunL(void)
+	?ServiceL@CDeleteObject@@MAEXXZ @ 19 NONAME ; void CDeleteObject::ServiceL(void)
+	?DoCancel@CSetObjectPropList@@MAEXXZ @ 20 NONAME ; void CSetObjectPropList::DoCancel(void)
+	?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 21 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
+	?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 22 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
+	?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 23 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 24 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
+	?UsbDisconnect@CSendObject@@MAEXXZ @ 25 NONAME ; void CSendObject::UsbDisconnect(void)
+	?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 26 NONAME ; void CGetFormatCapabilities::ServiceL(void)
+	?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXPAVCMPXMedia@@AAVCDesC16Array@@@Z @ 27 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMPXMedia *, class CDesC16Array &)
+	??1CSetObjectPropList@@UAE@XZ @ 28 NONAME ; CSetObjectPropList::~CSetObjectPropList(void)
+	?ServiceL@CSetObjectPropList@@MAEXXZ @ 29 NONAME ; void CSetObjectPropList::ServiceL(void)
+	??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 30 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??0CRequestUnknown@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 31 NONAME ; CRequestUnknown::CRequestUnknown(class MMTPDataProviderFramework &, class MMTPConnection &)
+	?ConstructL@CGetObjectPropList@@IAEXXZ @ 32 NONAME ; void CGetObjectPropList::ConstructL(void)
+	??1CSendObject@@UAE@XZ @ 33 NONAME ; CSendObject::~CSendObject(void)
+	?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 34 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 35 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CGetObjectPropValue@@UAE@XZ @ 36 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void)
+	?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 37 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &)
+	??1CGetFormatCapabilities@@UAE@XZ @ 38 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void)
+	?ServiceL@CSetObjectReferences@@EAEXXZ @ 39 NONAME ; void CSetObjectReferences::ServiceL(void)
+	?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 40 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void)
+	??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 41 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?ConstructL@CCopyObject@@IAEXXZ @ 42 NONAME ; void CCopyObject::ConstructL(void)
+	?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 43 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?ServiceL@CGetObjectPropValue@@MAEXXZ @ 44 NONAME ; void CGetObjectPropValue::ServiceL(void)
+	??1CRenameObject@@UAE@XZ @ 45 NONAME ; CRenameObject::~CRenameObject(void)
+	?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 46 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const
+	?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 47 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void)
+	?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 48 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &)
+	?RunL@CRenameObject@@MAEXXZ @ 49 NONAME ; void CRenameObject::RunL(void)
+	??0CSetObjectReferences@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 50 NONAME ; CSetObjectReferences::CSetObjectReferences(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 51 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *)
+	?ServiceL@CSendObject@@MAEXXZ @ 52 NONAME ; void CSendObject::ServiceL(void)
+	?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 53 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const
+	?DoCancel@CRequestProcessor@@MAEXXZ @ 54 NONAME ; void CRequestProcessor::DoCancel(void)
+	?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 55 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
+	?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 56 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
+	??0CGetFormatCapabilities@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 57 NONAME ; CGetFormatCapabilities::CGetFormatCapabilities(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?ConstructL@CGetObjectInfo@@AAEXXZ @ 58 NONAME ; void CGetObjectInfo::ConstructL(void)
+	?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 59 NONAME ; void CRequestProcessor::UsbDisconnect(void)
 	??1CMoveObject@@UAE@XZ @ 60 NONAME ; CMoveObject::~CMoveObject(void)
 	?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 61 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
 	??1CRequestProcessor@@MAE@XZ @ 62 NONAME ; CRequestProcessor::~CRequestProcessor(void)
@@ -157,4 +157,7 @@
 	??1CGetObjectPropList@@UAE@XZ @ 156 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
 	?ServiceL@CGetObjectPropList@@MAEXXZ @ 157 NONAME ; void CGetObjectPropList::ServiceL(void)
 	??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 158 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+	?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 159 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void)
+	?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 160 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus)
+	?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 161 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void)
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def	Thu May 27 13:19:19 2010 +0300
@@ -47,233 +47,236 @@
 	_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
+	_ZN15CRequestUnknownC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 54 NONAME
+	_ZN15CRequestUnknownC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 55 NONAME
+	_ZN15CRequestUnknownD0Ev @ 56 NONAME
+	_ZN15CRequestUnknownD1Ev @ 57 NONAME
+	_ZN15CRequestUnknownD2Ev @ 58 NONAME
+	_ZN17CGetPartialObject13CheckRequestLEv @ 59 NONAME
+	_ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 60 NONAME
+	_ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 61 NONAME
+	_ZN17CGetPartialObject8ServiceLEv @ 62 NONAME
+	_ZN17CGetPartialObjectC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 63 NONAME
+	_ZN17CGetPartialObjectC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 64 NONAME
+	_ZN17CGetPartialObjectD0Ev @ 65 NONAME
+	_ZN17CGetPartialObjectD1Ev @ 66 NONAME
+	_ZN17CGetPartialObjectD2Ev @ 67 NONAME
+	_ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 68 NONAME
+	_ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 69 NONAME
+	_ZN17CRequestProcessor13CheckRequestLEv @ 70 NONAME
+	_ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 71 NONAME
+	_ZN17CRequestProcessor13UsbDisconnectEv @ 72 NONAME
+	_ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 73 NONAME
+	_ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 74 NONAME
+	_ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 75 NONAME
+	_ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 76 NONAME
+	_ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 77 NONAME
+	_ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 78 NONAME
+	_ZN17CRequestProcessor4RunLEv @ 79 NONAME
+	_ZN17CRequestProcessor7ReleaseEv @ 80 NONAME
+	_ZN17CRequestProcessor8DoCancelEv @ 81 NONAME
+	_ZN17CRequestProcessor8RunErrorEi @ 82 NONAME
+	_ZN17CRequestProcessor9SendDataLERK8MMTPType @ 83 NONAME
+	_ZN17CRequestProcessor9SessionIdEv @ 84 NONAME
+	_ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 85 NONAME
+	_ZN17CRequestProcessorD0Ev @ 86 NONAME
+	_ZN17CRequestProcessorD1Ev @ 87 NONAME
+	_ZN17CRequestProcessorD2Ev @ 88 NONAME
+	_ZN18CGetObjectPropDesc10ConstructLEv @ 89 NONAME
+	_ZN18CGetObjectPropDesc13CheckRequestLEv @ 90 NONAME
+	_ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 91 NONAME
+	_ZN18CGetObjectPropDesc8ServiceLEv @ 92 NONAME
+	_ZN18CGetObjectPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 93 NONAME
+	_ZN18CGetObjectPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 94 NONAME
+	_ZN18CGetObjectPropDescD0Ev @ 95 NONAME
+	_ZN18CGetObjectPropDescD1Ev @ 96 NONAME
+	_ZN18CGetObjectPropDescD2Ev @ 97 NONAME
+	_ZN18CGetObjectPropList10ConstructLEv @ 98 NONAME
+	_ZN18CGetObjectPropList13CheckRequestLEv @ 99 NONAME
+	_ZN18CGetObjectPropList4RunLEv @ 100 NONAME
+	_ZN18CGetObjectPropList8DoCancelEv @ 101 NONAME
+	_ZN18CGetObjectPropList8RunErrorEi @ 102 NONAME
+	_ZN18CGetObjectPropList8ServiceLEv @ 103 NONAME
+	_ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 104 NONAME
+	_ZN18CGetObjectPropListD0Ev @ 105 NONAME
+	_ZN18CGetObjectPropListD1Ev @ 106 NONAME
+	_ZN18CGetObjectPropListD2Ev @ 107 NONAME
+	_ZN18CSetObjectPropList13CheckRequestLEv @ 108 NONAME
+	_ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 109 NONAME
+	_ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 110 NONAME
+	_ZN18CSetObjectPropList4RunLEv @ 111 NONAME
+	_ZN18CSetObjectPropList8DoCancelEv @ 112 NONAME
+	_ZN18CSetObjectPropList8RunErrorEi @ 113 NONAME
+	_ZN18CSetObjectPropList8ServiceLEv @ 114 NONAME
+	_ZN18CSetObjectPropListD0Ev @ 115 NONAME
+	_ZN18CSetObjectPropListD1Ev @ 116 NONAME
+	_ZN18CSetObjectPropListD2Ev @ 117 NONAME
+	_ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 118 NONAME
+	_ZN19CDescriptionUtilityC2Ev @ 119 NONAME
+	_ZN19CDescriptionUtilityD0Ev @ 120 NONAME
+	_ZN19CDescriptionUtilityD1Ev @ 121 NONAME
+	_ZN19CDescriptionUtilityD2Ev @ 122 NONAME
+	_ZN19CGetObjectPropValue13CheckRequestLEv @ 123 NONAME
+	_ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 124 NONAME
+	_ZN19CGetObjectPropValue8ServiceLEv @ 125 NONAME
+	_ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 126 NONAME
+	_ZN19CGetObjectPropValueD0Ev @ 127 NONAME
+	_ZN19CGetObjectPropValueD1Ev @ 128 NONAME
+	_ZN19CGetObjectPropValueD2Ev @ 129 NONAME
+	_ZN19CSetObjectPropValue13CheckRequestLEv @ 130 NONAME
+	_ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 131 NONAME
+	_ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 132 NONAME
+	_ZN19CSetObjectPropValue8ServiceLEv @ 133 NONAME
+	_ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 134 NONAME
+	_ZN19CSetObjectPropValueD0Ev @ 135 NONAME
+	_ZN19CSetObjectPropValueD1Ev @ 136 NONAME
+	_ZN19CSetObjectPropValueD2Ev @ 137 NONAME
+	_ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 138 NONAME
+	_ZN20CGetObjectReferencesD0Ev @ 139 NONAME
+	_ZN20CGetObjectReferencesD1Ev @ 140 NONAME
+	_ZN20CGetObjectReferencesD2Ev @ 141 NONAME
+	_ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 142 NONAME
+	_ZN20CSetObjectReferences22DoSetObjectReferencesLERK18CMTPObjectMetaData @ 143 NONAME
+	_ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 144 NONAME
+	_ZN20CSetObjectReferences8ServiceLEv @ 145 NONAME
+	_ZN20CSetObjectReferencesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 146 NONAME
+	_ZN20CSetObjectReferencesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 147 NONAME
+	_ZN20CSetObjectReferencesD0Ev @ 148 NONAME
+	_ZN20CSetObjectReferencesD1Ev @ 149 NONAME
+	_ZN20CSetObjectReferencesD2Ev @ 150 NONAME
+	_ZN22CGetFormatCapabilities10ConstructLEv @ 151 NONAME
+	_ZN22CGetFormatCapabilities13CheckRequestLEv @ 152 NONAME
+	_ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 153 NONAME
+	_ZN22CGetFormatCapabilities8ServiceLEv @ 154 NONAME
+	_ZN22CGetFormatCapabilitiesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 155 NONAME
+	_ZN22CGetFormatCapabilitiesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 156 NONAME
+	_ZN22CGetFormatCapabilitiesD0Ev @ 157 NONAME
+	_ZN22CGetFormatCapabilitiesD1Ev @ 158 NONAME
+	_ZN22CGetFormatCapabilitiesD2Ev @ 159 NONAME
+	_ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 160 NONAME
+	_ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 161 NONAME
+	_ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 162 NONAME
+	_ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 163 NONAME
+	_ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 164 NONAME
+	_ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 165 NONAME
+	_ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 166 NONAME
+	_ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 167 NONAME
+	_ZN23CPropertySettingUtilityC2Ev @ 168 NONAME
+	_ZN23CPropertySettingUtilityD0Ev @ 169 NONAME
+	_ZN23CPropertySettingUtilityD1Ev @ 170 NONAME
+	_ZN23CPropertySettingUtilityD2Ev @ 171 NONAME
+	_ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 172 NONAME
+	_ZN24CGetObjectPropsSupported8ServiceLEv @ 173 NONAME
+	_ZN24CGetObjectPropsSupportedD0Ev @ 174 NONAME
+	_ZN24CGetObjectPropsSupportedD1Ev @ 175 NONAME
+	_ZN24CGetObjectPropsSupportedD2Ev @ 176 NONAME
+	_ZN26CGetInterdependentPropDesc10ConstructLEv @ 177 NONAME
+	_ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 178 NONAME
+	_ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 179 NONAME
+	_ZN26CGetInterdependentPropDesc8ServiceLEv @ 180 NONAME
+	_ZN26CGetInterdependentPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 181 NONAME
+	_ZN26CGetInterdependentPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 182 NONAME
+	_ZN26CGetInterdependentPropDescD0Ev @ 183 NONAME
+	_ZN26CGetInterdependentPropDescD1Ev @ 184 NONAME
+	_ZN26CGetInterdependentPropDescD2Ev @ 185 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 186 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 187 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 188 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 189 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 190 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 191 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 192 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 193 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 194 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 195 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 196 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 197 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 198 NONAME
+	_ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 199 NONAME
+	_ZNK11CSendObject12HasDataphaseEv @ 200 NONAME
+	_ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 201 NONAME
+	_ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 202 NONAME
+	_ZNK17CRequestProcessor10ConnectionEv @ 203 NONAME
+	_ZNK17CRequestProcessor12HasDataphaseEv @ 204 NONAME
+	_ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 205 NONAME
+	_ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 206 NONAME
+	_ZNK17CRequestProcessor7RequestEv @ 207 NONAME
+	_ZNK18CSetObjectPropList12HasDataphaseEv @ 208 NONAME
+	_ZNK19CSetObjectPropValue12HasDataphaseEv @ 209 NONAME
+	_ZNK20CSetObjectReferences12HasDataphaseEv @ 210 NONAME
+	_ZTI10CGetObject @ 211 NONAME
+	_ZTI11CCopyObject @ 212 NONAME
+	_ZTI11CMoveObject @ 213 NONAME
+	_ZTI11CSendObject @ 214 NONAME
+	_ZTI13CDeleteObject @ 215 NONAME
+	_ZTI13CRenameObject @ 216 NONAME
+	_ZTI14CGetObjectInfo @ 217 NONAME
+	_ZTI15CRequestChecker @ 218 NONAME
+	_ZTI15CRequestUnknown @ 219 NONAME
+	_ZTI15TMTPTypeFlatBuf @ 220 NONAME
+	_ZTI17CGetPartialObject @ 221 NONAME
+	_ZTI17CRequestProcessor @ 222 NONAME
+	_ZTI18CGetObjectPropDesc @ 223 NONAME
+	_ZTI18CGetObjectPropList @ 224 NONAME
+	_ZTI18CHXMetaDataUtility @ 225 NONAME
+	_ZTI18CSetObjectPropList @ 226 NONAME
+	_ZTI19CDescriptionUtility @ 227 NONAME
+	_ZTI19CGetObjectPropValue @ 228 NONAME
+	_ZTI19CSetObjectPropValue @ 229 NONAME
+	_ZTI20CGetObjectReferences @ 230 NONAME
+	_ZTI20CSetObjectReferences @ 231 NONAME
+	_ZTI22CGetFormatCapabilities @ 232 NONAME
+	_ZTI23CMmMtpDpAccessSingleton @ 233 NONAME
+	_ZTI23CPropertySettingUtility @ 234 NONAME
+	_ZTI24CGetObjectPropsSupported @ 235 NONAME
+	_ZTI25CMmMtpDpMetadataMpxAccess @ 236 NONAME
+	_ZTI26CGetInterdependentPropDesc @ 237 NONAME
+	_ZTI27CMmMtpDpMetadataVideoAccess @ 238 NONAME
+	_ZTI29CMmMtpDpMetadataAccessWrapper @ 239 NONAME
+	_ZTV10CGetObject @ 240 NONAME
+	_ZTV11CCopyObject @ 241 NONAME
+	_ZTV11CMoveObject @ 242 NONAME
+	_ZTV11CSendObject @ 243 NONAME
+	_ZTV13CDeleteObject @ 244 NONAME
+	_ZTV13CRenameObject @ 245 NONAME
+	_ZTV14CGetObjectInfo @ 246 NONAME
+	_ZTV15CRequestChecker @ 247 NONAME
+	_ZTV15CRequestUnknown @ 248 NONAME
+	_ZTV15TMTPTypeFlatBuf @ 249 NONAME
+	_ZTV17CGetPartialObject @ 250 NONAME
+	_ZTV17CRequestProcessor @ 251 NONAME
+	_ZTV18CGetObjectPropDesc @ 252 NONAME
+	_ZTV18CGetObjectPropList @ 253 NONAME
+	_ZTV18CHXMetaDataUtility @ 254 NONAME
+	_ZTV18CSetObjectPropList @ 255 NONAME
+	_ZTV19CDescriptionUtility @ 256 NONAME
+	_ZTV19CGetObjectPropValue @ 257 NONAME
+	_ZTV19CSetObjectPropValue @ 258 NONAME
+	_ZTV20CGetObjectReferences @ 259 NONAME
+	_ZTV20CSetObjectReferences @ 260 NONAME
+	_ZTV22CGetFormatCapabilities @ 261 NONAME
+	_ZTV23CMmMtpDpAccessSingleton @ 262 NONAME
+	_ZTV23CPropertySettingUtility @ 263 NONAME
+	_ZTV24CGetObjectPropsSupported @ 264 NONAME
+	_ZTV25CMmMtpDpMetadataMpxAccess @ 265 NONAME
+	_ZTV26CGetInterdependentPropDesc @ 266 NONAME
+	_ZTV27CMmMtpDpMetadataVideoAccess @ 267 NONAME
+	_ZTV29CMmMtpDpMetadataAccessWrapper @ 268 NONAME
+	_ZThn28_N11CSendObject13UsbDisconnectEv @ 269 NONAME
+	_ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 270 NONAME
+	_ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 271 NONAME
+	_ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 272 NONAME
+	_ZThn28_N17CRequestProcessor7ReleaseEv @ 273 NONAME
+	_ZThn28_N17CRequestProcessor9SessionIdEv @ 274 NONAME
+	_ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 275 NONAME
+	_ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME
+	_ZThn28_NK17CRequestProcessor10ConnectionEv @ 277 NONAME
+	_ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 278 NONAME
+	_ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 279 NONAME
+	_ZThn28_NK17CRequestProcessor7RequestEv @ 280 NONAME
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h	Thu May 27 13:19:19 2010 +0300
@@ -311,7 +311,6 @@
     /**
     * Set P&S Status to avoid MPX access conflict
     */
-    void SetPSStatus();
 
 private:
     /**
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csendobject.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/csendobject.h	Thu May 27 13:19:19 2010 +0300
@@ -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/src/ccopyobject.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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" ) );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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 );
@@ -224,8 +225,6 @@
     TFileName 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/cgetobject.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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/cgetobjectproplist.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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 ) );
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp	Thu May 27 13:19:19 2010 +0300
@@ -70,7 +70,6 @@
         KMTPGetObjectPropValuePolicy ),
     iDpConfig( aDpConfig )
     {
-    SetPSStatus();
     PRINT( _L( "Operation: GetObjectPropValue(0x9803)" ) );
     }
 
@@ -130,6 +129,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 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp	Thu May 27 13:19:19 2010 +0300
@@ -24,6 +24,7 @@
 #endif
 
 #include "cgetobjectreferences.h"
+#include "mmmtpdputility.h"
 #include "mmmtpdplogger.h"
 
 // -----------------------------------------------------------------------------
@@ -67,7 +68,6 @@
 //
 void CGetObjectReferences::ConstructL()
     {
-    SetPSStatus();
     }
 
 // -----------------------------------------------------------------------------
@@ -103,6 +103,8 @@
 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" ),
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -19,6 +19,7 @@
 #include <mtp/cmtptypefile.h>
 
 #include "cgetpartialobject.h"
+#include "mmmtpdputility.h"
 #include "mmmtpdplogger.h"
 #include "tmmmtpdppanic.h"
 #include "mmmtpdpconfig.h"
@@ -80,7 +81,6 @@
 //
 void CGetPartialObject::ConstructL()
     {
-    SetPSStatus();
     }
 
 // -----------------------------------------------------------------------------
@@ -147,6 +147,8 @@
 EXPORT_C void CGetPartialObject::ServiceL()
     {
     PRINT( _L( "MM MTP => CGetPartialObject::ServiceL" ) );
+    
+    MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
 
     // Get file information
     CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( iObjectHandle );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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" ) );
@@ -515,7 +512,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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;
@@ -214,6 +213,7 @@
             break;
 
         case ECompletingPhase:
+            MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync);
             result = DoHandleCompletingPhaseL();
             break;
 
@@ -427,23 +427,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/csendobject.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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,7 @@
 
     PRINT1( _L( "MM MTP <> CSendObject::ConstructL DataProviderId = 0x%x" ), iFramework.DataProviderId());
 
-    iNoRollback = EFalse;
-
-    SetPSStatus();
+  
     PRINT( _L( "MM MTP <= CSendObject::ConstructL" ) );
     }
 
@@ -300,11 +297,6 @@
                 {
                 responseCode = EMTPRespCodeObjectTooLarge;
                 }
-
-            if ( ( responseCode != EMTPRespCodeOK ) && !CanStoreFileL( iStorageId, iObjectSize ) )
-                {
-                responseCode = EMTPRespCodeStoreFull;
-                }
             }
         }
 
@@ -332,6 +324,8 @@
 EXPORT_C void CSendObject::ServiceL()
     {
     PRINT( _L( "MM MTP => CSendObject::ServiceL" ) );
+    
+    MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
 
     if ( iProgress == EObjectNone )
         {
@@ -392,22 +386,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 +458,7 @@
     if ( IsTooLarge( iObjectSize ) )
         {
         SendResponseL( EMTPRespCodeObjectTooLarge );
-        result = EFalse;
-        }
-
-    if ( result && !CanStoreFileL( iStorageId, iObjectSize ) )
-        {
-        SendResponseL( EMTPRespCodeStoreFull );
+        Rollback();
         result = EFalse;
         }
 
@@ -496,6 +470,7 @@
             && iProtectionStatus != EMTPProtectionReadOnly )
             {
             SendResponseL( EMTPRespCodeParameterNotSupported );
+            Rollback();
             result = EFalse;
             }
         }
@@ -507,6 +482,7 @@
             {
             // File and/or parent pathname invalid.
             SendResponseL( EMTPRespCodeInvalidDataset );
+            Rollback();
             }
         }
 
@@ -514,16 +490,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 +521,7 @@
 
     TInt invalidParameterIndex = KErrNotFound;
     responseCode = VerifyObjectPropListL( invalidParameterIndex );
+    TInt err = KErrNone;
 
     if ( responseCode != EMTPRespCodeOK )
         {
@@ -551,18 +531,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 +556,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 +637,9 @@
         result = EFalse;
         }
 
+    if ( result )
+        iRollbackList.Reset();
+
     PRINT2( _L( "MM MTP <= CSendObject::DoHandleCompletingPhaseL iProgress= %d, result = %d" ),
         iProgress,
         result );
@@ -1042,31 +1021,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
@@ -1171,7 +1125,7 @@
 // CSendObject::ReserveObjectL
 // -----------------------------------------------------------------------------
 //
-void CSendObject::ReserveObjectL()
+TInt CSendObject::ReserveObjectL()
     {
     PRINT( _L( "MM MTP => CSendObject::ReserveObjectL" ) );
     TInt err = KErrNone;
@@ -1187,15 +1141,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 +1184,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 +1238,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 +1258,24 @@
     {
     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
 
     // 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 +1292,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 +1319,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp	Thu May 27 13:19:19 2010 +0300
@@ -74,7 +74,6 @@
     iDpConfig( aDpConfig ),
     iFs( aFramework.Fs() )
     {
-    SetPSStatus();
     PRINT( _L( "Operation: SetObjectPropValue(0x9804)" ) );
     }
 
@@ -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 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp	Thu May 27 13:19:19 2010 +0300
@@ -70,7 +70,6 @@
 //
 void CSetObjectReferences::ConstructL()
     {
-    SetPSStatus();
     }
 
 // -----------------------------------------------------------------------------
@@ -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 );
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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
@@ -583,8 +583,6 @@
 //
 TBool CMmMtpDpMetadataAccessWrapper::IsExistL( const TDesC& aSuid )
     {
-    TParsePtrC parse( aSuid );
-    iMmMtpDpMetadataMpxAccess->SetStorageRootL( parse.Drive() );
     return iMmMtpDpMetadataMpxAccess->IsExistL( aSuid );
     }
 
@@ -627,26 +625,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 +679,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 +687,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 +696,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp	Thu May 27 13:19:19 2010 +0300
@@ -398,7 +398,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
@@ -941,7 +944,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
@@ -1173,7 +1178,7 @@
         TParsePtrC parse( aRefFileArray[j] );
         media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
         media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse );
-  
+
         // Add media into array contents
         abstractMediaArray->AppendL( media );
 
@@ -1583,7 +1588,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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
@@ -701,4 +704,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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/playbackhelper/group/playbackhelper.mmp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mmappcomponents/videoplaylistutility/inc/videoplaylistutility_log.h	Thu May 27 13:19:19 2010 +0300
@@ -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/harvester_metadata_extractor_api/inc/mpxmetadataextractor.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappfw_plat/harvester_metadata_extractor_api/inc/mpxmetadataextractor.h	Thu May 27 13:19:19 2010 +0300
@@ -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/qt_telephony_multimedia_service_api/inc/qtms.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtms.h	Thu May 27 13:19:19 2010 +0300
@@ -24,6 +24,7 @@
 
 namespace QTMS {
 
+// FORWARD DECLARATION
 class QTMSFormat;
 
 // Result codes
--- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsbuffer.h	Thu May 27 13:19:19 2010 +0300
@@ -47,7 +47,7 @@
      *      QTMS_RESULT_SUCCESS if the operation was successful.
      *
      */
-    virtual gint GetType(QTMSBufferType& buftype)=0;
+    virtual gint GetType(QTMSBufferType& buftype) = 0;
 
     /**
      * Returns time stamp of the buffer so that the framework can determine
@@ -61,7 +61,7 @@
      *      QTMS_RESULT_SUCCESS if the operation was successful.
      *
      */
-    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
@@ -75,7 +75,7 @@
      *      QTMS_RESULT_SUCCESS if the operation was successful.
      *
      */
-    virtual gint SetTimeStamp(const guint64 ts) =0;
+    virtual gint SetTimeStamp(const guint64 ts) = 0;
 
     /**
      * Returns size of data in the buffer.
@@ -87,7 +87,7 @@
      *      QTMS_RESULT_SUCCESS if the operation was successful.
      *
      */
-    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.
@@ -99,7 +99,7 @@
      *      QTMS_RESULT_SUCCESS if the operation was successful.
      *
      */
-    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
@@ -112,7 +112,7 @@
      *      QTMS_RESULT_SUCCESS if the operation was successful.
      *
      */
-    virtual gint GetDataPtr(guint8*& bufptr) =0;
+    virtual gint GetDataPtr(guint8*& bufptr) = 0;
     };
 
 } //namespace QTMS
--- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmseffect.h	Thu May 27 13:19:19 2010 +0300
@@ -34,7 +34,6 @@
  */
 class QTMSEffect
     {
-    //Q_OBJECT
 public:
     /**
      * Return effect type.
--- a/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h	Fri May 14 16:21:14 2010 +0300
+++ b/mmappfw_plat/qt_telephony_multimedia_service_api/inc/qtmsformat.h	Thu May 27 13:19:19 2010 +0300
@@ -125,7 +125,7 @@
     QTMSFormat();
 
 protected:
-    TMS::TMSFormat *iFormat;
+    TMS::TMSFormat* iFormat;
     };
 
 } //namespace QTMS
--- a/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/collectionframework/collectionutility/src/mpxcollectionplaylist.cpp	Thu May 27 13:19:19 2010 +0300
@@ -1256,6 +1256,19 @@
         if( changeType == EMPXItemDeleted )
             {
             refresh = ETrue;
+            MPX_DEBUG1("CMPXCollectionPlaylist::DoHandleCollectionChangeMessageL -- current item deleted");
+            
+            TBool lastItemDeleted( iItemIndex == 0 && iItemIndexes.Count() == 1 );
+            
+            if ( lastItemDeleted ) // playlist is now empty, notify observer immediately
+                {
+                MPX_DEBUG1("CMPXCollectionPlaylist::DoHandleCollectionChangeMessageL -- last playlist item deleted");
+                Invalidate();
+                if ( iPlObs )
+                    {
+                    iPlObs->HandleCollectionPlaylistChange(KErrEof);
+                    }
+                }
             }
         // Modified
         else if( changeType == EMPXItemModified )
@@ -1333,7 +1346,8 @@
             }
         }
 
-    if (iAutoPlaylist && refresh)
+    // update playlist immediately when item is deleted in order to detect deletion of the last item in the playlist
+    if ( refresh && iItemIndexes.Count() > 0 )
         {
         // For autoplaylist, affected by the event.
         // Path clip will never happen for autoplaylist
--- a/mpx/commonframework/common/src/mpxpluginmonitor.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/commonframework/common/src/mpxpluginmonitor.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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/mpxplaybackserversession.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/SIS/QTMS_udeb_STUB_SIS.bat	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/SIS/qtms.pkg	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/bwins/qtmsu.def	Thu May 27 13:19:19 2010 +0300
@@ -17,372 +17,372 @@
 	?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)
-	?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)
-	?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0H@Z @ 27 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *, int)
-	?GetType@QTMSModemSink@QTMS@@UAEHAAH@Z @ 28 NONAME ; int QTMS::QTMSModemSink::GetType(int &)
-	?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *, int)
-	?Stop@QTMSDTMF@QTMS@@QAEHXZ @ 30 NONAME ; int QTMS::QTMSDTMF::Stop(void)
-	?DeleteRingTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSRingTone@2@@Z @ 31 NONAME ; int QTMS::QTMSFactory::DeleteRingTonePlayer(class QTMS::QTMSRingTone * &)
-	?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 32 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *, int)
-	?AddSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 33 NONAME ; int QTMS::QTMSStream::AddSource(class QTMS::QTMSSource *)
-	??1QTMSGlobalVolEffect@QTMS@@UAE@XZ @ 34 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(void)
-	?GetType@QTMSSpeakerSink@QTMS@@UAEHAAH@Z @ 35 NONAME ; int QTMS::QTMSSpeakerSink::GetType(int &)
-	?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)
+	?Deinit@QTMSRingTone@QTMS@@QAEHXZ @ 19 NONAME ; int QTMS::QTMSRingTone::Deinit(void)
+	?qt_metacast@QTMSClientSink@QTMS@@UAEPAXPBD@Z @ 20 NONAME ; void * QTMS::QTMSClientSink::qt_metacast(char const *)
+	?tr@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 21 NONAME ; class QString QTMS::QTMSG729Format::tr(char const *, char const *)
+	??_EQTMSSpeakerSink@QTMS@@UAE@I@Z @ 22 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(unsigned int)
+	?getStaticMetaObject@QTMSInbandTone@QTMS@@SAABUQMetaObject@@XZ @ 23 NONAME ; struct QMetaObject const & QTMS::QTMSInbandTone::getStaticMetaObject(void)
+	??0QTMSGainEffect@QTMS@@IAE@XZ @ 24 NONAME ; QTMS::QTMSGainEffect::QTMSGainEffect(void)
+	?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 25 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *)
+	?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0H@Z @ 26 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *, int)
+	?GetType@QTMSGlobalGainEffect@QTMS@@UAEHAAH@Z @ 27 NONAME ; int QTMS::QTMSGlobalGainEffect::GetType(int &)
+	??1QTMSInbandTone@QTMS@@UAE@XZ @ 28 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(void)
+	?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0H@Z @ 29 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *, int)
+	?GetType@QTMSModemSink@QTMS@@UAEHAAH@Z @ 30 NONAME ; int QTMS::QTMSModemSink::GetType(int &)
+	?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0H@Z @ 31 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *, int)
+	?Stop@QTMSDTMF@QTMS@@QAEHXZ @ 32 NONAME ; int QTMS::QTMSDTMF::Stop(void)
+	?DeleteRingTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSRingTone@2@@Z @ 33 NONAME ; int QTMS::QTMSFactory::DeleteRingTonePlayer(class QTMS::QTMSRingTone * &)
+	?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 34 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *, int)
+	?AddSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 35 NONAME ; int QTMS::QTMSStream::AddSource(class QTMS::QTMSSource *)
+	??1QTMSGlobalVolEffect@QTMS@@UAE@XZ @ 36 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(void)
+	?GetType@QTMSSpeakerSink@QTMS@@UAEHAAH@Z @ 37 NONAME ; int QTMS::QTMSSpeakerSink::GetType(int &)
+	?getStaticMetaObject@QTMSGlobalVolEffect@QTMS@@SAABUQMetaObject@@XZ @ 38 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalVolEffect::getStaticMetaObject(void)
+	??0QTMSModemSource@QTMS@@IAE@XZ @ 39 NONAME ; QTMS::QTMSModemSource::QTMSModemSource(void)
+	?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 40 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *)
+	?Pause@QTMSRingTone@QTMS@@QAEHXZ @ 41 NONAME ; int QTMS::QTMSRingTone::Pause(void)
+	?GetVADMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 42 NONAME ; int QTMS::QTMSILBCFormat::GetVADMode(int &)
+	?qt_metacast@QTMSDTMF@QTMS@@UAEPAXPBD@Z @ 43 NONAME ; void * QTMS::QTMSDTMF::qt_metacast(char const *)
+	?RingtoneEvent@QTMSRingTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 44 NONAME ; void QTMS::QTMSRingTone::RingtoneEvent(class QTMS::QTMSRingTone const &, struct QTMS::QTMSSignalEvent)
+	??_EQTMSCall@QTMS@@UAE@I@Z @ 45 NONAME ; QTMS::QTMSCall::~QTMSCall(unsigned int)
+	?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 46 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *)
+	?staticMetaObject@QTMSRingTone@QTMS@@2UQMetaObject@@B @ 47 NONAME ; struct QMetaObject const QTMS::QTMSRingTone::staticMetaObject
+	?SetMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 48 NONAME ; int QTMS::QTMSILBCFormat::SetMode(int)
+	?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 49 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *, int)
+	?GetVADMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 50 NONAME ; int QTMS::QTMSG711Format::GetVADMode(int &)
+	?staticMetaObject@QTMSDTMF@QTMS@@2UQMetaObject@@B @ 51 NONAME ; struct QMetaObject const QTMS::QTMSDTMF::staticMetaObject
+	??0QTMSMicSource@QTMS@@IAE@XZ @ 52 NONAME ; QTMS::QTMSMicSource::QTMSMicSource(void)
+	?GetPreviousOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 53 NONAME ; int QTMS::QTMSGlobalRouting::GetPreviousOutput(int &)
+	??1QTMSGainEffect@QTMS@@UAE@XZ @ 54 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(void)
+	?trUtf8@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 55 NONAME ; class QString QTMS::QTMSClientSink::trUtf8(char const *, char const *)
+	?EffectsEvent@QTMSGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 56 NONAME ; void QTMS::QTMSGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+	?qt_metacast@QTMSILBCFormat@QTMS@@UAEPAXPBD@Z @ 57 NONAME ; void * QTMS::QTMSILBCFormat::qt_metacast(char const *)
+	?TMSStreamEvent@QTMSStream@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 58 NONAME ; void QTMS::QTMSStream::TMSStreamEvent(class QTMS::QTMSStream const &, struct QTMS::QTMSSignalEvent)
+	?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0@Z @ 59 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *)
+	??1QTMSModemSink@QTMS@@UAE@XZ @ 60 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(void)
+	?metaObject@QTMSVolumeEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 61 NONAME ; struct QMetaObject const * QTMS::QTMSVolumeEffect::metaObject(void) const
+	??_EQTMSClientSink@QTMS@@UAE@I@Z @ 62 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(unsigned int)
+	?qt_metacast@QTMSModemSink@QTMS@@UAEPAXPBD@Z @ 63 NONAME ; void * QTMS::QTMSModemSink::qt_metacast(char const *)
+	??1QTMSClientSource@QTMS@@UAE@XZ @ 64 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(void)
+	?qt_metacall@QTMSGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 65 NONAME ; int QTMS::QTMSGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?CreateSource@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSource@2@@Z @ 66 NONAME ; int QTMS::QTMSFactory::CreateSource(int, class QTMS::QTMSSource * &)
+	?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 67 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *)
+	?qt_metacall@QTMSGlobalVolEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 68 NONAME ; int QTMS::QTMSGlobalVolEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?GetLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 69 NONAME ; int QTMS::QTMSGlobalGainEffect::GetLevel(unsigned int &)
+	?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 70 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *, int)
+	?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0@Z @ 71 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *)
+	?GetMaxLevel@QTMSGlobalGainEffect@QTMS@@QAEHAAI@Z @ 72 NONAME ; int QTMS::QTMSGlobalGainEffect::GetMaxLevel(unsigned int &)
+	?RemoveSource@QTMSStream@QTMS@@QAEHPAVQTMSSource@2@@Z @ 73 NONAME ; int QTMS::QTMSStream::RemoveSource(class QTMS::QTMSSource *)
+	?DTMFEvent@QTMSDTMF@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 74 NONAME ; void QTMS::QTMSDTMF::DTMFEvent(class QTMS::QTMSDTMF const &, struct QTMS::QTMSSignalEvent)
+	?GetCNG@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 75 NONAME ; int QTMS::QTMSILBCFormat::GetCNG(int &)
+	?qt_metacast@QTMSG729Format@QTMS@@UAEPAXPBD@Z @ 76 NONAME ; void * QTMS::QTMSG729Format::qt_metacast(char const *)
+	?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0@Z @ 77 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *)
+	?GetType@QTMSClientSink@QTMS@@UAEHAAH@Z @ 78 NONAME ; int QTMS::QTMSClientSink::GetType(int &)
+	?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0H@Z @ 79 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *, int)
+	?staticMetaObject@QTMSMicSource@QTMS@@2UQMetaObject@@B @ 80 NONAME ; struct QMetaObject const QTMS::QTMSMicSource::staticMetaObject
+	?metaObject@QTMSModemSource@QTMS@@UBEPBUQMetaObject@@XZ @ 81 NONAME ; struct QMetaObject const * QTMS::QTMSModemSource::metaObject(void) const
+	?ContinueDTMFStringSending@QTMSDTMF@QTMS@@QAEHH@Z @ 82 NONAME ; int QTMS::QTMSDTMF::ContinueDTMFStringSending(int)
+	?GetCNG@QTMSG711Format@QTMS@@QAEHAAH@Z @ 83 NONAME ; int QTMS::QTMSG711Format::GetCNG(int &)
+	?CreateGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 84 NONAME ; int QTMS::QTMSFactory::CreateGlobalRouting(class QTMS::QTMSGlobalRouting * &)
+	?tr@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 85 NONAME ; class QString QTMS::QTMSRingTone::tr(char const *, char const *, int)
+	?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 86 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *, int)
+	?tr@QTMSClientSink@QTMS@@SA?AVQString@@PBD0@Z @ 87 NONAME ; class QString QTMS::QTMSClientSink::tr(char const *, char const *)
+	?trUtf8@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 88 NONAME ; class QString QTMS::QTMSModemSink::trUtf8(char const *, char const *)
+	?qt_metacall@QTMSInbandTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 89 NONAME ; int QTMS::QTMSInbandTone::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?staticMetaObject@QTMSSpeakerSink@QTMS@@2UQMetaObject@@B @ 90 NONAME ; struct QMetaObject const QTMS::QTMSSpeakerSink::staticMetaObject
+	?staticMetaObject@QTMSGainEffect@QTMS@@2UQMetaObject@@B @ 91 NONAME ; struct QMetaObject const QTMS::QTMSGainEffect::staticMetaObject
+	?staticMetaObject@QTMSModemSink@QTMS@@2UQMetaObject@@B @ 92 NONAME ; struct QMetaObject const QTMS::QTMSModemSink::staticMetaObject
+	?tr@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 93 NONAME ; class QString QTMS::QTMSModemSource::tr(char const *, char const *, int)
+	?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 94 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *)
+	?tr@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 95 NONAME ; class QString QTMS::QTMSGlobalVolEffect::tr(char const *, char const *, int)
+	?GetType@QTMSGainEffect@QTMS@@UAEHAAH@Z @ 96 NONAME ; int QTMS::QTMSGainEffect::GetType(int &)
+	?trUtf8@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 97 NONAME ; class QString QTMS::QTMSSpeakerSink::trUtf8(char const *, char const *)
+	??_EQTMSG711Format@QTMS@@UAE@I@Z @ 98 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(unsigned int)
+	?qt_metacast@QTMSAMRFormat@QTMS@@UAEPAXPBD@Z @ 99 NONAME ; void * QTMS::QTMSAMRFormat::qt_metacast(char const *)
+	?GlobalRoutingEvent@QTMSGlobalRouting@QTMS@@IAEXABV12@UQTMSSignalEvent@2@H@Z @ 100 NONAME ; void QTMS::QTMSGlobalRouting::GlobalRoutingEvent(class QTMS::QTMSGlobalRouting const &, struct QTMS::QTMSSignalEvent, int)
+	?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 101 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *, int)
+	?getStaticMetaObject@QTMSRingTone@QTMS@@SAABUQMetaObject@@XZ @ 102 NONAME ; struct QMetaObject const & QTMS::QTMSRingTone::getStaticMetaObject(void)
+	?metaObject@QTMSMicSource@QTMS@@UBEPBUQMetaObject@@XZ @ 103 NONAME ; struct QMetaObject const * QTMS::QTMSMicSource::metaObject(void) const
+	??1QTMSSpeakerSink@QTMS@@UAE@XZ @ 104 NONAME ; QTMS::QTMSSpeakerSink::~QTMSSpeakerSink(void)
+	??0QTMSVolumeEffect@QTMS@@IAE@XZ @ 105 NONAME ; QTMS::QTMSVolumeEffect::QTMSVolumeEffect(void)
+	?staticMetaObject@QTMSAMRFormat@QTMS@@2UQMetaObject@@B @ 106 NONAME ; struct QMetaObject const QTMS::QTMSAMRFormat::staticMetaObject
+	?Init@QTMSStream@QTMS@@QAEHXZ @ 107 NONAME ; int QTMS::QTMSStream::Init(void)
+	?GetVADMode@QTMSG729Format@QTMS@@QAEHAAH@Z @ 108 NONAME ; int QTMS::QTMSG729Format::GetVADMode(int &)
+	??1QTMSGlobalGainEffect@QTMS@@UAE@XZ @ 109 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(void)
+	??_EQTMSInbandTone@QTMS@@UAE@I@Z @ 110 NONAME ; QTMS::QTMSInbandTone::~QTMSInbandTone(unsigned int)
+	?trUtf8@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 111 NONAME ; class QString QTMS::QTMSAMRFormat::trUtf8(char const *, char const *)
+	?qt_metacast@QTMSRingTone@QTMS@@UAEPAXPBD@Z @ 112 NONAME ; void * QTMS::QTMSRingTone::qt_metacast(char const *)
+	?GetType@QTMSClientSource@QTMS@@UAEHAAH@Z @ 113 NONAME ; int QTMS::QTMSClientSource::GetType(int &)
+	?metaObject@QTMSPCMFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 114 NONAME ; struct QMetaObject const * QTMS::QTMSPCMFormat::metaObject(void) const
+	?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0@Z @ 115 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *)
+	??1QTMSGlobalRouting@QTMS@@UAE@XZ @ 116 NONAME ; QTMS::QTMSGlobalRouting::~QTMSGlobalRouting(void)
+	?getStaticMetaObject@QTMSStream@QTMS@@SAABUQMetaObject@@XZ @ 117 NONAME ; struct QMetaObject const & QTMS::QTMSStream::getStaticMetaObject(void)
+	?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 118 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *)
+	?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 119 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *, int)
+	?qt_metacast@QTMSModemSource@QTMS@@UAEPAXPBD@Z @ 120 NONAME ; void * QTMS::QTMSModemSource::qt_metacast(char const *)
+	?getStaticMetaObject@QTMSG711Format@QTMS@@SAABUQMetaObject@@XZ @ 121 NONAME ; struct QMetaObject const & QTMS::QTMSG711Format::getStaticMetaObject(void)
+	??_EQTMSClientSource@QTMS@@UAE@I@Z @ 122 NONAME ; QTMS::QTMSClientSource::~QTMSClientSource(unsigned int)
+	?GetLevel@QTMSGainEffect@QTMS@@QAEHAAI@Z @ 123 NONAME ; int QTMS::QTMSGainEffect::GetLevel(unsigned int &)
+	?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0@Z @ 124 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *)
+	?qt_metacast@QTMSGlobalRouting@QTMS@@UAEPAXPBD@Z @ 125 NONAME ; void * QTMS::QTMSGlobalRouting::qt_metacast(char const *)
+	?getStaticMetaObject@QTMSFactory@QTMS@@SAABUQMetaObject@@XZ @ 126 NONAME ; struct QMetaObject const & QTMS::QTMSFactory::getStaticMetaObject(void)
+	??_EQTMSAMRFormat@QTMS@@UAE@I@Z @ 127 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(unsigned int)
+	?getStaticMetaObject@QTMSPCMFormat@QTMS@@SAABUQMetaObject@@XZ @ 128 NONAME ; struct QMetaObject const & QTMS::QTMSPCMFormat::getStaticMetaObject(void)
+	?Flush@QTMSClientSource@QTMS@@QAEHXZ @ 129 NONAME ; int QTMS::QTMSClientSource::Flush(void)
+	?Stop@QTMSRingTone@QTMS@@QAEHXZ @ 130 NONAME ; int QTMS::QTMSRingTone::Stop(void)
+	?DeleteGlobalRouting@QTMSFactory@QTMS@@QAEHAAPAVQTMSGlobalRouting@2@@Z @ 131 NONAME ; int QTMS::QTMSFactory::DeleteGlobalRouting(class QTMS::QTMSGlobalRouting * &)
+	?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0H@Z @ 132 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *, int)
+	?SetMode@QTMSG711Format@QTMS@@QAEHH@Z @ 133 NONAME ; int QTMS::QTMSG711Format::SetMode(int)
+	?GetMode@QTMSILBCFormat@QTMS@@QAEHAAH@Z @ 134 NONAME ; int QTMS::QTMSILBCFormat::GetMode(int &)
+	?GetMode@QTMSG711Format@QTMS@@QAEHAAH@Z @ 135 NONAME ; int QTMS::QTMSG711Format::GetMode(int &)
+	?GetAvailableOutputs@QTMSGlobalRouting@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 136 NONAME ; int QTMS::QTMSGlobalRouting::GetAvailableOutputs(class std::vector<unsigned int, class std::allocator<unsigned int> > &)
+	?staticMetaObject@QTMSFactory@QTMS@@2UQMetaObject@@B @ 137 NONAME ; struct QMetaObject const QTMS::QTMSFactory::staticMetaObject
+	?DeleteFormat@QTMSFactory@QTMS@@QAEHAAPAVQTMSFormat@2@@Z @ 138 NONAME ; int QTMS::QTMSFactory::DeleteFormat(class QTMS::QTMSFormat * &)
+	?tr@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 139 NONAME ; class QString QTMS::QTMSILBCFormat::tr(char const *, char const *, int)
+	??1QTMSPCMFormat@QTMS@@UAE@XZ @ 140 NONAME ; QTMS::QTMSPCMFormat::~QTMSPCMFormat(void)
+	?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 141 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *)
+	??0QTMSG711Format@QTMS@@IAE@XZ @ 142 NONAME ; QTMS::QTMSG711Format::QTMSG711Format(void)
+	?staticMetaObject@QTMSILBCFormat@QTMS@@2UQMetaObject@@B @ 143 NONAME ; struct QMetaObject const QTMS::QTMSILBCFormat::staticMetaObject
+	?metaObject@QTMSG729Format@QTMS@@UBEPBUQMetaObject@@XZ @ 144 NONAME ; struct QMetaObject const * QTMS::QTMSG729Format::metaObject(void) const
+	?tr@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 145 NONAME ; class QString QTMS::QTMSFactory::tr(char const *, char const *, int)
+	?tr@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 146 NONAME ; class QString QTMS::QTMSCall::tr(char const *, char const *, int)
+	?staticMetaObject@QTMSClientSink@QTMS@@2UQMetaObject@@B @ 147 NONAME ; struct QMetaObject const QTMS::QTMSClientSink::staticMetaObject
+	?EffectsEvent@QTMSGlobalVolEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 148 NONAME ; void QTMS::QTMSGlobalVolEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+	?CreateFormat@QTMSFactory@QTMS@@QAEHHAAPAVQTMSFormat@2@@Z @ 149 NONAME ; int QTMS::QTMSFactory::CreateFormat(int, class QTMS::QTMSFormat * &)
+	?SetCNG@QTMSILBCFormat@QTMS@@QAEHH@Z @ 150 NONAME ; int QTMS::QTMSILBCFormat::SetCNG(int)
+	??1QTMSAMRFormat@QTMS@@UAE@XZ @ 151 NONAME ; QTMS::QTMSAMRFormat::~QTMSAMRFormat(void)
+	?metaObject@QTMSClientSink@QTMS@@UBEPBUQMetaObject@@XZ @ 152 NONAME ; struct QMetaObject const * QTMS::QTMSClientSink::metaObject(void) const
+	?trUtf8@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 153 NONAME ; class QString QTMS::QTMSInbandTone::trUtf8(char const *, char const *)
+	?staticMetaObject@QTMSG711Format@QTMS@@2UQMetaObject@@B @ 154 NONAME ; struct QMetaObject const QTMS::QTMSG711Format::staticMetaObject
+	?BufferFilled@QTMSClientSource@QTMS@@QAEHAAVTMSBuffer@TMS@@@Z @ 155 NONAME ; int QTMS::QTMSClientSource::BufferFilled(class TMS::TMSBuffer &)
+	?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 156 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *, int)
+	?InbandToneEvent@QTMSInbandTone@QTMS@@IAEXABV12@UQTMSSignalEvent@2@@Z @ 157 NONAME ; void QTMS::QTMSInbandTone::InbandToneEvent(class QTMS::QTMSInbandTone const &, struct QTMS::QTMSSignalEvent)
+	?tr@QTMSModemSink@QTMS@@SA?AVQString@@PBD0@Z @ 158 NONAME ; class QString QTMS::QTMSModemSink::tr(char const *, char const *)
+	?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 159 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *, int)
+	?qt_metacast@QTMSG711Format@QTMS@@UAEPAXPBD@Z @ 160 NONAME ; void * QTMS::QTMSG711Format::qt_metacast(char const *)
+	?GetMaxLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 161 NONAME ; int QTMS::QTMSVolumeEffect::GetMaxLevel(unsigned int &)
+	??0QTMSSpeakerSink@QTMS@@IAE@XZ @ 162 NONAME ; QTMS::QTMSSpeakerSink::QTMSSpeakerSink(void)
+	?ProcessBuffer@QTMSClientSource@QTMS@@QAEHPAVTMSBuffer@TMS@@@Z @ 163 NONAME ; int QTMS::QTMSClientSource::ProcessBuffer(class TMS::TMSBuffer *)
+	??_EQTMSMicSource@QTMS@@UAE@I@Z @ 164 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(unsigned int)
+	?metaObject@QTMSModemSink@QTMS@@UBEPBUQMetaObject@@XZ @ 165 NONAME ; struct QMetaObject const * QTMS::QTMSModemSink::metaObject(void) const
+	?DeleteCall@QTMSFactory@QTMS@@QAEHAAPAVQTMSCall@2@@Z @ 166 NONAME ; int QTMS::QTMSFactory::DeleteCall(class QTMS::QTMSCall * &)
+	?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 167 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *, int)
+	?qt_metacall@QTMSMicSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 168 NONAME ; int QTMS::QTMSMicSource::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?GetType@QTMSFormat@QTMS@@UAEHAAH@Z @ 169 NONAME ; int QTMS::QTMSFormat::GetType(int &)
+	?DeleteStream@QTMSCall@QTMS@@QAEHAAPAVQTMSStream@2@@Z @ 170 NONAME ; int QTMS::QTMSCall::DeleteStream(class QTMS::QTMSStream * &)
+	?trUtf8@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 171 NONAME ; class QString QTMS::QTMSVolumeEffect::trUtf8(char const *, char const *)
+	?CreateInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 172 NONAME ; int QTMS::QTMSFactory::CreateInbandTonePlayer(class QTMS::QTMSInbandTone * &)
+	?trUtf8@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 173 NONAME ; class QString QTMS::QTMSGlobalRouting::trUtf8(char const *, char const *)
+	??1QTMSG711Format@QTMS@@UAE@XZ @ 174 NONAME ; QTMS::QTMSG711Format::~QTMSG711Format(void)
+	?tr@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 175 NONAME ; class QString QTMS::QTMSGainEffect::tr(char const *, char const *)
+	??_EQTMSModemSource@QTMS@@UAE@I@Z @ 176 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(unsigned int)
+	?qt_metacall@QTMSPCMFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 177 NONAME ; int QTMS::QTMSPCMFormat::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0QTMSILBCFormat@QTMS@@IAE@XZ @ 178 NONAME ; QTMS::QTMSILBCFormat::QTMSILBCFormat(void)
+	?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 179 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *, int)
+	?qt_metacast@QTMSPCMFormat@QTMS@@UAEPAXPBD@Z @ 180 NONAME ; void * QTMS::QTMSPCMFormat::qt_metacast(char const *)
+	?qt_metacall@QTMSSpeakerSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 181 NONAME ; int QTMS::QTMSSpeakerSink::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?GetLevel@QTMSVolumeEffect@QTMS@@QAEHAAI@Z @ 182 NONAME ; int QTMS::QTMSVolumeEffect::GetLevel(unsigned int &)
+	?trUtf8@QTMSFactory@QTMS@@SA?AVQString@@PBD0H@Z @ 183 NONAME ; class QString QTMS::QTMSFactory::trUtf8(char const *, char const *, int)
+	??_EQTMSGainEffect@QTMS@@UAE@I@Z @ 184 NONAME ; QTMS::QTMSGainEffect::~QTMSGainEffect(unsigned int)
+	?tr@QTMSGlobalRouting@QTMS@@SA?AVQString@@PBD0@Z @ 185 NONAME ; class QString QTMS::QTMSGlobalRouting::tr(char const *, char const *)
+	?tr@QTMSAMRFormat@QTMS@@SA?AVQString@@PBD0@Z @ 186 NONAME ; class QString QTMS::QTMSAMRFormat::tr(char const *, char const *)
+	?getStaticMetaObject@QTMSSpeakerSink@QTMS@@SAABUQMetaObject@@XZ @ 187 NONAME ; struct QMetaObject const & QTMS::QTMSSpeakerSink::getStaticMetaObject(void)
+	?CreateDTMF@QTMSFactory@QTMS@@QAEHHAAPAVQTMSDTMF@2@@Z @ 188 NONAME ; int QTMS::QTMSFactory::CreateDTMF(int, class QTMS::QTMSDTMF * &)
+	?trUtf8@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 189 NONAME ; class QString QTMS::QTMSStream::trUtf8(char const *, char const *)
+	?tr@QTMSInbandTone@QTMS@@SA?AVQString@@PBD0@Z @ 190 NONAME ; class QString QTMS::QTMSInbandTone::tr(char const *, char const *)
+	?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0@Z @ 191 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *)
+	??1QTMSMicSource@QTMS@@UAE@XZ @ 192 NONAME ; QTMS::QTMSMicSource::~QTMSMicSource(void)
+	??_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 * *)
+	?CreateStream@QTMSCall@QTMS@@QAEHHAAPAVQTMSStream@2@@Z @ 231 NONAME ; int QTMS::QTMSCall::CreateStream(int, class QTMS::QTMSStream * &)
+	?DeleteInbandTonePlayer@QTMSFactory@QTMS@@QAEHAAPAVQTMSInbandTone@2@@Z @ 232 NONAME ; int QTMS::QTMSFactory::DeleteInbandTonePlayer(class QTMS::QTMSInbandTone * &)
+	?SetLevel@QTMSGlobalGainEffect@QTMS@@QAEHI@Z @ 233 NONAME ; int QTMS::QTMSGlobalGainEffect::SetLevel(unsigned int)
+	?GetStreamType@QTMSStream@QTMS@@QAEHXZ @ 234 NONAME ; int QTMS::QTMSStream::GetStreamType(void)
+	?getStaticMetaObject@QTMSGlobalRouting@QTMS@@SAABUQMetaObject@@XZ @ 235 NONAME ; struct QMetaObject const & QTMS::QTMSGlobalRouting::getStaticMetaObject(void)
+	??0QTMSGlobalVolEffect@QTMS@@IAE@XZ @ 236 NONAME ; QTMS::QTMSGlobalVolEffect::QTMSGlobalVolEffect(void)
+	?CreateSink@QTMSFactory@QTMS@@QAEHHAAPAVQTMSSink@2@@Z @ 237 NONAME ; int QTMS::QTMSFactory::CreateSink(int, class QTMS::QTMSSink * &)
+	?EffectsEvent@QTMSVolumeEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 238 NONAME ; void QTMS::QTMSVolumeEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+	?getStaticMetaObject@QTMSG729Format@QTMS@@SAABUQMetaObject@@XZ @ 239 NONAME ; struct QMetaObject const & QTMS::QTMSG729Format::getStaticMetaObject(void)
+	??1QTMSDTMF@QTMS@@UAE@XZ @ 240 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(void)
+	?DeleteDTMF@QTMSFactory@QTMS@@QAEHAAPAVQTMSDTMF@2@@Z @ 241 NONAME ; int QTMS::QTMSFactory::DeleteDTMF(class QTMS::QTMSDTMF * &)
+	??_EQTMSFormat@QTMS@@UAE@I@Z @ 242 NONAME ; QTMS::QTMSFormat::~QTMSFormat(unsigned int)
+	?staticMetaObject@QTMSGlobalGainEffect@QTMS@@2UQMetaObject@@B @ 243 NONAME ; struct QMetaObject const QTMS::QTMSGlobalGainEffect::staticMetaObject
+	?SetVADMode@QTMSILBCFormat@QTMS@@QAEHH@Z @ 244 NONAME ; int QTMS::QTMSILBCFormat::SetVADMode(int)
+	??0QTMSCall@QTMS@@IAE@XZ @ 245 NONAME ; QTMS::QTMSCall::QTMSCall(void)
+	?GetEnqueueMode@QTMSClientSource@QTMS@@QAEHAAH@Z @ 246 NONAME ; int QTMS::QTMSClientSource::GetEnqueueMode(int &)
+	?metaObject@QTMSGlobalVolEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 247 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalVolEffect::metaObject(void) const
+	?staticMetaObject@QTMSGlobalRouting@QTMS@@2UQMetaObject@@B @ 248 NONAME ; struct QMetaObject const QTMS::QTMSGlobalRouting::staticMetaObject
+	?qt_metacast@QTMSFactory@QTMS@@UAEPAXPBD@Z @ 249 NONAME ; void * QTMS::QTMSFactory::qt_metacast(char const *)
+	?SetCNG@QTMSG711Format@QTMS@@QAEHH@Z @ 250 NONAME ; int QTMS::QTMSG711Format::SetCNG(int)
+	?qt_metacall@QTMSG729Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 251 NONAME ; int QTMS::QTMSG729Format::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@QTMSStream@QTMS@@SA?AVQString@@PBD0H@Z @ 252 NONAME ; class QString QTMS::QTMSStream::tr(char const *, char const *, int)
+	?SetLevel@QTMSVolumeEffect@QTMS@@QAEHI@Z @ 253 NONAME ; int QTMS::QTMSVolumeEffect::SetLevel(unsigned int)
+	?DeleteEffect@QTMSFactory@QTMS@@QAEHAAPAVQTMSEffect@2@@Z @ 254 NONAME ; int QTMS::QTMSFactory::DeleteEffect(class QTMS::QTMSEffect * &)
+	?qt_metacast@QTMSCall@QTMS@@UAEPAXPBD@Z @ 255 NONAME ; void * QTMS::QTMSCall::qt_metacast(char const *)
+	?SetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 256 NONAME ; int QTMS::QTMSStream::SetFormat(class QTMS::QTMSFormat *)
+	?getStaticMetaObject@QTMSDTMF@QTMS@@SAABUQMetaObject@@XZ @ 257 NONAME ; struct QMetaObject const & QTMS::QTMSDTMF::getStaticMetaObject(void)
+	?getStaticMetaObject@QTMSMicSource@QTMS@@SAABUQMetaObject@@XZ @ 258 NONAME ; struct QMetaObject const & QTMS::QTMSMicSource::getStaticMetaObject(void)
+	?qt_metacall@QTMSRingTone@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 259 NONAME ; int QTMS::QTMSRingTone::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 260 NONAME ; class QString QTMS::QTMSClientSource::trUtf8(char const *, char const *, int)
+	?qt_metacall@QTMSGlobalGainEffect@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 261 NONAME ; int QTMS::QTMSGlobalGainEffect::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?CreateCall@QTMSFactory@QTMS@@QAEHHAAPAVQTMSCall@2@I@Z @ 262 NONAME ; int QTMS::QTMSFactory::CreateCall(int, class QTMS::QTMSCall * &, unsigned int)
+	?SetVADMode@QTMSG729Format@QTMS@@QAEHH@Z @ 263 NONAME ; int QTMS::QTMSG729Format::SetVADMode(int)
+	?DeleteBuffer@QTMSFactory@QTMS@@QAEHAAPAVQTMSBuffer@2@@Z @ 264 NONAME ; int QTMS::QTMSFactory::DeleteBuffer(class QTMS::QTMSBuffer * &)
+	?trUtf8@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 265 NONAME ; class QString QTMS::QTMSG711Format::trUtf8(char const *, char const *)
+	?qt_metacall@QTMSDTMF@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 266 NONAME ; int QTMS::QTMSDTMF::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?qt_metacall@QTMSModemSource@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 267 NONAME ; int QTMS::QTMSModemSource::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?CreateFactory@QTMSFactory@QTMS@@SAHAAPAV12@AAVQTMSVer@2@@Z @ 268 NONAME ; int QTMS::QTMSFactory::CreateFactory(class QTMS::QTMSFactory * &, class QTMS::QTMSVer &)
+	?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0H@Z @ 269 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *, int)
+	??1QTMSStream@QTMS@@UAE@XZ @ 270 NONAME ; QTMS::QTMSStream::~QTMSStream(void)
+	?Init@QTMSRingTone@QTMS@@QAEHHPAU_GString@@0@Z @ 271 NONAME ; int QTMS::QTMSRingTone::Init(int, struct _GString *, struct _GString *)
+	?qt_metacast@QTMSVolumeEffect@QTMS@@UAEPAXPBD@Z @ 272 NONAME ; void * QTMS::QTMSVolumeEffect::qt_metacast(char const *)
+	??1QTMSRingTone@QTMS@@UAE@XZ @ 273 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(void)
+	??_EQTMSStream@QTMS@@UAE@I@Z @ 274 NONAME ; QTMS::QTMSStream::~QTMSStream(unsigned int)
+	?tr@QTMSSpeakerSink@QTMS@@SA?AVQString@@PBD0@Z @ 275 NONAME ; class QString QTMS::QTMSSpeakerSink::tr(char const *, char const *)
+	?RemoveSink@QTMSStream@QTMS@@QAEHPAVQTMSSink@2@@Z @ 276 NONAME ; int QTMS::QTMSStream::RemoveSink(class QTMS::QTMSSink *)
+	?trUtf8@QTMSModemSource@QTMS@@SA?AVQString@@PBD0H@Z @ 277 NONAME ; class QString QTMS::QTMSModemSource::trUtf8(char const *, char const *, int)
+	?metaObject@QTMSILBCFormat@QTMS@@UBEPBUQMetaObject@@XZ @ 278 NONAME ; struct QMetaObject const * QTMS::QTMSILBCFormat::metaObject(void) const
+	?staticMetaObject@QTMSPCMFormat@QTMS@@2UQMetaObject@@B @ 279 NONAME ; struct QMetaObject const QTMS::QTMSPCMFormat::staticMetaObject
+	?getStaticMetaObject@QTMSClientSource@QTMS@@SAABUQMetaObject@@XZ @ 280 NONAME ; struct QMetaObject const & QTMS::QTMSClientSource::getStaticMetaObject(void)
+	??1QTMSFactory@QTMS@@UAE@XZ @ 281 NONAME ; QTMS::QTMSFactory::~QTMSFactory(void)
+	?DeleteSource@QTMSFactory@QTMS@@QAEHAAPAVQTMSSource@2@@Z @ 282 NONAME ; int QTMS::QTMSFactory::DeleteSource(class QTMS::QTMSSource * &)
+	?qt_metacall@QTMSGlobalRouting@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 283 NONAME ; int QTMS::QTMSGlobalRouting::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0QTMSGlobalGainEffect@QTMS@@IAE@XZ @ 284 NONAME ; QTMS::QTMSGlobalGainEffect::QTMSGlobalGainEffect(void)
+	?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 285 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *)
+	??0QTMSDTMF@QTMS@@IAE@XZ @ 286 NONAME ; QTMS::QTMSDTMF::QTMSDTMF(void)
+	?GetLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 287 NONAME ; int QTMS::QTMSGlobalVolEffect::GetLevel(unsigned int &)
+	?GetType@QTMSGlobalVolEffect@QTMS@@UAEHAAH@Z @ 288 NONAME ; int QTMS::QTMSGlobalVolEffect::GetType(int &)
+	?getStaticMetaObject@QTMSILBCFormat@QTMS@@SAABUQMetaObject@@XZ @ 289 NONAME ; struct QMetaObject const & QTMS::QTMSILBCFormat::getStaticMetaObject(void)
+	??_EQTMSGlobalGainEffect@QTMS@@UAE@I@Z @ 290 NONAME ; QTMS::QTMSGlobalGainEffect::~QTMSGlobalGainEffect(unsigned int)
+	?trUtf8@QTMSGlobalVolEffect@QTMS@@SA?AVQString@@PBD0@Z @ 291 NONAME ; class QString QTMS::QTMSGlobalVolEffect::trUtf8(char const *, char const *)
+	?qt_metacast@QTMSGlobalGainEffect@QTMS@@UAEPAXPBD@Z @ 292 NONAME ; void * QTMS::QTMSGlobalGainEffect::qt_metacast(char const *)
+	??_EQTMSModemSink@QTMS@@UAE@I@Z @ 293 NONAME ; QTMS::QTMSModemSink::~QTMSModemSink(unsigned int)
+	??0QTMSModemSink@QTMS@@IAE@XZ @ 294 NONAME ; QTMS::QTMSModemSink::QTMSModemSink(void)
+	?tr@QTMSG711Format@QTMS@@SA?AVQString@@PBD0@Z @ 295 NONAME ; class QString QTMS::QTMSG711Format::tr(char const *, char const *)
+	?GetState@QTMSStream@QTMS@@QAEHXZ @ 296 NONAME ; int QTMS::QTMSStream::GetState(void)
+	?qt_metacall@QTMSG711Format@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 297 NONAME ; int QTMS::QTMSG711Format::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?getStaticMetaObject@QTMSClientSink@QTMS@@SAABUQMetaObject@@XZ @ 298 NONAME ; struct QMetaObject const & QTMS::QTMSClientSink::getStaticMetaObject(void)
+	?qt_metacast@QTMSInbandTone@QTMS@@UAEPAXPBD@Z @ 299 NONAME ; void * QTMS::QTMSInbandTone::qt_metacast(char const *)
+	?getStaticMetaObject@QTMSModemSource@QTMS@@SAABUQMetaObject@@XZ @ 300 NONAME ; struct QMetaObject const & QTMS::QTMSModemSource::getStaticMetaObject(void)
+	?metaObject@QTMSGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 301 NONAME ; struct QMetaObject const * QTMS::QTMSGainEffect::metaObject(void) const
+	??0QTMSGlobalRouting@QTMS@@IAE@XZ @ 302 NONAME ; QTMS::QTMSGlobalRouting::QTMSGlobalRouting(void)
+	?metaObject@QTMSClientSource@QTMS@@UBEPBUQMetaObject@@XZ @ 303 NONAME ; struct QMetaObject const * QTMS::QTMSClientSource::metaObject(void) const
+	?qt_metacast@QTMSStream@QTMS@@UAEPAXPBD@Z @ 304 NONAME ; void * QTMS::QTMSStream::qt_metacast(char const *)
+	?DeleteSink@QTMSFactory@QTMS@@QAEHAAPAVQTMSSink@2@@Z @ 305 NONAME ; int QTMS::QTMSFactory::DeleteSink(class QTMS::QTMSSink * &)
+	?getStaticMetaObject@QTMSModemSink@QTMS@@SAABUQMetaObject@@XZ @ 306 NONAME ; struct QMetaObject const & QTMS::QTMSModemSink::getStaticMetaObject(void)
+	?tr@QTMSClientSource@QTMS@@SA?AVQString@@PBD0@Z @ 307 NONAME ; class QString QTMS::QTMSClientSource::tr(char const *, char const *)
+	?Mute@QTMSRingTone@QTMS@@QAEHXZ @ 308 NONAME ; int QTMS::QTMSRingTone::Mute(void)
+	??_EQTMSDTMF@QTMS@@UAE@I@Z @ 309 NONAME ; QTMS::QTMSDTMF::~QTMSDTMF(unsigned int)
+	?qt_metacall@QTMSStream@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 310 NONAME ; int QTMS::QTMSStream::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?tr@QTMSDTMF@QTMS@@SA?AVQString@@PBD0H@Z @ 311 NONAME ; class QString QTMS::QTMSDTMF::tr(char const *, char const *, int)
+	?qt_metacast@QTMSGainEffect@QTMS@@UAEPAXPBD@Z @ 312 NONAME ; void * QTMS::QTMSGainEffect::qt_metacast(char const *)
+	?GetCallContextId@QTMSCall@QTMS@@QAEHAAI@Z @ 313 NONAME ; int QTMS::QTMSCall::GetCallContextId(unsigned int &)
+	?GetCallType@QTMSCall@QTMS@@QAEHXZ @ 314 NONAME ; int QTMS::QTMSCall::GetCallType(void)
+	?Start@QTMSDTMF@QTMS@@QAEHXZ @ 315 NONAME ; int QTMS::QTMSDTMF::Start(void)
+	?trUtf8@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 316 NONAME ; class QString QTMS::QTMSGlobalGainEffect::trUtf8(char const *, char const *)
+	?SetOutput@QTMSGlobalRouting@QTMS@@QAEHH@Z @ 317 NONAME ; int QTMS::QTMSGlobalRouting::SetOutput(int)
+	??0QTMSClientSink@QTMS@@IAE@XZ @ 318 NONAME ; QTMS::QTMSClientSink::QTMSClientSink(void)
+	?SetLevel@QTMSGlobalVolEffect@QTMS@@QAEHI@Z @ 319 NONAME ; int QTMS::QTMSGlobalVolEffect::SetLevel(unsigned int)
+	?metaObject@QTMSRingTone@QTMS@@UBEPBUQMetaObject@@XZ @ 320 NONAME ; struct QMetaObject const * QTMS::QTMSRingTone::metaObject(void) const
+	?IsCallTypeSupported@QTMSFactory@QTMS@@QAEHHAAH@Z @ 321 NONAME ; int QTMS::QTMSFactory::IsCallTypeSupported(int, int &)
+	?qt_metacast@QTMSGlobalVolEffect@QTMS@@UAEPAXPBD@Z @ 322 NONAME ; void * QTMS::QTMSGlobalVolEffect::qt_metacast(char const *)
+	?staticMetaObject@QTMSModemSource@QTMS@@2UQMetaObject@@B @ 323 NONAME ; struct QMetaObject const QTMS::QTMSModemSource::staticMetaObject
+	?GetStreamId@QTMSStream@QTMS@@QAEHXZ @ 324 NONAME ; int QTMS::QTMSStream::GetStreamId(void)
+	??0QTMSG729Format@QTMS@@IAE@XZ @ 325 NONAME ; QTMS::QTMSG729Format::QTMSG729Format(void)
+	??_EQTMSGlobalVolEffect@QTMS@@UAE@I@Z @ 326 NONAME ; QTMS::QTMSGlobalVolEffect::~QTMSGlobalVolEffect(unsigned int)
+	?getStaticMetaObject@QTMSAMRFormat@QTMS@@SAABUQMetaObject@@XZ @ 327 NONAME ; struct QMetaObject const & QTMS::QTMSAMRFormat::getStaticMetaObject(void)
+	?staticMetaObject@QTMSVolumeEffect@QTMS@@2UQMetaObject@@B @ 328 NONAME ; struct QMetaObject const QTMS::QTMSVolumeEffect::staticMetaObject
+	??_EQTMSRingTone@QTMS@@UAE@I@Z @ 329 NONAME ; QTMS::QTMSRingTone::~QTMSRingTone(unsigned int)
+	??0QTMSFormat@QTMS@@IAE@XZ @ 330 NONAME ; QTMS::QTMSFormat::QTMSFormat(void)
+	?GetSupportedFormats@QTMSFactory@QTMS@@QAEHHAAV?$vector@PAVQTMSFormat@QTMS@@V?$allocator@PAVQTMSFormat@QTMS@@@std@@@std@@@Z @ 331 NONAME ; int QTMS::QTMSFactory::GetSupportedFormats(int, class std::vector<class QTMS::QTMSFormat *, class std::allocator<class QTMS::QTMSFormat *> > &)
+	?SetVADMode@QTMSG711Format@QTMS@@QAEHH@Z @ 332 NONAME ; int QTMS::QTMSG711Format::SetVADMode(int)
+	?getStaticMetaObject@QTMSVolumeEffect@QTMS@@SAABUQMetaObject@@XZ @ 333 NONAME ; struct QMetaObject const & QTMS::QTMSVolumeEffect::getStaticMetaObject(void)
+	?qt_metacall@QTMSModemSink@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 334 NONAME ; int QTMS::QTMSModemSink::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?trUtf8@QTMSILBCFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 335 NONAME ; class QString QTMS::QTMSILBCFormat::trUtf8(char const *, char const *, int)
+	?trUtf8@QTMSDTMF@QTMS@@SA?AVQString@@PBD0@Z @ 336 NONAME ; class QString QTMS::QTMSDTMF::trUtf8(char const *, char const *)
+	?tr@QTMSGlobalGainEffect@QTMS@@SA?AVQString@@PBD0@Z @ 337 NONAME ; class QString QTMS::QTMSGlobalGainEffect::tr(char const *, char const *)
+	?AddEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 338 NONAME ; int QTMS::QTMSStream::AddEffect(class QTMS::QTMSEffect *)
+	?ResetFormat@QTMSStream@QTMS@@QAEHPAVQTMSFormat@2@@Z @ 339 NONAME ; int QTMS::QTMSStream::ResetFormat(class QTMS::QTMSFormat *)
+	?metaObject@QTMSG711Format@QTMS@@UBEPBUQMetaObject@@XZ @ 340 NONAME ; struct QMetaObject const * QTMS::QTMSG711Format::metaObject(void) const
+	??1QTMSVolumeEffect@QTMS@@UAE@XZ @ 341 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(void)
+	?EffectsEvent@QTMSGlobalGainEffect@QTMS@@IAEXABVQTMSEffect@2@UQTMSSignalEvent@2@@Z @ 342 NONAME ; void QTMS::QTMSGlobalGainEffect::EffectsEvent(class QTMS::QTMSEffect const &, struct QTMS::QTMSSignalEvent)
+	?GetSupportedBitRates@QTMSFormat@QTMS@@QAEHAAV?$vector@IV?$allocator@I@std@@@std@@@Z @ 343 NONAME ; int QTMS::QTMSFormat::GetSupportedBitRates(class std::vector<unsigned int, class std::allocator<unsigned int> > &)
+	?staticMetaObject@QTMSCall@QTMS@@2UQMetaObject@@B @ 344 NONAME ; struct QMetaObject const QTMS::QTMSCall::staticMetaObject
+	??1QTMSModemSource@QTMS@@UAE@XZ @ 345 NONAME ; QTMS::QTMSModemSource::~QTMSModemSource(void)
+	??1QTMSClientSink@QTMS@@UAE@XZ @ 346 NONAME ; QTMS::QTMSClientSink::~QTMSClientSink(void)
+	?metaObject@QTMSFactory@QTMS@@UBEPBUQMetaObject@@XZ @ 347 NONAME ; struct QMetaObject const * QTMS::QTMSFactory::metaObject(void) const
+	?metaObject@QTMSInbandTone@QTMS@@UBEPBUQMetaObject@@XZ @ 348 NONAME ; struct QMetaObject const * QTMS::QTMSInbandTone::metaObject(void) const
+	?trUtf8@QTMSGainEffect@QTMS@@SA?AVQString@@PBD0H@Z @ 349 NONAME ; class QString QTMS::QTMSGainEffect::trUtf8(char const *, char const *, int)
+	?trUtf8@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 350 NONAME ; class QString QTMS::QTMSMicSource::trUtf8(char const *, char const *, int)
+	?GetMaxLevel@QTMSGlobalVolEffect@QTMS@@QAEHAAI@Z @ 351 NONAME ; int QTMS::QTMSGlobalVolEffect::GetMaxLevel(unsigned int &)
+	??_EQTMSVolumeEffect@QTMS@@UAE@I@Z @ 352 NONAME ; QTMS::QTMSVolumeEffect::~QTMSVolumeEffect(unsigned int)
+	??1QTMSG729Format@QTMS@@UAE@XZ @ 353 NONAME ; QTMS::QTMSG729Format::~QTMSG729Format(void)
+	?tr@QTMSVolumeEffect@QTMS@@SA?AVQString@@PBD0@Z @ 354 NONAME ; class QString QTMS::QTMSVolumeEffect::tr(char const *, char const *)
+	?GetType@QTMSMicSource@QTMS@@UAEHAAH@Z @ 355 NONAME ; int QTMS::QTMSMicSource::GetType(int &)
+	?CreateEffect@QTMSFactory@QTMS@@QAEHHAAPAVQTMSEffect@2@@Z @ 356 NONAME ; int QTMS::QTMSFactory::CreateEffect(int, class QTMS::QTMSEffect * &)
+	?getStaticMetaObject@QTMSCall@QTMS@@SAABUQMetaObject@@XZ @ 357 NONAME ; struct QMetaObject const & QTMS::QTMSCall::getStaticMetaObject(void)
+	?metaObject@QTMSGlobalGainEffect@QTMS@@UBEPBUQMetaObject@@XZ @ 358 NONAME ; struct QMetaObject const * QTMS::QTMSGlobalGainEffect::metaObject(void) const
+	??0QTMSFactory@QTMS@@AAE@XZ @ 359 NONAME ; QTMS::QTMSFactory::QTMSFactory(void)
+	?GetOutput@QTMSGlobalRouting@QTMS@@QAEHAAH@Z @ 360 NONAME ; int QTMS::QTMSGlobalRouting::GetOutput(int &)
+	?tr@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0@Z @ 361 NONAME ; class QString QTMS::QTMSPCMFormat::tr(char const *, char const *)
+	?CreateBuffer@QTMSFactory@QTMS@@QAEHHIAAPAVQTMSBuffer@2@@Z @ 362 NONAME ; int QTMS::QTMSFactory::CreateBuffer(int, unsigned int, class QTMS::QTMSBuffer * &)
+	?trUtf8@QTMSPCMFormat@QTMS@@SA?AVQString@@PBD0H@Z @ 363 NONAME ; class QString QTMS::QTMSPCMFormat::trUtf8(char const *, char const *, int)
+	?qt_metacast@QTMSMicSource@QTMS@@UAEPAXPBD@Z @ 364 NONAME ; void * QTMS::QTMSMicSource::qt_metacast(char const *)
+	??0QTMSRingTone@QTMS@@IAE@XZ @ 365 NONAME ; QTMS::QTMSRingTone::QTMSRingTone(void)
+	?trUtf8@QTMSG729Format@QTMS@@SA?AVQString@@PBD0@Z @ 366 NONAME ; class QString QTMS::QTMSG729Format::trUtf8(char const *, char const *)
+	?BufferProcessed@QTMSClientSink@QTMS@@QAEHPAVTMSBuffer@TMS@@@Z @ 367 NONAME ; int QTMS::QTMSClientSink::BufferProcessed(class TMS::TMSBuffer *)
+	?trUtf8@QTMSRingTone@QTMS@@SA?AVQString@@PBD0H@Z @ 368 NONAME ; class QString QTMS::QTMSRingTone::trUtf8(char const *, char const *, int)
+	?ProcessBuffer@QTMSClientSink@QTMS@@IAEXPBVTMSBuffer@TMS@@@Z @ 369 NONAME ; void QTMS::QTMSClientSink::ProcessBuffer(class TMS::TMSBuffer const *)
+	?qt_metacall@QTMSAMRFormat@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 370 NONAME ; int QTMS::QTMSAMRFormat::qt_metacall(enum QMetaObject::Call, int, void * *)
+	??0QTMSInbandTone@QTMS@@IAE@XZ @ 371 NONAME ; QTMS::QTMSInbandTone::QTMSInbandTone(void)
+	?RemoveEffect@QTMSStream@QTMS@@QAEHPAVQTMSEffect@2@@Z @ 372 NONAME ; int QTMS::QTMSStream::RemoveEffect(class QTMS::QTMSEffect *)
+	?SetBitRate@QTMSFormat@QTMS@@QAEHI@Z @ 373 NONAME ; int QTMS::QTMSFormat::SetBitRate(unsigned int)
+	?Stop@QTMSStream@QTMS@@QAEHXZ @ 374 NONAME ; int QTMS::QTMSStream::Stop(void)
+	?trUtf8@QTMSCall@QTMS@@SA?AVQString@@PBD0H@Z @ 375 NONAME ; class QString QTMS::QTMSCall::trUtf8(char const *, char const *, int)
+	??_EQTMSILBCFormat@QTMS@@UAE@I@Z @ 376 NONAME ; QTMS::QTMSILBCFormat::~QTMSILBCFormat(unsigned int)
+	?qt_metacall@QTMSFactory@QTMS@@UAEHW4Call@QMetaObject@@HPAPAX@Z @ 377 NONAME ; int QTMS::QTMSFactory::qt_metacall(enum QMetaObject::Call, int, void * *)
+	?staticMetaObject@QTMSStream@QTMS@@2UQMetaObject@@B @ 378 NONAME ; struct QMetaObject const QTMS::QTMSStream::staticMetaObject
+	??0QTMSPCMFormat@QTMS@@IAE@XZ @ 379 NONAME ; QTMS::QTMSPCMFormat::QTMSPCMFormat(void)
+	?tr@QTMSMicSource@QTMS@@SA?AVQString@@PBD0H@Z @ 380 NONAME ; class QString QTMS::QTMSMicSource::tr(char const *, char const *, int)
+	?SetLevel@QTMSGainEffect@QTMS@@QAEHI@Z @ 381 NONAME ; int QTMS::QTMSGainEffect::SetLevel(unsigned int)
+	?FillBuffer@QTMSClientSource@QTMS@@IAEXAAVTMSBuffer@TMS@@@Z @ 382 NONAME ; void QTMS::QTMSClientSource::FillBuffer(class TMS::TMSBuffer &)
+	?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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/eabi/qtmsu.def	Thu May 27 13:19:19 2010 +0300
@@ -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
+	_ZN4QTMS14QTMSClientSink13ProcessBufferEPKN3TMS9TMSBufferE @ 124 NONAME
+	_ZN4QTMS14QTMSClientSink15BufferProcessedEPN3TMS9TMSBufferE @ 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
+	_ZN4QTMS16QTMSClientSource10FillBufferERN3TMS9TMSBufferE @ 223 NONAME
+	_ZN4QTMS16QTMSClientSource11qt_metacallEN11QMetaObject4CallEiPPv @ 224 NONAME
+	_ZN4QTMS16QTMSClientSource11qt_metacastEPKc @ 225 NONAME
+	_ZN4QTMS16QTMSClientSource12BufferFilledERN3TMS9TMSBufferE @ 226 NONAME
+	_ZN4QTMS16QTMSClientSource13ProcessBufferEPN3TMS9TMSBufferE @ 227 NONAME
+	_ZN4QTMS16QTMSClientSource14GetEnqueueModeERi @ 228 NONAME
+	_ZN4QTMS16QTMSClientSource14SetEnqueueModeEi @ 229 NONAME
+	_ZN4QTMS16QTMSClientSource15BufferProcessedEPKN3TMS9TMSBufferEi @ 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/qtmsfactoryimpl.h	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/inc/qtmsfactoryimpl.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/inc/qtmsgaineffectimpl.h	Thu May 27 13:19:19 2010 +0300
@@ -50,9 +50,6 @@
 private:
     QTMSGainEffectImpl();
     gint PostConstruct();
-
-private:
-    gpointer iUserData;
     };
 
 } //namespace QTMS
--- a/qtms/inc/qtmsmembuffer.h	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/inc/qtmsmembuffer.h	Thu May 27 13:19:19 2010 +0300
@@ -20,6 +20,10 @@
 
 #include <qtmsbuffer.h>
 
+namespace TMS {
+class TMSBuffer;
+}
+
 namespace QTMS {
 
 // QTMSMemBuffer class
@@ -35,8 +39,11 @@
      * @param  size
      *      Size of the buffer to be created.
      *
+     * @param  qbuffer
+     *      Created QTMSBuffer object.
+     *
      * @param  buffer
-     *      Created buffer object.
+     *      TMS::TMSBuffer buffer object.
      *
      * @return
      *      TMS_RESULT_SUCCESS if buffer is created successfully.
@@ -46,7 +53,8 @@
      *      supported.
      *
      */
-    static gint Create(guint size, QTMSBuffer*& buffer);
+    static gint Create(guint size, QTMSBuffer*& qbuffer,
+            TMS::TMSBuffer*& tmsbuffer);
 
     /**
      * Return buffer type.
@@ -108,13 +116,10 @@
 
 private:
     QTMSMemBuffer();
-    gint PostConstruct(guint size);
+    gint PostConstruct();
 
-private:
-    guint iBufferSize;
-    guint iTimeStamp;
-    guint8* iDataPtr;
-    gboolean iOwnsBuffer;
+protected:
+    TMS::TMSBuffer* iBuffer;
     };
 
 } //namespace QTMS
--- a/qtms/inc/qtmsstreamimpl.h	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/inc/qtmsstreamimpl.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/inc/qtmsvolumeeffectimpl.h	Thu May 27 13:19:19 2010 +0300
@@ -50,9 +50,6 @@
 private:
     QTMSVolumeEffectImpl();
     gint PostConstruct();
-
-private:
-    gpointer iUserData;
     };
 
 } //namespace QTMS
--- a/qtms/inc/tmsutility.h	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/inc/tmsutility.h	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/qtmsapi.pro	Thu May 27 13:19:19 2010 +0300
@@ -19,28 +19,23 @@
 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)" \
                              "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" \
@@ -54,7 +49,6 @@
                $$OS_LAYER_LIBC_SYSTEMINCLUDE \
                $$OS_LAYER_GLIB_SYSTEMINCLUDE
 
-
 LIBS +=	-ltmsfactory \
         -ltmsapi \
         -ltmsutility \
@@ -63,7 +57,6 @@
         -llibgmodule \
         -llibstdcpp
 
-
 # $$_PRO_FILE_PWD_ points to the directory of the pro file
 MOC_DIR = ./tmp
 
@@ -100,13 +93,10 @@
            qtmsdtmf.h \
            qtmsinbandtone.h
 
-
-
 # Source
 SOURCES += qtmsfactory.cpp \
            qtmsfactoryimpl.cpp \
            qtmsmembuffer.cpp \
-           qtmsbufferimpl.cpp \
            qtmscall.cpp \
            qtmscallimpl.cpp \
            qtmsstream.cpp \
@@ -151,4 +141,5 @@
            qtmsinbandtone.cpp \
            qtmsinbandtoneimpl.cpp
 
-SYMBIAN_PLATFORMS = DEFAULT
\ No newline at end of file
+SYMBIAN_PLATFORMS = DEFAULT
+
--- a/qtms/rom/qtms.iby	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/rom/qtms.iby	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsamrimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +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 "tmsutility.h"
-#include "qtmsmembuffer.h"
-#include "qtmsbufferimpl.h"
-
-using namespace QTMS;
-
-gint QTMSBufferImpl::Create(QTMSBufferType buffertype, guint size,
-        QTMSBuffer*& tmsbuffer)
-    {
-    gint ret(TMS_RESULT_INSUFFICIENT_MEMORY);
-    TRACE_PRN_FN_ENT;
-    switch (buffertype)
-        {
-        case QTMS_BUFFER_MEMORY:
-            ret = QTMSMemBuffer::Create(size, tmsbuffer);
-            break;
-        default:
-            ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED;
-            break;
-        }
-
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-gint QTMSBufferImpl::Delete(QTMSBuffer*& tmsbuffer)
-    {
-    gint ret(TMS_RESULT_INVALID_ARGUMENT);
-    TRACE_PRN_FN_ENT;
-    QTMSBufferType buffertype;
-    ret = tmsbuffer->GetType(buffertype);
-    switch (buffertype)
-        {
-        case QTMS_BUFFER_MEMORY:
-            delete (QTMSMemBuffer*) (tmsbuffer);
-            tmsbuffer = NULL;
-            ret = QTMS_RESULT_SUCCESS;
-            break;
-        default:
-            ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED;
-            break;
-        }
-
-    TRACE_PRN_FN_EXT;
-    return ret;
-    }
-
-// End of file
--- a/qtms/src/qtmscall.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmscall.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsclientsink.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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/qtmsdtmfimpl.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsdtmfimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsfactoryimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -57,18 +57,23 @@
 
 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,12 @@
 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(strmtype,tmsfmtlist);
         }
 
     std::vector<TMSFormat*>::iterator itCodecs = tmsfmtlist.begin();
@@ -147,20 +156,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 +196,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 +218,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 +278,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 +311,31 @@
             ret = QTMS_RESULT_EFFECT_TYPE_NOT_SUPPORTED;
             break;
         }
-
+    TRACE_PRN_FN_EXT;
     return ret;
     }
 
 gint QTMSFactoryImpl::CreateBuffer(QTMSBufferType buffertype, guint size,
         QTMSBuffer*& qtmsbuffer)
     {
-    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(buffertype, size, tmsbuffer);
+        if (ret == TMS_RESULT_SUCCESS)
+            {
+            switch (buffertype)
+                {
+                case QTMS_BUFFER_MEMORY:
+                    ret = QTMSMemBuffer::Create(size, qtmsbuffer, tmsbuffer);
+                    break;
+                default:
+                    ret = QTMS_RESULT_BUFFER_TYPE_NOT_SUPPORTED;
+                    break;
+                }
+            }
         }
 
     TRACE_PRN_FN_EXT;
@@ -327,15 +344,19 @@
 
 gint QTMSFactoryImpl::DeleteBuffer(QTMSBuffer*& qtmsbuffer)
     {
+    TRACE_PRN_FN_ENT;
+    gint ret(QTMS_RESULT_SUCCESS);
     delete (static_cast<QTMSMemBuffer*> (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)
@@ -356,18 +377,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 +399,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,7 +423,8 @@
 
 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);
 
@@ -424,18 +446,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 +469,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,20 +506,24 @@
             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;
 
@@ -509,20 +536,24 @@
             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 +566,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 +595,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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsg711impl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsgaineffectimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsilbc.cpp	Thu May 27 13:19:19 2010 +0300
@@ -28,7 +28,6 @@
 
 QTMSILBCFormat::~QTMSILBCFormat()
     {
-    // iFormat is deleted with QTMSFormat::iFormat
     }
 
 gint QTMSILBCFormat::SetMode(const QTMSG711CodecMode aMode)
--- a/qtms/src/qtmsipcallbodyimpl.cpp	Fri May 14 16:21:14 2010 +0300
+++ /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	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsmembuffer.cpp	Thu May 27 13:19:19 2010 +0300
@@ -16,144 +16,140 @@
  */
 
 #include <qtms.h>
-#include <qtmsbuffer.h>
+#include <tmsbuffer.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()
     {
     }
 
 QTMSMemBuffer::~QTMSMemBuffer()
     {
-    if (iOwnsBuffer)
-        {
-        free(iDataPtr);
-        }
+    delete iBuffer;
     }
 
-gint QTMSMemBuffer::Create(guint size, QTMSBuffer*& tmsbuffer)
+gint QTMSMemBuffer::Create(guint size, QTMSBuffer*& qbuffer,
+        TMS::TMSBuffer*& tmsbuffer)
     {
+    TRACE_PRN_FN_ENT;
     gint ret(TMS_RESULT_INSUFFICIENT_MEMORY);
-    TRACE_PRN_FN_ENT;
     QTMSMemBuffer* self = new QTMSMemBuffer();
     if (self)
         {
-        ret = self->PostConstruct(size);
+        ret = self->PostConstruct();
         if (ret != TMS_RESULT_SUCCESS)
             {
             delete self;
             self = NULL;
             }
+        self->iBuffer = tmsbuffer;
         }
-    tmsbuffer = self;
+    qbuffer = self;
     TRACE_PRN_FN_EXT;
     return ret;
     }
 
-gint QTMSMemBuffer::PostConstruct(guint size)
+gint QTMSMemBuffer::PostConstruct()
     {
     gint ret(TMS_RESULT_SUCCESS);
-    TRACE_PRN_FN_ENT;
-    iDataPtr = (guint8*) malloc(size);
-    if (!iDataPtr)
-        {
-        ret = TMS_RESULT_INSUFFICIENT_MEMORY;
-        }
-    iOwnsBuffer = TRUE;
-    iBufferSize = size;
-    TRACE_PRN_FN_EXT;
     return ret;
     }
 
 gint QTMSMemBuffer::GetType(QTMSBufferType& buffertype)
     {
-    gint ret(TMS_RESULT_SUCCESS);
-    buffertype = TMS_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
-
- */
-gint QTMSMemBuffer::GetTimeStamp(guint64& ts)
-    {
-    gint ret(TMS_RESULT_SUCCESS);
-    ts = iTimeStamp;
+    gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBuffer)
+        {
+        ret = iBuffer->GetType(buffertype);
+        }
     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.
+ * 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(QTMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBuffer)
+        {
+        ret = iBuffer->GetTimeStamp(ts);
+        }
+    return ret;
+    }
 
- @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);
-    iTimeStamp = ts;
+    gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBuffer)
+        {
+        ret = iBuffer->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);
-    size = iBufferSize;
+    gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBuffer)
+        {
+        ret = iBuffer->GetDataSize(size);
+        }
     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_UNINITIALIZED_OBJECT);
+    if (iBuffer)
+        {
+        ret = iBuffer->SetDataSize(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);
-    bufptr = iDataPtr;
+    gint ret(QTMS_RESULT_UNINITIALIZED_OBJECT);
+    if (iBuffer)
+        {
+        ret = iBuffer->GetDataPtr(bufptr);
+        }
     return ret;
     }
-
--- a/qtms/src/qtmspcm.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmspcm.cpp	Thu May 27 13:19:19 2010 +0300
@@ -25,7 +25,6 @@
 
 QTMSPCMFormat::~QTMSPCMFormat()
     {
-    // iFormat is deleted with QTMSFormat::iFormat
     }
 
 // End of file
--- a/qtms/src/qtmssinkimpl.cpp	Fri May 14 16:21:14 2010 +0300
+++ /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	Fri May 14 16:21:14 2010 +0300
+++ /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/qtmsstreamimpl.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsstreamimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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/qtmsvolumeeffectimpl.cpp	Fri May 14 16:21:14 2010 +0300
+++ b/qtms/src/qtmsvolumeeffectimpl.cpp	Thu May 27 13:19:19 2010 +0300
@@ -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;
     }