Revision: 201031 RCL_3
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 19 Aug 2010 10:24:28 +0300
branchRCL_3
changeset 23 e42293e811d8
parent 22 b034b1c214c2
child 24 6c1dfe4da5dd
Revision: 201031 Kit: 201033
mmappcomponents/collectionhelper/inc/mpxcollectionhelperimp.h
mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp
mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp
mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h
mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp
mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataprovidercopyobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.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/cmoveobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp
mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestchecker.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/src/cmmmtpdpmetadataaccesswrapper.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp
mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp
mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp
mmappfw_plat/harvester_utility_api/tsrc/Conf/mpxharvestertest.cfg
mpx/collectionframework/collectionserver/group/mpxcollectionserver.mmp
mpx/commonframework/group/bld.inf
--- a/mmappcomponents/collectionhelper/inc/mpxcollectionhelperimp.h	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/collectionhelper/inc/mpxcollectionhelperimp.h	Thu Aug 19 10:24:28 2010 +0300
@@ -19,6 +19,9 @@
 #ifndef CMPXCOLLECTIONHELPERIMP_H
 #define CMPXCOLLECTIONHELPERIMP_H
 
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+
 #include "mpxcollectionhelper.h"
 #include "mpxharvesterutilityobserver.h"
 #include "mpxmediatorobserver.h"
@@ -41,7 +44,8 @@
 NONSHARABLE_CLASS( CMPXCollectionHelperImp ): public CBase,
                                               public MMPXCollectionHelper,
                                               public MMPXHarvesterUtilityObserver,
-                                              public MMPXMediatorObserver
+                                              public MMPXMediatorObserver,
+                                              public MThumbnailManagerObserver
     {
 public:
 
@@ -695,6 +699,18 @@
     */
     void HandleFileGetMediaCompletedL( CMPXMedia* aMedia, TInt aErr );
 
+public:
+    /**
+    * From MThumbnailManagerObserver
+    */
+    void ThumbnailPreviewReady( MThumbnailData& aThumbnail, 
+                                TThumbnailRequestId aId );
+    /**
+    * From MThumbnailManagerObserver
+    */
+    void ThumbnailReady( TInt aError,
+                         MThumbnailData& aThumbnail, 
+                         TThumbnailRequestId aId );
 private:
 
     /**
@@ -702,6 +718,13 @@
     * @param aMedia media item to add to the collection
     */
     void DoAddToCollectionL( CMPXMedia* aMedia );
+    
+    /**
+    * Rename the thumbnail through thumbnail manager
+    * @param aOldUri exiting uri of the song
+    * @param aNewUri new uri of the song
+    */
+    void RenameThumbnailL( const TDesC& aOldUri, const TDesC& aNewUri );
 
 protected:
 
@@ -720,7 +743,8 @@
     MMPXHarvesterUtility*   iHvsUtility;
     MMPXCollectionUtility*  iCollectionUtil;
     CMPXCollectionMediator* iMediator;
-
+    
+    CThumbnailManager*      iTNManager; // owned
     MMPXCollectionHelperObserver* iObserver;  // not owned
     TUid                          iMusicCollectionId;
     TBool                         iInitialized;
--- a/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Extended collection helper with an internal caching array
-*  Version     : %version: da1mmcf#27.1.12.1.2 % 
+*  Version     : %version: e003sa33#27.1.12.1.3 % 
 *
 */
 
@@ -395,6 +395,11 @@
     // Not found in the array
     if( !media )
         {
+        // If the catched count is more than KCacheCount, commit it to database.
+        if( count >= KCacheCount )
+            {
+            Commit();
+            }
         CMPXMedia* copy = CMPXMedia::NewL( *aMedia );
         CleanupStack::PushL( copy );
         iCache->AppendL( copy );  // ownership x-fer
--- a/mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -25,6 +25,7 @@
 #include <mpxcollectionutility.h>
 #include <mpxharvesterutility.h>
 #include <mpxmediageneraldefs.h>
+#include <mpxmediamusicdefs.h>
 #include <mpxmediacontainerdefs.h>
 #include <mpxuser.h>
 #include <mpxcollectionplugin.hrh>
@@ -45,6 +46,7 @@
 // ---------------------------------------------------------------------------
 //
 CMPXCollectionHelperImp::CMPXCollectionHelperImp()
+    : iTNManager(NULL)
     {
     }
 
@@ -59,7 +61,7 @@
     iCollectionUtil = MMPXCollectionUtility::NewL();
     iMediator = CMPXCollectionMediator::NewL( iCollectionUtil->Collection(),
                                               this );
-
+    
     RArray<TUid> ary;
     CleanupClosePushL( ary );
     ary.AppendL( TUid::Uid(EMPXCollectionPluginMusic) );
@@ -111,6 +113,8 @@
         iCollectionUtil->Close();
         }
     delete iMediator;
+    
+    delete iTNManager;
     }
 
 
@@ -416,11 +420,28 @@
     RArray<TMPXAttribute> attributes;
     CleanupClosePushL( attributes );
     attributes.AppendL(KMPXMediaGeneralId);
+    attributes.AppendL(KMPXMediaMusicAlbumArtFileName);
 
     CMPXMedia* media = GetL(aOldUri, attributes.Array(), aItemCat);
     CleanupStack::PopAndDestroy(&attributes);
     CleanupStack::PushL(media);
 
+    const TDesC& fileName(media->ValueText(KMPXMediaMusicAlbumArtFileName));
+    
+    // the songs have embedded albumart.
+    if(fileName.CompareF(aOldUri) == 0)
+        {
+        // change the Art filename to the new Uri
+        media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, aNewUri);
+        
+        // Rename the thumbnail
+        TRAPD(err, RenameThumbnailL(aOldUri, aNewUri));
+        if(KErrNone != err)
+            {
+            MPX_DEBUG2("Thumbnail renames failed. Err: %d", err);
+            }
+        }
+
     // change file path to the new file path
     media->SetTextValueL(KMPXMediaGeneralUri, aNewUri);
 
@@ -735,4 +756,41 @@
     delete this;
     }
 
+// ---------------------------------------------------------------------------
+// Rename the thumbnail through TNM
+// ---------------------------------------------------------------------------
+//
+void CMPXCollectionHelperImp::RenameThumbnailL( const TDesC& aOldUri, 
+                                         const TDesC& aNewUri )
+    {
+    MPX_FUNC("CMPXCollectionHelperImp::RenameThumbnailL");
+    
+    // Create Thumbnail Manager instance when use first time.
+    if(NULL == iTNManager)
+        {      
+        iTNManager = CThumbnailManager::NewL( *this ); 
+        }
+    
+    // Rename thumbnail
+    iTNManager->RenameThumbnailsL(aOldUri, aNewUri, 0);
+    }
+
+// ---------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::ThumbnailReady
+// Callback but not used here
+// ---------------------------------------------------------------------------
+void CMPXCollectionHelperImp::ThumbnailPreviewReady(
+        MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
+    {
+    }
+
+
+// ---------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::ThumbnailReady
+// Callback but not used here
+// ---------------------------------------------------------------------------
+void CMPXCollectionHelperImp::ThumbnailReady( TInt /*aError*/,
+        MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
+    {
+    }
 // End of file
--- a/mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/inc/mpxdbcommon.h	Thu Aug 19 10:24:28 2010 +0300
@@ -24,11 +24,11 @@
 // Please update the increment number for each increment 
 // Please update the version number for each schema change
 #ifdef ABSTRACTAUDIOALBUM_INCLUDED
-_LIT( KHarvesterDBName, "harvesterdbv10_0.dat" );
-_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_0i.dat" );
+_LIT( KHarvesterDBName, "harvesterdbv10_1.dat" );
+_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_1i.dat" );
 #else
-_LIT( KHarvesterDBName, "harvesterdbv10_0n.dat" );
-_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_0in.dat" );
+_LIT( KHarvesterDBName, "harvesterdbv10_1n.dat" );
+_LIT( KHarvesterDBNameEMMC, "harvesterdbv10_1in.dat" );
 #endif 
 _LIT( KHarvesterDBPattern, "harvesterdbv*.dat" );
 
--- a/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  This class is responsible for reading file info
-*  Version     : %version: da1mmcf#5.1.3.1.8 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: e003sa33#5.1.3.1.10 % << Don't touch! Updated by Synergy at check-out.
 *
 *  Copyright © 2005 Nokia. All rights reserved.
 */
@@ -81,8 +81,8 @@
     iMMFControllers.ResetAndDestroy();
     iMMFControllers.Close();
     
-    // delete non cached controller
-    if(iController)
+    //delete non cached Helix controller
+    if( iController && ( iCurrentControllerUid == 0x10207B65 ) )
         {
         iController->Close();
         delete iController;
@@ -163,9 +163,6 @@
                                                  buf->Ptr(0),
                                                  dataSource));
     
-    MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()- AddDataSink()");
-    User::LeaveIfError(iController->AddDataSink(KUidMmfAudioOutput,
-                                               KNullDesC8));
     CleanupStack::PopAndDestroy(buf);
     
     MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()--->");
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -12,7 +12,7 @@
 * Contributors:
 *
 * Description:  Extracts metadata from a file
-*  Version     : %version: da1mmcf#38.1.4.2.6.1.14 % << Don't touch! Updated by Synergy at check-out.
+*  Version     : %version: da1mmcf#38.1.4.2.6.1.15 % << Don't touch! Updated by Synergy at check-out.
 *
 */
 
@@ -432,6 +432,50 @@
                     }
                 break;
                 }
+            case EMetaDataSampleRate:     
+                {                  
+                const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
+                MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);   
+                
+                // Verify if WMA, get the sample rate
+                if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
+                    {
+                    MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");                         
+
+                    // Perform the sample rate conversion
+                    TLex lexer( *value );
+                    TInt32 sampleRate ( 0 );
+                    lexer.Val( sampleRate );         
+                    
+                    iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioSamplerate,
+                                                      sampleRate );
+                           
+                    MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- sample rate = %i", sampleRate);  
+                    }
+                break;
+                }
+            case EMetaDataBitRate:     
+                {                  
+                const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
+                MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);   
+                
+                // Verify if WMA, get the duration
+                if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
+                    {
+                    MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");                         
+
+                    // Perform the duration conversion
+                    TLex lexer( *value );
+                    TInt32 bitRate ( 0 );
+                    lexer.Val( bitRate );   
+                
+                    iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
+                                                     bitRate );
+                
+                    MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", bitRate);  
+                    }
+                break;
+                }
             case EMetaDataOriginalArtist:  // fall through
             case EMetaDataVendor:          // fall through
             case EMetaDataRating:          // fall through
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataprovidercopyobject.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/src/cmediamtpdataprovidercopyobject.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -222,10 +222,6 @@
         {
         iPropertyElement = NULL;
         }
-    else
-        {
-        User::LeaveIfError( err );
-        }
     PRINT( _L( "MM MTP <= CMediaMtpDataProviderCopyObject::ServiceSpecificObjectPropertyL" ) );
     }
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def	Thu Aug 19 10:24:28 2010 +0300
@@ -8,143 +8,144 @@
 	?UpdateMusicCollectionL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 7 NONAME ; void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL(class TDesC16 const &)
 	?Release@CRequestProcessor@@MAEXXZ @ 8 NONAME ; void CRequestProcessor::Release(void)
 	?HandleRequestL@CRequestProcessor@@MAEHABVTMTPTypeRequest@@W4TMTPTransactionPhase@@@Z @ 9 NONAME ; int CRequestProcessor::HandleRequestL(class TMTPTypeRequest const &, enum TMTPTransactionPhase)
-	??1CGetInterdependentPropDesc@@UAE@XZ @ 10 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void)
-	?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 11 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void)
-	?ServiceL@CGetPartialObject@@MAEXXZ @ 12 NONAME ; void CGetPartialObject::ServiceL(void)
-	?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 13 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
-	?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 14 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 16 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
-	?RunL@CRequestProcessor@@MAEXXZ @ 17 NONAME ; void CRequestProcessor::RunL(void)
-	?ServiceL@CDeleteObject@@MAEXXZ @ 18 NONAME ; void CDeleteObject::ServiceL(void)
-	?DoCancel@CSetObjectPropList@@MAEXXZ @ 19 NONAME ; void CSetObjectPropList::DoCancel(void)
-	?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 20 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
-	?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 21 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
-	?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 22 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 23 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
-	?UsbDisconnect@CSendObject@@MAEXXZ @ 24 NONAME ; void CSendObject::UsbDisconnect(void)
-	?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 25 NONAME ; void CGetFormatCapabilities::ServiceL(void)
-	??1CSetObjectPropList@@UAE@XZ @ 26 NONAME ; CSetObjectPropList::~CSetObjectPropList(void)
-	?ServiceL@CSetObjectPropList@@MAEXXZ @ 27 NONAME ; void CSetObjectPropList::ServiceL(void)
-	??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 28 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ConstructL@CGetObjectPropList@@IAEXXZ @ 29 NONAME ; void CGetObjectPropList::ConstructL(void)
-	??1CSendObject@@UAE@XZ @ 30 NONAME ; CSendObject::~CSendObject(void)
-	?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 31 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 32 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CGetObjectPropValue@@UAE@XZ @ 33 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void)
-	?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 34 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void)
-	?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 35 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &)
-	??1CGetFormatCapabilities@@UAE@XZ @ 36 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void)
-	?ServiceL@CSetObjectReferences@@EAEXXZ @ 37 NONAME ; void CSetObjectReferences::ServiceL(void)
-	?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 38 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void)
-	??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 39 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ConstructL@CCopyObject@@IAEXXZ @ 40 NONAME ; void CCopyObject::ConstructL(void)
-	?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 41 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?ServiceL@CGetObjectPropValue@@MAEXXZ @ 42 NONAME ; void CGetObjectPropValue::ServiceL(void)
-	??1CRenameObject@@UAE@XZ @ 43 NONAME ; CRenameObject::~CRenameObject(void)
-	?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 44 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const
-	?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 45 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void)
-	?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 46 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &)
-	?RunL@CRenameObject@@MAEXXZ @ 47 NONAME ; void CRenameObject::RunL(void)
-	?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 48 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus)
-	??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 49 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *)
-	?ServiceL@CSendObject@@MAEXXZ @ 50 NONAME ; void CSendObject::ServiceL(void)
-	?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 51 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const
-	?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 52 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
-	?DoCancel@CRequestProcessor@@MAEXXZ @ 53 NONAME ; void CRequestProcessor::DoCancel(void)
-	?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 54 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
-	?ConstructL@CGetObjectInfo@@AAEXXZ @ 55 NONAME ; void CGetObjectInfo::ConstructL(void)
-	?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 56 NONAME ; void CRequestProcessor::UsbDisconnect(void)
-	??1CMoveObject@@UAE@XZ @ 57 NONAME ; CMoveObject::~CMoveObject(void)
-	?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 58 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
-	??1CRequestProcessor@@MAE@XZ @ 59 NONAME ; CRequestProcessor::~CRequestProcessor(void)
-	?DoCancel@CDeleteObject@@MAEXXZ @ 60 NONAME ; void CDeleteObject::DoCancel(void)
-	??1CGetObject@@UAE@XZ @ 61 NONAME ; CGetObject::~CGetObject(void)
-	?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 62 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 63 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &)
-	?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 64 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void)
-	?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 65 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void)
-	??1CGetObjectPropsSupported@@UAE@XZ @ 66 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void)
-	?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 67 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void)
-	?HasDataphase@CRequestProcessor@@MBEHXZ @ 68 NONAME ; int CRequestProcessor::HasDataphase(void) const
-	?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 69 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 70 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const
-	??1CPropertySettingUtility@@UAE@XZ @ 71 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void)
-	??1CGetPartialObject@@UAE@XZ @ 72 NONAME ; CGetPartialObject::~CGetPartialObject(void)
-	?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 73 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?RunError@CSetObjectPropList@@MAEHH@Z @ 74 NONAME ; int CSetObjectPropList::RunError(int)
-	?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 75 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void)
-	?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 76 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
-	?ServiceL@CMoveObject@@MAEXXZ @ 77 NONAME ; void CMoveObject::ServiceL(void)
-	?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 78 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &)
-	?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 79 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void)
-	?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 80 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void)
-	?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 81 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 82 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &)
-	?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 83 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
-	?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 84 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void)
-	??0CPropertySettingUtility@@IAE@XZ @ 85 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void)
-	?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 86 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
-	??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 87 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 88 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void)
-	?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 89 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *)
-	?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 90 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void)
-	?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 91 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void)
-	?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 92 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &)
-	??1CGetObjectInfo@@UAE@XZ @ 93 NONAME ; CGetObjectInfo::~CGetObjectInfo(void)
-	?ServiceL@CRequestUnknown@@MAEXXZ @ 94 NONAME ; void CRequestUnknown::ServiceL(void)
-	?HasDataphase@CSetObjectPropList@@MBEHXZ @ 95 NONAME ; int CSetObjectPropList::HasDataphase(void) const
-	?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 96 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?DoCancel@CRenameObject@@MAEXXZ @ 97 NONAME ; void CRenameObject::DoCancel(void)
-	??1CSetObjectReferences@@UAE@XZ @ 98 NONAME ; CSetObjectReferences::~CSetObjectReferences(void)
-	?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 99 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
-	?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CCopyObject@@UAE@XZ @ 101 NONAME ; CCopyObject::~CCopyObject(void)
-	?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 102 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &)
-	?RunL@CGetObjectPropList@@MAEXXZ @ 103 NONAME ; void CGetObjectPropList::RunL(void)
-	?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 104 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int)
-	?RunError@CRequestProcessor@@MAEHH@Z @ 105 NONAME ; int CRequestProcessor::RunError(int)
-	?SessionId@CRequestProcessor@@MAEKXZ @ 106 NONAME ; unsigned long CRequestProcessor::SessionId(void)
-	??0CDescriptionUtility@@IAE@XZ @ 107 NONAME ; CDescriptionUtility::CDescriptionUtility(void)
-	?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 108 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &)
-	?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 109 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?HasDataphase@CSetObjectReferences@@EBEHXZ @ 110 NONAME ; int CSetObjectReferences::HasDataphase(void) const
-	?RunError@CGetObjectPropList@@MAEHH@Z @ 111 NONAME ; int CGetObjectPropList::RunError(int)
-	?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 112 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void)
-	?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 113 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
-	?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 114 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &)
-	?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 115 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
-	?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAVCDesC16Array@@W4TMPXGeneralCategory@@@Z @ 116 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CDesC16Array &, enum TMPXGeneralCategory)
-	?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 117 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &)
-	??1CGetObjectPropDesc@@UAE@XZ @ 118 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void)
-	?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 119 NONAME ; void CGetObjectPropDesc::ServiceL(void)
-	?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 120 NONAME ; int CSetObjectPropValue::HasDataphase(void) const
-	?ServiceL@CCopyObject@@MAEXXZ @ 121 NONAME ; void CCopyObject::ServiceL(void)
-	?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 122 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void)
-	?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 123 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void)
-	?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 125 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &)
-	??1CDescriptionUtility@@UAE@XZ @ 126 NONAME ; CDescriptionUtility::~CDescriptionUtility(void)
-	?ConstructL@CMoveObject@@IAEXXZ @ 127 NONAME ; void CMoveObject::ConstructL(void)
-	?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 128 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	?RunL@CSetObjectPropList@@MAEXXZ @ 129 NONAME ; void CSetObjectPropList::RunL(void)
-	??1CGetObjectReferences@@UAE@XZ @ 130 NONAME ; CGetObjectReferences::~CGetObjectReferences(void)
-	?HasDataphase@CSendObject@@MBEHXZ @ 131 NONAME ; int CSendObject::HasDataphase(void) const
-	??1CSetObjectPropValue@@UAE@XZ @ 132 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void)
-	?ConstructL@CRenameObject@@IAEXXZ @ 133 NONAME ; void CRenameObject::ConstructL(void)
-	?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 134 NONAME ; int CSendObject::DoHandleResponsePhaseL(void)
-	?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 135 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &)
-	?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 136 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
-	?DoCancel@CGetObjectPropList@@MAEXXZ @ 137 NONAME ; void CGetObjectPropList::DoCancel(void)
-	?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 138 NONAME ; void CGetInterdependentPropDesc::ServiceL(void)
-	?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 139 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void)
-	?ServiceL@CSetObjectPropValue@@MAEXXZ @ 140 NONAME ; void CSetObjectPropValue::ServiceL(void)
-	?RunError@CRenameObject@@MAEHH@Z @ 141 NONAME ; int CRenameObject::RunError(int)
-	??1CDeleteObject@@UAE@XZ @ 142 NONAME ; CDeleteObject::~CDeleteObject(void)
-	?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 143 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void)
-	??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 144 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
-	??1CGetObjectPropList@@UAE@XZ @ 145 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
-	?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 146 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void)
-	??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 147 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+	?DoHandleCompletingPhaseL@CDeleteObject@@MAEHXZ @ 10 NONAME ; int CDeleteObject::DoHandleCompletingPhaseL(void)
+	??1CGetInterdependentPropDesc@@UAE@XZ @ 11 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void)
+	?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 12 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void)
+	?ServiceL@CGetPartialObject@@MAEXXZ @ 13 NONAME ; void CGetPartialObject::ServiceL(void)
+	?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)
+	??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 &)
+	?ConstructL@CGetObjectPropList@@IAEXXZ @ 30 NONAME ; void CGetObjectPropList::ConstructL(void)
+	??1CSendObject@@UAE@XZ @ 31 NONAME ; CSendObject::~CSendObject(void)
+	?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 32 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 33 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CGetObjectPropValue@@UAE@XZ @ 34 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void)
+	?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 35 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(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)
+	?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 49 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus)
+	??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
+	?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 53 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
+	?DoCancel@CRequestProcessor@@MAEXXZ @ 54 NONAME ; void CRequestProcessor::DoCancel(void)
+	?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 55 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
+	?ConstructL@CGetObjectInfo@@AAEXXZ @ 56 NONAME ; void CGetObjectInfo::ConstructL(void)
+	?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 57 NONAME ; void CRequestProcessor::UsbDisconnect(void)
+	??1CMoveObject@@UAE@XZ @ 58 NONAME ; CMoveObject::~CMoveObject(void)
+	?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 59 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
+	??1CRequestProcessor@@MAE@XZ @ 60 NONAME ; CRequestProcessor::~CRequestProcessor(void)
+	?DoCancel@CDeleteObject@@MAEXXZ @ 61 NONAME ; void CDeleteObject::DoCancel(void)
+	??1CGetObject@@UAE@XZ @ 62 NONAME ; CGetObject::~CGetObject(void)
+	?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 63 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?AddObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 64 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddObjectL(class CMTPObjectMetaData const &)
+	?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 65 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void)
+	?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 66 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void)
+	??1CGetObjectPropsSupported@@UAE@XZ @ 67 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void)
+	?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 68 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void)
+	?HasDataphase@CRequestProcessor@@MBEHXZ @ 69 NONAME ; int CRequestProcessor::HasDataphase(void) const
+	?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 70 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 71 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const
+	??1CPropertySettingUtility@@UAE@XZ @ 72 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void)
+	??1CGetPartialObject@@UAE@XZ @ 73 NONAME ; CGetPartialObject::~CGetPartialObject(void)
+	?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 74 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?RunError@CSetObjectPropList@@MAEHH@Z @ 75 NONAME ; int CSetObjectPropList::RunError(int)
+	?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 76 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void)
+	?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 77 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+	?ServiceL@CMoveObject@@MAEXXZ @ 78 NONAME ; void CMoveObject::ServiceL(void)
+	?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 79 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &)
+	?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 80 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void)
+	?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 81 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void)
+	?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 82 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 83 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &)
+	?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 84 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
+	?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 85 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void)
+	??0CPropertySettingUtility@@IAE@XZ @ 86 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void)
+	?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 87 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+	??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 88 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 89 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void)
+	?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 90 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *)
+	?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 91 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void)
+	?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 92 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void)
+	?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 93 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &)
+	??1CGetObjectInfo@@UAE@XZ @ 94 NONAME ; CGetObjectInfo::~CGetObjectInfo(void)
+	?ServiceL@CRequestUnknown@@MAEXXZ @ 95 NONAME ; void CRequestUnknown::ServiceL(void)
+	?HasDataphase@CSetObjectPropList@@MBEHXZ @ 96 NONAME ; int CSetObjectPropList::HasDataphase(void) const
+	?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 97 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?DoCancel@CRenameObject@@MAEXXZ @ 98 NONAME ; void CRenameObject::DoCancel(void)
+	??1CSetObjectReferences@@UAE@XZ @ 99 NONAME ; CSetObjectReferences::~CSetObjectReferences(void)
+	?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 100 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+	?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 101 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CCopyObject@@UAE@XZ @ 102 NONAME ; CCopyObject::~CCopyObject(void)
+	?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 103 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &)
+	?RunL@CGetObjectPropList@@MAEXXZ @ 104 NONAME ; void CGetObjectPropList::RunL(void)
+	?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 105 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int)
+	?RunError@CRequestProcessor@@MAEHH@Z @ 106 NONAME ; int CRequestProcessor::RunError(int)
+	?SessionId@CRequestProcessor@@MAEKXZ @ 107 NONAME ; unsigned long CRequestProcessor::SessionId(void)
+	??0CDescriptionUtility@@IAE@XZ @ 108 NONAME ; CDescriptionUtility::CDescriptionUtility(void)
+	?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 109 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &)
+	?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 110 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?HasDataphase@CSetObjectReferences@@EBEHXZ @ 111 NONAME ; int CSetObjectReferences::HasDataphase(void) const
+	?RunError@CGetObjectPropList@@MAEHH@Z @ 112 NONAME ; int CGetObjectPropList::RunError(int)
+	?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 113 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void)
+	?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 114 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+	?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 115 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &)
+	?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 116 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+	?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAVCDesC16Array@@W4TMPXGeneralCategory@@@Z @ 117 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CDesC16Array &, enum TMPXGeneralCategory)
+	?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 118 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &)
+	??1CGetObjectPropDesc@@UAE@XZ @ 119 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void)
+	?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 120 NONAME ; void CGetObjectPropDesc::ServiceL(void)
+	?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 121 NONAME ; int CSetObjectPropValue::HasDataphase(void) const
+	?ServiceL@CCopyObject@@MAEXXZ @ 122 NONAME ; void CCopyObject::ServiceL(void)
+	?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 123 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void)
+	?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 124 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void)
+	?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 125 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 126 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &)
+	??1CDescriptionUtility@@UAE@XZ @ 127 NONAME ; CDescriptionUtility::~CDescriptionUtility(void)
+	?ConstructL@CMoveObject@@IAEXXZ @ 128 NONAME ; void CMoveObject::ConstructL(void)
+	?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 129 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	?RunL@CSetObjectPropList@@MAEXXZ @ 130 NONAME ; void CSetObjectPropList::RunL(void)
+	??1CGetObjectReferences@@UAE@XZ @ 131 NONAME ; CGetObjectReferences::~CGetObjectReferences(void)
+	?HasDataphase@CSendObject@@MBEHXZ @ 132 NONAME ; int CSendObject::HasDataphase(void) const
+	??1CSetObjectPropValue@@UAE@XZ @ 133 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void)
+	?ConstructL@CRenameObject@@IAEXXZ @ 134 NONAME ; void CRenameObject::ConstructL(void)
+	?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 135 NONAME ; int CSendObject::DoHandleResponsePhaseL(void)
+	?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 136 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &)
+	?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 137 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
+	?DoCancel@CGetObjectPropList@@MAEXXZ @ 138 NONAME ; void CGetObjectPropList::DoCancel(void)
+	?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 139 NONAME ; void CGetInterdependentPropDesc::ServiceL(void)
+	?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 140 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void)
+	?ServiceL@CSetObjectPropValue@@MAEXXZ @ 141 NONAME ; void CSetObjectPropValue::ServiceL(void)
+	?RunError@CRenameObject@@MAEHH@Z @ 142 NONAME ; int CRenameObject::RunError(int)
+	??1CDeleteObject@@UAE@XZ @ 143 NONAME ; CDeleteObject::~CDeleteObject(void)
+	?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 144 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void)
+	??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 145 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+	??1CGetObjectPropList@@UAE@XZ @ 146 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
+	?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 147 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void)
 	?ServiceL@CGetObjectPropList@@MAEXXZ @ 148 NONAME ; void CGetObjectPropList::ServiceL(void)
+	??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 149 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def	Thu Aug 19 10:24:28 2010 +0300
@@ -262,4 +262,5 @@
 	_ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 261 NONAME
 	_ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 262 NONAME
 	_ZThn28_NK17CRequestProcessor7RequestEv @ 263 NONAME
+	_ZN13CDeleteObject24DoHandleCompletingPhaseLEv @ 264 NONAME
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/cdeleteobject.h	Thu Aug 19 10:24:28 2010 +0300
@@ -77,6 +77,11 @@
     */
     IMPORT_C void DoCancel();
 
+    /**
+    * Completeing phase Handler
+    */
+    IMPORT_C TBool DoHandleCompletingPhaseL();
+
 private:
     void ConstructL();
     /**
@@ -114,6 +119,12 @@
     // Keeps track of whether any files where deleted
     TBool iIsMultiDelete;
 
+    // Keeps track of the respone code when it is EMTPRespCodeDeviceBusy
+    TBool iDeviceBusy;
+
+    // Keeps track of the count of EMTPRespCodeDeviceBusy that return to PC
+    TInt iCountDeviceBusyError;
+
     // Accessor of DB
     MMmMtpDpConfig& iDpConfig;
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -310,9 +310,9 @@
     SetPreviousPropertiesL();
 
     CFileMan* fileMan = CFileMan::NewL( iFramework.Fs() );
+    CleanupStack::PushL( fileMan ); // + fileMan
     User::LeaveIfError( fileMan->Copy( oldFileName, aNewFileName ) );
-    delete fileMan;
-    fileMan = NULL;
+    CleanupStack::PopAndDestroy( fileMan ); // - fileMan
 
     PRINT( _L( "MM MTP <= CCopyObject::CopyFileL" ) );
     return handle;
@@ -417,8 +417,6 @@
     {
     PRINT( _L( "MM MTP => CCopyObject::SetPreviousPropertiesL" ) );
 
-    TMTPResponseCode respcode = EMTPRespCodeOK;
-
     iPropertyList->ResetCursor();
     const TInt count = iPropertyList->NumberOfElements();
     for ( TInt i = 0; i < count; i++ )
@@ -460,7 +458,7 @@
                 {
                 CMTPTypeString *stringData = CMTPTypeString::NewLC( element.StringL( CMTPTypeObjectPropListElement::EValue ) ); // + stringData
 
-                respcode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
+                iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
                     propertyCode,
                     *stringData,
                     *iTargetObject );
@@ -471,7 +469,7 @@
 
             default:
                 {
-                respcode = iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
+                iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
                     propertyCode,
                     *iTargetObject,
                     element );
@@ -480,13 +478,7 @@
             }
         } // end of for loop
 
-    // ignore errors
-    if ( respcode == EMTPRespCodeOK )
-        {
-        // do nothing, just to get rid of build warning
-        }
-
-    PRINT1( _L( "MM MTP <= CCopyObject::SetPreviousPropertiesL respcode = 0x%x" ), respcode );
+    PRINT( _L( "MM MTP <= CCopyObject::SetPreviousPropertiesL" ) );
     }
 
 // -----------------------------------------------------------------------------
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -26,6 +26,7 @@
 #include "mmmtpdputility.h"
 
 const TInt KMaxDeletionTimes = 10;
+const TInt KMaxDeviceBusyTimes = 3;
 const TInt KDeletionThreshold = 100 * 1000; // (100 millisec)
 
 // -----------------------------------------------------------------------------
@@ -294,6 +295,25 @@
     }
 
 // -----------------------------------------------------------------------------
+// CDeleteObject::DoHandleCompletingPhaseL
+// Completeing phase Handler
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TBool CDeleteObject::DoHandleCompletingPhaseL()
+    {
+    CRequestProcessor::DoHandleCompletingPhaseL();
+
+    // If the response code is EMTPRespCodeDeviceBusy, don't release this object
+    TBool result = !iDeviceBusy;
+
+    PRINT2( _L( "MM MTP <> CDeleteObject::DoHandleCompletingPhaseL iDeleteError= %d, result = %d" ),
+            iDeleteError,
+            result );
+
+    return result;
+    }
+
+// -----------------------------------------------------------------------------
 // CDeleteObject::ProcessFinalPhaseL
 // Delete all of the associations if file deletion was successful
 // Then signals that the deletion has been completed
@@ -305,6 +325,7 @@
 
     TInt num = iObjectsToDelete.Count();
     TBool isOk = iDeleteError == KErrNone || iDeleteError == KErrNotFound;
+    iDeviceBusy = EFalse;
 
     if ( num == 0 && isOk )
         {
@@ -315,12 +336,15 @@
         SendResponseL( EMTPRespCodePartialDeletion );
         }
     else if ( !iIsMultiDelete && iDeleteError == KErrAccessDenied )
-        {
+        { 
         SendResponseL( EMTPRespCodeObjectWriteProtected );
         }
-    else if ( iDeleteError == KErrInUse )
+    else if ( iDeleteError == KErrInUse 
+            && iCountDeviceBusyError < KMaxDeviceBusyTimes )
         {
+        iCountDeviceBusyError++;
         SendResponseL( EMTPRespCodeDeviceBusy );
+        iDeviceBusy = ETrue;
         }
     else
         {
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -95,7 +95,6 @@
 //
 EXPORT_C void CGetObjectInfo::ConstructL()
     {
-    CActiveScheduler::Add( this );
     }
 
 // -----------------------------------------------------------------------------
@@ -106,7 +105,7 @@
 void CGetObjectInfo::ServiceL()
     {
     PRINT( _L( "MM MTP => CGetObjectInfo::ServiceL" ) );
-    
+
     MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
 
     delete iObjectInfo;
@@ -174,8 +173,13 @@
     // Image Bit Depth
     iObjectInfo->SetUint32L( CMTPTypeObjectInfo::EImageBitDepth, 0 );
     // Parent Object
-    iObjectInfo->SetUint32L( CMTPTypeObjectInfo::EParentObject,
-        object->Uint( CMTPObjectMetaData::EParentHandle ) );
+    TUint32 parentHandle = object->Uint( CMTPObjectMetaData::EParentHandle );
+    // refer to 5.3.1.9 of MTP Spec 1.0
+    if ( parentHandle == KMTPHandleNoParent )
+        {
+        parentHandle = KMTPHandleNone;
+        }
+    iObjectInfo->SetUint32L( CMTPTypeObjectInfo::EParentObject, parentHandle );
     // Association Type
     iObjectInfo->SetUint16L( CMTPTypeObjectInfo::EAssociationType, 0 );
     // Association Description
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -500,29 +500,11 @@
         properties = iDpConfig.GetSupportedPropertiesL( formatCode );
 
     const TInt count = properties->Count();
-
-    TInt err = KErrNone;
-    TBool successQuery = EFalse;
     for ( TInt i = 0; i < count; i++ )
         {
-        // no need to do the trap anymore, this is being handle internally in Media DP's ServiceSpecificObjectPropertyL,
-        // also, this base class should not know too much of different handling between different formats
-        err = ServiceOneObjectPropertyL( aHandle, (*properties)[i] );
-        if ( err == KErrNone )
-            successQuery = ETrue;
-        if ( err == KErrNotSupported || err == KErrNotFound )  // Skip
-            err = KErrNone;
-        if ( err != KErrNone )
-            break;
+        ServiceOneObjectPropertyL( aHandle, (*properties)[i] );
         }
-
-    // In PC Suite combined mode, a file that was found at the beginning could be deleted by PC Suite protocol
-    // Need to fail it here.
-    if ( successQuery == EFalse )
-        err = KErrNotFound;
-
-    PRINT1( _L( "MM MTP <= CGetObjectPropList::ServiceAllPropertiesL err = %d" ), err );
-    return err;
+    return KErrNone;
     }
 
 // -----------------------------------------------------------------------------
@@ -626,17 +608,10 @@
         // Filename
         case EMTPObjectPropCodeObjectFileName:
             {
-#ifdef  _DEBUG
-            HBufC* log = iObject->DesC( CMTPObjectMetaData::ESuid ).Alloc();
-            PRINT1( _L( "MM MTP <> CGetObjectPropList::ServiceOneObjectPropertyL FileName = %S" ), log );
-            delete log;
-            log = NULL;
-#endif // _DEBUG
             TParsePtrC parse( iObject->DesC( CMTPObjectMetaData::ESuid ) );
-            textData = CMTPTypeString::NewLC( parse.NameAndExt() );    // + textData
+            PRINT1( _L( "MM MTP <> CGetObjectPropList::ServiceOneObjectPropertyL FileName = %S" ), &parse.FullName() );
             iPropertyElement = &( iPropertyList->ReservePropElemL( aHandle, aPropCode) );
-            iPropertyElement->SetStringL( CMTPTypeObjectPropListElement::EValue, textData->StringChars() );
-            CleanupStack::PopAndDestroy( textData );    // - textData
+            iPropertyElement->SetStringL( CMTPTypeObjectPropListElement::EValue, parse.NameAndExt() );
             }
             break;
 
@@ -644,7 +619,13 @@
         case EMTPObjectPropCodeParentObject:
             {
             iPropertyElement = &( iPropertyList->ReservePropElemL( aHandle, aPropCode ) );
-            iPropertyElement->SetUint32L( CMTPTypeObjectPropListElement::EValue, iObject->Uint( CMTPObjectMetaData::EParentHandle ) );
+            TUint32 parentHandle = iObject->Uint( CMTPObjectMetaData::EParentHandle );
+            // refer to 5.3.1.9 of MTP Spec 1.0
+            if ( parentHandle == KMTPHandleNoParent )
+                {
+                parentHandle = KMTPHandleNone;
+                }
+            iPropertyElement->SetUint32L( CMTPTypeObjectPropListElement::EValue, parentHandle );
             }
             break;
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -205,8 +205,15 @@
         // Parent
         case EMTPObjectPropCodeParentObject:
             {
-            iMTPTypeUint32.Set( 0 );
-            iMTPTypeUint32 = iObjectInfo->Uint( CMTPObjectMetaData::EParentHandle );
+            iMTPTypeUint32.Set( KMTPHandleNone );
+
+            TUint32 parentHandle = iObjectInfo->Uint( CMTPObjectMetaData::EParentHandle );
+            // refer to 5.3.1.9 of MTP Spec 1.0
+            if ( parentHandle != KMTPHandleNoParent )
+                {
+                iMTPTypeUint32.Set( parentHandle );
+                }
+
             SendDataL( iMTPTypeUint32 );
             }
             break;
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -204,12 +204,10 @@
     PRINT2( _L("MM MTP => CGetObjectReferences::AddReferencesL aRefOwnerSuid = %S, ref count = %d"), &aRefOwnerSuid, count );
 
     // check if references are valid
-    TInt removeCount = 0;
-    for ( TInt i = 0; i < count; i++ )
+    for ( TInt i = count-1; i >= 0; i-- )
         {
-        TInt index = i - removeCount;
-        TPtrC temp( aReferences[index] );
-        PRINT2( _L( "MM MTP <> CGetObjectReferences::AddReferencesL ref[%d]'s name = %S" ), index, &temp );
+        TPtrC temp( aReferences[i] );
+        PRINT2( _L( "MM MTP <> CGetObjectReferences::AddReferencesL ref[%d]'s name = %S" ), i, &temp );
         PERFLOGSTART( KObjectManagerHandle );
         TUint32 handle = iFramework.ObjectMgr().HandleL( temp );
         PERFLOGSTOP( KObjectManagerHandle );
@@ -218,8 +216,7 @@
             PRINT1( _L( "MM MTP <> CGetObjectReferences::AddReferencesL, [%S] doesn't existed in handle db, remove this from reference array" ), &temp );
 
             // if handle is invalid, remove from reference array
-            aReferences.Delete( index, 1 );
-            removeCount++;
+            aReferences.Delete( i );
             }
         }
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -292,15 +292,15 @@
     // Move the file first no matter if it will fail in Get/SetPreviousPropertiesL
     // Already trapped inside
     GetPreviousPropertiesL( *iObjectInfo );
-    TRAPD( err, SetPropertiesL( aNewFileName ) );
+    TRAP_IGNORE( SetPropertiesL( aNewFileName ) );
 
     CFileMan* fileMan = CFileMan::NewL( iFramework.Fs() );
-    err = fileMan->Move( *oldFileName, aNewFileName );
-	
-	CleanupStack::PopAndDestroy( oldFileName );     // - oldFileName
-
-    if ( err != KErrNone )
-        PRINT1( _L( "MM MTP <> CMoveObject::MoveFileL err = %d" ), err );
+    CleanupStack::PushL( fileMan ); // + fileMan
+    TInt err = fileMan->Move( *oldFileName, aNewFileName );
+    PRINT1( _L( "MM MTP <> CMoveObject::MoveFileL err = %d" ), err );
+    User::LeaveIfError( err );
+    CleanupStack::PopAndDestroy( fileMan ); // - fileMan
+    CleanupStack::PopAndDestroy( oldFileName );     // - oldFileName
 
     PRINT( _L( "MM MTP <= CMoveObject::MoveFileL" ) );
     }
@@ -408,8 +408,6 @@
     {
     PRINT( _L( "MM MTP => CMoveObject::SetPreviousPropertiesL" ) );
 
-    TMTPResponseCode respcode = EMTPRespCodeOK;
-
     iPropertyList->ResetCursor();
     const TInt count = iPropertyList->NumberOfElements();
     for ( TInt i = 0; i < count; i++ )
@@ -449,7 +447,7 @@
                 {
                 CMTPTypeString *stringData = CMTPTypeString::NewLC( element.StringL( CMTPTypeObjectPropListElement::EValue ) ); // + stringData
 
-                respcode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
+                iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
                     propertyCode,
                     *stringData,
                     *iObjectInfo );
@@ -460,7 +458,7 @@
 
             default:
                 {
-                respcode = iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
+                iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
                     propertyCode,
                     *iObjectInfo,
                     element );
@@ -469,13 +467,7 @@
             }
         } // end of for loop
 
-    // ignore errors
-    if ( respcode == EMTPRespCodeOK )
-        {
-        // do nothing, just to get rid of build warning
-        }
-
-    PRINT1( _L( "MM MTP <= CMoveObject::SetPreviousPropertiesL respcode = 0x%x" ), respcode );
+    PRINT( _L( "MM MTP <= CMoveObject::SetPreviousPropertiesL" ) );
     }
 
 // -----------------------------------------------------------------------------
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -269,7 +269,7 @@
         PRINT1( _L( "MM MTP <> CRenameObject::GetParentSuidL new folder full file name(%S)" ), &iNewFolderName );
 
         iOldFolderFullName.Zero();
-        iOldFolderFullName.Append( aFolderName ); // just name not suid
+        iOldFolderFullName.Append( aFolderName );
 
         PRINT1( _L( "MM MTP <> CRenameObject::GetParentSuidL = %S" ), &iOldFolderFullName );
         }
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestchecker.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestchecker.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -243,10 +243,6 @@
 
     CMTPObjectMetaData* object( CMTPObjectMetaData::NewLC() );
     TBool result( iFramework.ObjectMgr().ObjectL( aHandle, *object ) );
-    iObjectArray.AppendL( object );
-    CleanupStack::Pop( object );
-    iHandles.AppendL( aHandle );
-
     // Obj handle exists
     if ( result )
         {
@@ -277,8 +273,18 @@
                 ret = EMTPRespCodeInvalidParentObject;
             }
         }
+
+    if ( result )
+        {
+        iObjectArray.AppendL( object );
+        CleanupStack::Pop( object );
+        iHandles.AppendL( aHandle );
+        }
     else
+        {
+        CleanupStack::PopAndDestroy( object );
         ret = EMTPRespCodeInvalidObjectHandle;
+        }
 
     PRINT1( _L( "MM MTP <= CRequestChecker::VerifyObjectHandleL ret = 0x%x" ), ret );
 
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -233,6 +233,7 @@
     {
     TUint16 eventCode = aEvent.Uint16( TMTPTypeEvent::EEventCode );
     iCancelled = ( eventCode == EMTPEventCodeCancelTransaction );
+    PRINT1( _L("CRequestProcessor::HandleEventL, eventCode = %d"), eventCode);
     }
 
 // -----------------------------------------------------------------------------
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -198,12 +198,14 @@
             {
             delete iObjectInfo;
             iObjectInfo = NULL;
+            Rollback();
             iProgress = EObjectNone;
             }
         else if ( iOperationCode == EMTPOpCodeSendObjectPropList )
             {
             delete iObjectPropList;
             iObjectPropList = NULL;
+            Rollback();
             iProgress = EObjectNone;
             }
         }
@@ -328,6 +330,10 @@
 
     if ( iProgress == EObjectNone )
         {
+        // iCancelled could have been set after the last transaction
+        // reset the flag here
+        iCancelled = EFalse;
+        
         if ( iOperationCode == EMTPOpCodeSendObjectInfo )
             {
             ServiceInfoL();
@@ -607,6 +613,8 @@
         SendResponseL( EMTPRespCodeOK );
         }
 
+    iCancelled = EFalse;
+
     PRINT1( _L( "MM MTP <= CSendObject::DoHandleResponsePhaseObjectL result = %d" ), result );
 
     return result;
@@ -1067,6 +1075,17 @@
             // might happen if function is called before physical file arrives
             // do nothing
             }
+        else if ( iObjectFormat == EMTPFormatCodeASF )
+            {
+            // happens on some buggy PC implementation, default formatcode to WMA or WMV if extension matches
+            PRINT( _L( "MM MTP <> happens on some buggy PC implementation, default formatcode to WMA or WMV if extension matches" ) );
+            if ( parser.Ext().CompareF( KTxtExtensionWMA ) == 0 )
+                iObjectFormat = EMTPFormatCodeWMA;
+            else if ( parser.Ext().CompareF( KTxtExtensionWMV ) == 0 )
+                iObjectFormat = EMTPFormatCodeWMV;
+            else
+                result = EFalse;
+            }
         else
             {
             PRINT2( _L( "MM MTP <> %S does not match 0x%x" ), &iFullPath, iObjectFormat );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -188,103 +188,105 @@
         if ( protectionStatus != EMTPProtectionNoProtection )
             {
             // NOTE: P4S expects AccessDenied response instead of ObjectWriteProtected
-            return EMTPRespCodeAccessDenied; // EMTPRespCodeObjectWriteProtected;
+            responseCode = EMTPRespCodeAccessDenied; // EMTPRespCodeObjectWriteProtected;
             }
-
-        switch ( propertyCode )
+        else
             {
-            case EMTPObjectPropCodeStorageID:
-            case EMTPObjectPropCodeObjectFormat:
-            case EMTPObjectPropCodeProtectionStatus:
-            case EMTPObjectPropCodeObjectSize:
-            case EMTPObjectPropCodeParentObject:
-            case EMTPObjectPropCodePersistentUniqueObjectIdentifier:
-            case EMTPObjectPropCodeDateAdded:
-            case EMTPObjectPropCodeDateCreated:
-            case EMTPObjectPropCodeDateModified:
-                {
-                responseCode = EMTPRespCodeAccessDenied;
-                }
-                break;
-
-            case EMTPObjectPropCodeNonConsumable:
-                object->SetUint( CMTPObjectMetaData::ENonConsumable,
-                    aPropListElement.Uint8L( CMTPTypeObjectPropListElement::EValue ) );
-                // TODO: need to reconsider,
-                // if propList comprise both non-consumable and objectFileName,
-                // ModifyObjectL would be called twice, need to investigate if it won't affect
-                // performance
-                iFramework.ObjectMgr().ModifyObjectL( *object );
-                break;
-
-            case EMTPObjectPropCodeObjectFileName:
+            switch ( propertyCode )
                 {
-                TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) );
-                TPtrC ptr( aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );
-                if ( KMaxFileName < ptr.Length() )
-                    responseCode = EMTPRespCodeInvalidDataset;
-                else
+                case EMTPObjectPropCodeStorageID:
+                case EMTPObjectPropCodeObjectFormat:
+                case EMTPObjectPropCodeProtectionStatus:
+                case EMTPObjectPropCodeObjectSize:
+                case EMTPObjectPropCodeParentObject:
+                case EMTPObjectPropCodePersistentUniqueObjectIdentifier:
+                case EMTPObjectPropCodeDateAdded:
+                case EMTPObjectPropCodeDateCreated:
+                case EMTPObjectPropCodeDateModified:
                     {
-                    TFileName newSuid( ptr );
-                    TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid );
-                    PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err );
-                    if ( KErrOverflow == err ) // full path name is too long
-                        {
+                    responseCode = EMTPRespCodeAccessDenied;
+                    }
+                    break;
+
+                case EMTPObjectPropCodeNonConsumable:
+                    object->SetUint( CMTPObjectMetaData::ENonConsumable,
+                        aPropListElement.Uint8L( CMTPTypeObjectPropListElement::EValue ) );
+                    // TODO: need to reconsider,
+                    // if propList comprise both non-consumable and objectFileName,
+                    // ModifyObjectL would be called twice, need to investigate if it won't affect
+                    // performance
+                    iFramework.ObjectMgr().ModifyObjectL( *object );
+                    break;
+
+                case EMTPObjectPropCodeObjectFileName:
+                    {
+                    TPtrC suid( object->DesC( CMTPObjectMetaData::ESuid ) );
+                    TPtrC ptr( aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );
+                    if ( KMaxFileName < ptr.Length() )
                         responseCode = EMTPRespCodeInvalidDataset;
-                        }
-                    else if ( KErrNone == err )    // TODO: ( KErrAlreadyExists == err )
-                        {
-                        TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( *object, newSuid ) ); //Update MPX DB
-
-                        PRINT1( _L( "MM MTP <> Rename MPX object file name err = %d" ), err );
-                        // it is ok if file is not found in DB, following S60 solution
-                        if ( KErrNotFound == err )
-                            {
-                            TRAP( err, iDpConfig.GetWrapperL().AddObjectL( *object ) );
-                            PRINT1( _L( "MM MTP <> Add MPX object file name err = %d" ), err );
-                            }
-
-                        object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid );
-                        iFramework.ObjectMgr().ModifyObjectL( *object );
-                        }
-                    else if ( KErrInUse == err ) // object file is being used by other program
-                        {
-                        responseCode = EMTPRespCodeDeviceBusy;
-                        }
                     else
                         {
-                        responseCode = EMTPRespCodeGeneralError;
+                        TFileName newSuid( ptr );
+                        TInt err = MmMtpDpUtility::UpdateObjectFileName( iFramework.Fs(), suid, newSuid );
+                        PRINT1( _L( "MM MTP <> Update object file name err = %d" ), err );
+                        if ( KErrOverflow == err ) // full path name is too long
+                            {
+                            responseCode = EMTPRespCodeInvalidDataset;
+                            }
+                        else if ( KErrNone == err )    // TODO: ( KErrAlreadyExists == err )
+                            {
+                            TRAP( err, iDpConfig.GetWrapperL().RenameObjectL( *object, newSuid ) ); //Update MPX DB
+    
+                            PRINT1( _L( "MM MTP <> Rename MPX object file name err = %d" ), err );
+                            // it is ok if file is not found in DB, following S60 solution
+                            if ( KErrNotFound == err )
+                                {
+                                TRAP( err, iDpConfig.GetWrapperL().AddObjectL( *object ) );
+                                PRINT1( _L( "MM MTP <> Add MPX object file name err = %d" ), err );
+                                }
+
+                            object->SetDesCL( CMTPObjectMetaData::ESuid, newSuid );
+                            iFramework.ObjectMgr().ModifyObjectL( *object );
+                            }
+                        else if ( KErrInUse == err ) // object file is being used by other program
+                            {
+                            responseCode = EMTPRespCodeDeviceBusy;
+                            }
+                        else
+                            {
+                            responseCode = EMTPRespCodeGeneralError;
+                            }
                         }
                     }
-                }
-                break;
+                    break;
 
-            case EMTPObjectPropCodeName:
-            case EMTPObjectPropCodeAlbumArtist:
-                {
-                CMTPTypeString* stringData = CMTPTypeString::NewLC(
-                    aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData
+                case EMTPObjectPropCodeName:
+                case EMTPObjectPropCodeAlbumArtist:
+                    {
+                    CMTPTypeString* stringData = CMTPTypeString::NewLC(
+                        aPropListElement.StringL( CMTPTypeObjectPropListElement::EValue ) );// + stringData
 
-                responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
-                    propertyCode,
-                    *stringData,
-                    *object );
+                    responseCode = iDpConfig.PropSettingUtility()->SetMetaDataToWrapper( iDpConfig,
+                        propertyCode,
+                        *stringData,
+                        *object );
 
-                CleanupStack::PopAndDestroy( stringData );// - stringData
-                }
-                break;
+                    CleanupStack::PopAndDestroy( stringData );// - stringData
+                    }
+                    break;
 
-            default:
-                {
-                responseCode = iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
-                    propertyCode,
-                    *object,
-                    aPropListElement );
+                default:
+                    {
+                    responseCode = iDpConfig.PropSettingUtility()->SetSpecificObjectPropertyL( iDpConfig,
+                        propertyCode,
+                        *object,
+                        aPropListElement );
+                    }
+                    break;
                 }
-                break;
+
+            CleanupStack::PopAndDestroy( object ); // - object
             }
-
-        CleanupStack::PopAndDestroy( object ); // - object
         }
 
     PRINT1( _L( "MM MTP <= CSetObjectPropList::SetObjectPropListL responseCode = 0x%x" ), responseCode );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -148,17 +148,11 @@
 
         TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
         CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( objectHandle );
-        if ( objectInfo == NULL )
-            {
-            PRINT( _L("MM MTP <> CSetObjectPropValue::CheckRequestL, objectInfo is NULL" ) );
-            return EMTPRespCodeInvalidObjectHandle;
-            }
 
-        TPtrC fileName = objectInfo->DesC( CMTPObjectMetaData::ESuid );
         TUint32 formatCode = objectInfo->Uint( CMTPObjectMetaData::EFormatCode );
         PRINT3( _L( "MM MTP <> CSetObjectPropValue::CheckRequestL, handle = 0x%x, filename = %S, formatCode = 0x%x" ),
             objectHandle,
-            &fileName,
+            &(objectInfo->DesC( CMTPObjectMetaData::ESuid )),
             formatCode );
         const RArray<TUint>* properties = iDpConfig.GetSupportedPropertiesL( formatCode );
         TInt count = properties->Count();
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -155,7 +155,7 @@
                 break;
                 }
             // else
-            // get from mpx
+            // Fall through on purpoe to get from mpx
         case EMPXPlaylist:
         case EMPXSong:
             {
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -1522,12 +1522,6 @@
     PRINT( _L( "MM MTP <> Modified contents are:" ) );
 
     foundMedia = FindWMPMediaLC( KMPXMediaGeneralModified, ETrue ); // + foundMedia
-
-    if ( !foundMedia->IsSupported( KMPXMediaArrayCount ) )
-        {
-        User::Leave( KErrNotSupported );
-        }
-
     foundItemCount = *foundMedia->Value<TInt>( KMPXMediaArrayCount );
 
     PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::GetModifiedContentL() found %d Media Objects" ), foundItemCount );
@@ -1600,14 +1594,14 @@
 
     CleanupStack::PopAndDestroy( &playlistAttributes ); // - playlistAttributes
     CleanupStack::PopAndDestroy( searchMedia ); // - searchMedia
+    CleanupStack::PushL( foundMedia ); // + foundMedia
 
     if ( !foundMedia->IsSupported( KMPXMediaArrayCount ) )
         User::Leave( KErrNotSupported );
 
     TInt foundItemCount = *foundMedia->Value<TInt>( KMPXMediaArrayCount );
 
-    delete foundMedia;
-    foundMedia = NULL;
+    CleanupStack::PopAndDestroy( foundMedia ); // - foundMedia
 
     PRINT1( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::IsExist foundItemCount(%d)" ), foundItemCount );
     return ( foundItemCount > 0 ? ETrue : EFalse );
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatavideoaccess.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -89,6 +89,8 @@
     User::LeaveIfError( iDbsSession.Connect() );
 
     TInt err = DriveInfo::GetDefaultDrive( DriveInfo::EDefaultPhoneMemory, iStoreNum );
+    PRINT1( _L( "MM MTP <> CMmMtpDpMetadataVideoAccess::ConstructL, EDefaultPhoneMemory err = %d" ), err );
+    User::LeaveIfError( err );
 
     err = OpenDatabase();
 
@@ -153,15 +155,17 @@
             }
         }
 
-    TBuf<KStorageRootMaxLength> storeRoot;
-    err = PathInfo::GetRootPath( storeRoot, iStoreNum );
-    iRfs.SetSessionPath( storeRoot );
-
     if ( err == KErrNone )
         {
         iDbOpened = ETrue;
         }
 
+    TBuf<KStorageRootMaxLength> storeRoot;
+    if( PathInfo::GetRootPath( storeRoot, iStoreNum ) == KErrNone )
+        {
+        iRfs.SetSessionPath( storeRoot );
+        }
+
     PRINT( _L( "MM MTP <= CMmMtpDpMetadataVideoAccess::OpenDatabase" ) );
     return err;
     }
@@ -349,12 +353,14 @@
 
     for ( iRecordSet.FirstL(); iRecordSet.AtRow(); iRecordSet.NextL() )
         {
+#ifdef _DEBUG
         HBufC* data = ReadLongTextL( KMtpVideoLocation );
-        CleanupStack::PushL( data );
 
         PRINT1( _L( "MM MTP <> CleanupDbIfNecessaryL removing %S from database" ), data );
+        delete data;
+        data = NULL;
+#endif
         iRecordSet.DeleteL();
-        CleanupStack::PopAndDestroy( data );
         }
 
     delete iColSet;
@@ -706,9 +712,8 @@
         OpenDatabaseL();
 
     // File Path
-    HBufC* suid = aObjectMetaData.DesC( CMTPObjectMetaData::ESuid ).AllocLC();  // + suid
-    SetRecordL( *suid, ERecordRead );
-    CleanupStack::PopAndDestroy( suid ); // - suid
+    const TDesC& suid = aObjectMetaData.DesC( CMTPObjectMetaData::ESuid );
+    SetRecordL( suid, ERecordRead );
 
     HBufC* data = NULL;
     TDbColNo num;
@@ -779,16 +784,14 @@
             {
             PRINT( _L( "MM MTP <> EMTPObjectPropCodeDescription-MD" ) );
             data = ReadLongTextL( KMtpVideoComment );
+            CleanupStack::PushL( data ); // + data
 
             TInt len = data->Length();
             PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::GetObjectMetadataValue len = %d" ),len );
-            if ( len != 0 )
-                {
-                for ( TInt i = 0; i < len; i++ )
-                    ( ( CMTPTypeArray& ) aNewData ).AppendUintL( ( *data )[i] );
-                }
+            for ( TInt i = 0; i < len; i++ )
+                ( ( CMTPTypeArray& ) aNewData ).AppendUintL( ( *data )[i] );
 
-            delete data;
+            CleanupStack::PopAndDestroy( data ); // - data
             data = NULL;
             }
             break;
@@ -1025,6 +1028,7 @@
     // Pack the info to aNewData
     if ( data )
         {
+        CleanupStack::PushL( data ); // + data
 #ifdef _DEBUG
         if ( data->Length() > KMtpMaxStringDescLength )   // Have to concatenate for MTP
             {
@@ -1040,8 +1044,7 @@
             {
             User::Leave( KErrArgument );
             }
-        delete data;
-        data = NULL;
+        CleanupStack::PopAndDestroy( data ); // - data
         }
 
     PRINT( _L( "MM MTP <= CMmMtpDpMetadataVideoAccess::GetObjectMetadataValue" ) );
--- a/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp	Thu Aug 19 10:24:28 2010 +0300
@@ -110,14 +110,8 @@
                     if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0
                         || mime->CompareF( KMimeTypeVideo3gpp ) == 0 )
                         {
-                        delete mime;
-                        mime = NULL;
                         format = EMTPFormatCode3GPContainer;
                         }
-                    }
-
-                if ( mime != NULL )
-                    {
                     delete mime;
                     mime = NULL;
                     }
@@ -525,34 +519,15 @@
 HBufC8* MmMtpDpUtility::OdfMimeTypeL( const TDesC& aFullPath )
     {
     PRINT( _L( "MM MTP => MmMtpDpUtility::OdfMimeTypeL" ) );
-    HBufC8* mimebuf = NULL;
 
-    CContent* content = CContent::NewL( aFullPath );
-    CleanupStack::PushL( content ); // + content
-
-    HBufC* buffer = HBufC::NewL( KMimeTypeMaxLength );
-    CleanupStack::PushL( buffer ); // + buffer
+    CContent* content = CContent::NewLC( aFullPath ); // + content
+    HBufC* buffer = HBufC::NewLC( KMimeTypeMaxLength ); // + buffer
 
     TPtr data = buffer->Des();
-    TInt err = content->GetStringAttribute( EMimeType, data );
-
-    if ( err == KErrNone )
-        {
-        mimebuf = HBufC8::New( buffer->Length() );
+    User::LeaveIfError( content->GetStringAttribute( EMimeType, data ) );
 
-        if ( mimebuf == NULL )
-            {
-            User::LeaveIfError( KErrNotFound );
-            }
-
-        mimebuf->Des().Copy( *buffer );
-        }
-
-    // leave if NULL
-    if ( mimebuf == NULL )
-        {
-        User::Leave( KErrNotFound );
-        }
+    HBufC8* mimebuf = HBufC8::NewL( buffer->Length() );
+    mimebuf->Des().Copy( *buffer );
 
     CleanupStack::PopAndDestroy( buffer ); // - buffer
     CleanupStack::PopAndDestroy( content ); // - content
--- a/mmappfw_plat/harvester_utility_api/tsrc/Conf/mpxharvestertest.cfg	Thu Jul 15 19:11:42 2010 +0300
+++ b/mmappfw_plat/harvester_utility_api/tsrc/Conf/mpxharvestertest.cfg	Thu Aug 19 10:24:28 2010 +0300
@@ -142,8 +142,8 @@
 [Test]
 title Delete files synchronously
 create mpxharvestertest utility
+utility CopyTestFile mpxtest1.mp3 mpxtest2.mp3
 pause 2000
-utility CopyTestFile mpxtest1.mp3 mpxtest2.mp3
 utility CreateUtility
 utility AddFileByPath mpxtest1.mp3
 waittestclass utility
--- a/mpx/collectionframework/collectionserver/group/mpxcollectionserver.mmp	Thu Jul 15 19:11:42 2010 +0300
+++ b/mpx/collectionframework/collectionserver/group/mpxcollectionserver.mmp	Thu Aug 19 10:24:28 2010 +0300
@@ -25,7 +25,7 @@
 UID              0 0x101FFC31
 VENDORID         VID_DEFAULT
 CAPABILITY       ALL -TCB
-#ifdef __WINS__
+#ifdef WINS
 EPOCHEAPSIZE     0x1000 0x2800000 // 40MB
 #else
 EPOCHEAPSIZE     0x1000 0x3E00000 // 62 MB
--- a/mpx/commonframework/group/bld.inf	Thu Jul 15 19:11:42 2010 +0300
+++ b/mpx/commonframework/group/bld.inf	Thu Aug 19 10:24:28 2010 +0300
@@ -23,9 +23,9 @@
 PRJ_EXPORTS
 
 // Secure backup & restore
-backup_registration.xml /epoc32/release/winscw/urel/z/private/101ffc02/backup_registration.xml
-backup_registration.xml /epoc32/release/winscw/udeb/z/private/101ffc02/backup_registration.xml
-backup_registration.xml /epoc32/data/z/private/101ffc02/backup_registration.xml
+backup_registration.xml z:/private/101ffc02/backup_registration.xml
+
+
 
 ../rom/mpxcommonframework.iby   CORE_MW_LAYER_IBY_EXPORT_PATH(mpxcommonframework.iby)