--- a/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectioncachedhelper.cpp Tue May 25 13:14:13 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Extended collection helper with an internal caching array
-* Version : %version: da1mmcf#27.1.12.1.1 %
+* Version : %version: da1mmcf#27.1.12.1.2 %
*
*/
@@ -30,6 +30,10 @@
#include <mpxcollectioncommanddefs.h>
#include <mpxmediamtpdefs.h>
+#include <e32property.h> // for RProperty
+#include <UsbWatcherInternalPSKeys.h>
+#include <usbpersonalityids.h>
+
#include <mpxcollectionutility.h>
#include <mpxharvesterutility.h>
@@ -153,11 +157,21 @@
MPX_FUNC("CMPXCollectionCachedHelper::::AddL");
// Commit when we have cached more than a set amount
//
- if( iCache->Count() >= KCacheCount)
- {
+
+ TInt cacheCount = KCacheCount;
+ TInt usbStatus;
+ RProperty::Get( KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus );
+
+ // if MTP is not connected via USB, disable caching mechanism and flush immediately
+ // in case UI is not blocked and need to reflect the change in real time
+ // this logic is hardly invoked during MTP, because ::FindAllL (which flush) is always called before AddL
+ if ((usbStatus != KUsbPersonalityIdMTP) && (usbStatus != KUsbPersonalityIdPCSuiteMTP))
+ cacheCount = 1;
+
+ if( iCache->Count() >= cacheCount)
Commit();
- }
-#ifdef ABSTRACTAUDIOALBUM_INCLUDED
+
+ #ifdef ABSTRACTAUDIOALBUM_INCLUDED
TBool extract = ETrue;
if( aMedia->IsSupported( KMPXMediaMTPSampleDataFlag ) )
{
@@ -746,6 +760,14 @@
#else //RD_MPX_COLLECTION_CACHE
MPX_DEBUG1("CMPXCollectionCachedHelper::GetL <--");
+
+ TInt usbStatus;
+ RProperty::Get( KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus );
+
+ // if MTP is not connected via USB, flush immediately
+ // in case UI is not blocked and need to reflect the change in real time
+ if ((usbStatus != KUsbPersonalityIdMTP) && (usbStatus != KUsbPersonalityIdPCSuiteMTP))
+ Commit();
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
if (aItemCat != EMPXSong && aItemCat != EMPXPlaylist && aItemCat != EMPXAbstractAlbum)
--- a/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxcollectionuihelperimp.cpp Tue May 25 13:14:13 2010 +0300
@@ -38,6 +38,7 @@
#include <mpxcollectioncommanddefs.h>
#include <UsbWatcherInternalPSKeys.h>
#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
#include "mpxcollectionuihelperobserver.h"
#include "mpxcollectionuihelperimp.h"
@@ -1399,11 +1400,16 @@
{
TInt usbStatus;
RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus);
-
- if ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP)
- || (usbStatus == KUsbPersonalityIdMS) )
+
+ TInt mtpStatus = EMtpPSStatusUninitialized;
+ RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus);
+
+ MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus);
+
+ if ( (mtpStatus != EMtpPSStatusUninitialized)
+ || (usbStatus == KUsbPersonalityIdMS) )
{
- MPX_DEBUG1("USB is active, Leave with KErrLocked");
+ MPX_DEBUG1("MTP/USB is active, Leave with KErrLocked");
// need to call back even if it leaves here
iHelperObserver = (MMPXCHelperObserver*)aCallback;
CompleteTask( aTask, KErrLocked );
--- a/mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/collectionhelper/src/mpxdeletehelper.cpp Tue May 25 13:14:13 2010 +0300
@@ -43,8 +43,7 @@
#include <thumbnailmanager.h>
#endif //RD_MPX_TNM_INTEGRATION
// cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode
-#include <UsbWatcherInternalPSKeys.h>
-#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
#include <mpxcollectionuihelper.h>
#include "mpxcollectionuihelperobserver.h"
#include "mpxcollectionhelpercommon.h"
@@ -310,32 +309,16 @@
{
MPX_DEBUG3("CMPXDeleteHelper::RunL. [iMoreToDo %d] [iStatus %d]", iMoreToDo, iStatus.Int());
- // cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode
- TUsbDeviceState deviceState = EUsbDeviceStateConfigured;
- if ( !iUsbManConnected )
- {
- ConnectUsbMan();
- }
-
- if ( iUsbManConnected )
+ TInt mtpStatus = EMtpPSStatusUninitialized;
+ RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus);
+
+ MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus);
+
+ if (mtpStatus != EMtpPSStatusUninitialized)
{
- if ( iUsbMan.GetDeviceState( deviceState ) != KErrNone )
- {
- deviceState = EUsbDeviceStateConfigured;
- }
- }
-
- if ( deviceState == EUsbDeviceStateAddress ||
- deviceState == EUsbDeviceStateConfigured )
- {
- TInt usbStatus;
- RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus);
- if ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP))
- {
- MPX_DEBUG1("USB is active, Stop Delete");
- CompleteDelete( KErrLocked );
- return;
- }
+ MPX_DEBUG1("MTP is active, Stop Delete");
+ CompleteDelete( KErrLocked );
+ return;
}
if (iMoreToDo && iStatus.Int() == KErrNone)
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Tue May 25 13:14:13 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Handles all file related activities
-* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.1.6 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.1.7 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -46,8 +46,7 @@
#include <caf/caferr.h>
#include <caf/content.h>
#include <caf/data.h>
-#include <UsbWatcherInternalPSKeys.h>
-#include <usbpersonalityids.h>
+#include <mtpprivatepskeys.h>
#include "mpxharvesterfilehandlerimp.h"
#include "mpxfolderscanner.h"
@@ -299,14 +298,16 @@
}
iCollectionUtil = MMPXCollectionUtility::NewL( NULL, KMusicPlayerUid );
- // cenrep key need to be checked whether USB cable is connected in MTP/Combined Mode
+ // cenrep key need to be checked whether MTP is connected
// to prevent refresh
- TInt usbStatus;
- RProperty::Get(KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus);
-
- if ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP))
+ TInt mtpStatus = EMtpPSStatusUninitialized;
+ RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus);
+
+ MPX_DEBUG2("CMPXCollectionViewHgImp::ConstructL, mtpstatus = %d", mtpStatus);
+
+ if (mtpStatus != EMtpPSStatusUninitialized)
{
- MPX_DEBUG1("USB is active, Leave with KErrLocked");
+ MPX_DEBUG1("MTP is active, Leave with KErrLocked");
// need to call back even if it leaves here
iCollectionUtil->Collection().NotifyL( EMcMsgRefreshEnd, KErrLocked );
//User::Leave(KErrLocked);
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Tue May 25 13:14:13 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Extracts metadata from a file
-* Version : %version: da1mmcf#38.1.4.2.6.1.12 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#38.1.4.2.6.1.13 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -147,6 +147,10 @@
delete iDrmMediaUtility;
delete iTaskTimer;
iFile.Close();
+ if ( iMedia != NULL )
+ {
+ delete iMedia;
+ }
#ifdef RD_MPX_TNM_INTEGRATION
delete iTNManager;
if (iTNSyncWait && iTNSyncWait->IsStarted() )
@@ -212,6 +216,7 @@
}
aNewProperty = iMedia;
+ iMedia = NULL; // ownership transferred.
CleanUp();
}
@@ -811,14 +816,16 @@
void CMPXMetadataExtractor::DoCreateMediaL()
{
MPX_FUNC("CMPXMetadataExtractor::DoCreateMediaL()");
+ MPX_ASSERT( iMedia == NULL );
RArray<TInt> contentIDs;
+ CleanupClosePushL( contentIDs );
contentIDs.AppendL( KMPXMediaIdGeneral );
contentIDs.AppendL( KMPXMediaIdAudio );
contentIDs.AppendL( KMPXMediaIdMusic );
contentIDs.AppendL( KMPXMediaIdDrm );
contentIDs.AppendL( KMPXMediaIdMTP );
iMedia = CMPXMedia::NewL( contentIDs.Array() );
- contentIDs.Close();
+ CleanupStack::PopAndDestroy( &contentIDs );
// CMPXMedia default types
iMedia->SetTObjectValueL<TMPXGeneralType>( KMPXMediaGeneralType,
@@ -1014,7 +1021,10 @@
{
MPX_FUNC("CMPXMetadataExtractor::HandleTaskTimerExpired()");
- iTaskTimer->Cancel();
+ if ( iTaskTimer && iTaskTimer->IsActive() )
+ {
+ iTaskTimer->Cancel();
+ }
// execute task at index 0
MPX_TRAPD( error, ExecuteTaskL() );
if ( error || iCancelled )
@@ -1046,6 +1056,7 @@
if ( iObs && !iCancelled )
{
iObs->HandleCreateMediaComplete( iMedia, error );
+ iMedia = NULL; // ownership transferred.
}
CleanUp();
--- a/mmappcomponents/harvester/server/group/mpxharvester.mmp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/harvester/server/group/mpxharvester.mmp Tue May 25 13:14:13 2010 +0300
@@ -43,7 +43,7 @@
// System events
SOURCE mpxfsformatmonitor.cpp
SOURCE mpxmediaremovalmonitor.cpp
-SOURCE mpxusbeventhandler.cpp
+SOURCE mpxconnectioneventhandler.cpp
USERINCLUDE ../inc
USERINCLUDE ../../inc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappcomponents/harvester/server/inc/mpxconnectioneventhandler.h Tue May 25 13:14:13 2010 +0300
@@ -0,0 +1,133 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Monitors USB events
+*
+*/
+
+
+#ifndef CMPXCONNECTIONEVENTHANDLER_H
+#define CMPXCONNECTIONEVENTHANDLER_H
+
+#include <usbman.h>
+#include <mpxpskeyobserver.h>
+#include "mpxsystemeventobserver.h"
+
+class CMPXPSKeyWatcher;
+
+/**
+ * USB Monitoring class
+ *
+ * @lib mpxharvesterserver.exe
+ * @since S60 3.0
+ */
+NONSHARABLE_CLASS( CMPXConnectionEventHandler ) : public CActive,
+ public MMPXPSKeyObserver
+ {
+public:
+
+ /**
+ * Two-phase constructor
+ * @param aObserver observer to the event handler
+ */
+ static CMPXConnectionEventHandler* NewL( MMPXSystemEventObserver& aObserver );
+
+ /**
+ * Two-phase constructor
+ * @param aObserver observer to the event handler
+ */
+ static CMPXConnectionEventHandler* NewLC( MMPXSystemEventObserver& aObserver );
+
+ /**
+ * Virtual destructor
+ */
+ virtual ~CMPXConnectionEventHandler();
+
+public:
+
+ /**
+ * Polls for the current monitor status
+ * If an event is happening, it will callback the observer of the event
+ */
+ void PollStatus();
+
+protected: // From Base Class
+
+ /**
+ * From CActive
+ */
+ void RunL();
+ void DoCancel();
+
+ /**
+ * From MMPXPSKeyObserver
+ */
+ void HandlePSEvent( TUid aUid, TInt aKey );
+
+private: // New Methods
+
+ /**
+ * Handle the PS Key event
+ * @param aUid UID of the key
+ * @param aKey ID of the key
+ */
+ void DoHandlePSEventL( TUid aUid, TInt aKey );
+
+ void DoMSStartEventL();
+ void DoMTPStartEventL();
+ void DoMTPNotActiveEventL();
+
+ /**
+ * Connect to usbman.
+ * If error, default iDeviceState to EUsbDeviceStateConfigured so this would not
+ * block usb event mode change.
+ */
+ void ConnectUsbMan();
+
+private:
+
+ /**
+ * C++ constructor
+ */
+ CMPXConnectionEventHandler( MMPXSystemEventObserver& aObserver );
+
+ /*
+ * Second phased constructor
+ */
+ void ConstructL();
+
+private: // data
+
+ enum TMPXConnectionState
+ {
+ EMPXConnectionNone,
+ EMPXConnectionMassStorage,
+ EMPXConnectionMTPIdle,
+ EMPXConnectionMTPActive
+ };
+
+ CMPXPSKeyWatcher* iUSBKeyWatcher; // PS key watcher for USB PS key
+ CMPXPSKeyWatcher* iMTPKeyWatcher; // PS key watcher for MTP PS key
+
+ /*
+ * Observer interface to callback to an observer
+ */
+ MMPXSystemEventObserver& iObserver;
+ TInt iState;
+
+ RUsb iUsbMan;
+ TUsbDeviceState iDeviceState;
+ TBool iUsbManConnected;
+ };
+
+#endif // CMPXCONNECTIONEVENTHANDLER_H
--- a/mmappcomponents/harvester/server/inc/mpxharvesterengine.h Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/harvester/server/inc/mpxharvesterengine.h Tue May 25 13:14:13 2010 +0300
@@ -31,7 +31,7 @@
class CMPXHarvesterFileHandler;
class CMPXFsFormatMonitor;
class CMPXMediaRemovalMonitor;
-class CMPXUsbEventHandler;
+class CMPXConnectionEventHandler;
class CMPXMedia;
class CMPXActiveTaskQueue;
class CMPXPlaylistEngine;
@@ -304,7 +304,7 @@
// Move to RPointerArrays of monitors in the future
CMPXFsFormatMonitor* iFormatMonitor;
CMPXMediaRemovalMonitor* iMediaRemovalMonitor;
- CMPXUsbEventHandler* iUSBMonitor;
+ CMPXConnectionEventHandler* iConnectionMonitor;
// Internal task queue for async operations
CMPXActiveTaskQueue* iTaskQueue;
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmappcomponents/harvester/server/src/mpxconnectioneventhandler.cpp Tue May 25 13:14:13 2010 +0300
@@ -0,0 +1,315 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Monitors for USB events
+*
+*/
+
+
+#include <e32base.h>
+#include <f32file.h>
+#include <e32property.h>
+#ifdef RD_MULTIPLE_DRIVE
+#include <driveinfo.h>
+#endif //RD_MULTIPLE_DRIVE
+#include <mpxpskeywatcher.h>
+#include <coreapplicationuisdomainpskeys.h>
+#include <UsbWatcherInternalPSKeys.h>
+#include <usbpersonalityids.h>
+#include <MtpPrivatePSKeys.h>
+#include <mpxlog.h>
+#include "mpxconnectioneventhandler.h"
+
+// CONSTANTS
+const TUint KUsbAllStates = 0xFFFFFFFF;
+
+// ---------------------------------------------------------------------------
+// Default Constructor
+// ---------------------------------------------------------------------------
+//
+CMPXConnectionEventHandler::CMPXConnectionEventHandler( MMPXSystemEventObserver& aObserver ) :
+ CActive( EPriorityStandard ),
+ iObserver( aObserver ),
+ iState ( EMPXConnectionNone ),
+ iUsbManConnected( EFalse )
+
+
+ {
+ CActiveScheduler::Add( this );
+ }
+
+
+// ---------------------------------------------------------------------------
+// 2nd Phase Constructor
+// ---------------------------------------------------------------------------
+//
+void CMPXConnectionEventHandler::ConstructL()
+ {
+ MPX_DEBUG1(_L("CMPXConnectionEventHandler::ConstructL <---"));
+ iUSBKeyWatcher = CMPXPSKeyWatcher::NewL( KPSUidUsbWatcher,
+ KUsbWatcherSelectedPersonality,
+ this );
+
+ //for checking MTP status key whether a client has started
+ iMTPKeyWatcher = CMPXPSKeyWatcher::NewL( KMtpPSUid,
+ KMtpPSStatus,
+ this );
+
+ // Connect to usbman
+ ConnectUsbMan();
+ MPX_DEBUG1(_L("CMPXConnectionEventHandler::ConstructL --->"));
+ }
+
+
+// ---------------------------------------------------------------------------
+// Two Phased Constructor
+// ---------------------------------------------------------------------------
+//
+CMPXConnectionEventHandler* CMPXConnectionEventHandler::NewL
+ ( MMPXSystemEventObserver& aObserver )
+ {
+ CMPXConnectionEventHandler* self = CMPXConnectionEventHandler::NewLC( aObserver );
+ CleanupStack::Pop( self );
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Two Phased Constructor
+// ---------------------------------------------------------------------------
+//
+CMPXConnectionEventHandler* CMPXConnectionEventHandler::NewLC
+ ( MMPXSystemEventObserver& aObserver )
+
+ {
+ CMPXConnectionEventHandler* self = new( ELeave ) CMPXConnectionEventHandler( aObserver);
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ return self;
+ }
+
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CMPXConnectionEventHandler::~CMPXConnectionEventHandler()
+ {
+ Cancel();
+ if ( iUsbManConnected )
+ {
+ iUsbMan.Close();
+ }
+ delete iUSBKeyWatcher;
+ delete iMTPKeyWatcher;
+ }
+
+// ---------------------------------------------------------------------------
+// Poll for any ongoing USB / MTP event
+// ---------------------------------------------------------------------------
+//
+void CMPXConnectionEventHandler::PollStatus()
+ {
+ // only call back on connection state != EMPXConnectionNone
+ if (iState == EMPXConnectionMassStorage)
+ {
+ TRAP_IGNORE( DoMSStartEventL() );
+ }
+ else if (iState == EMPXConnectionMTPActive)
+ {
+ TRAP_IGNORE( DoMTPStartEventL() );
+ }
+ else if (iState == EMPXConnectionMTPIdle)
+ {
+ TRAP_IGNORE( DoMTPNotActiveEventL() );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// Handle the PS key event
+// ---------------------------------------------------------------------------
+//
+void CMPXConnectionEventHandler::HandlePSEvent( TUid aUid, TInt aKey )
+ {
+ TRAP_IGNORE( DoHandlePSEventL(aUid,aKey) );
+ }
+
+// ---------------------------------------------------------------------------
+// Handle the PS key event
+// ---------------------------------------------------------------------------
+//
+void CMPXConnectionEventHandler::DoHandlePSEventL( TUid /*aUid*/, TInt /*aKey*/ )
+ {
+ MPX_FUNC("CMPXConnectionEventHandler::DoHandlePSEvent()");
+ if ( !iUsbManConnected )
+ {
+ ConnectUsbMan();
+ }
+
+ // Handle the Key event
+ TInt usbStatus;
+ iUSBKeyWatcher->GetValue( usbStatus );
+
+ TInt mtpStatus;
+ iMTPKeyWatcher->GetValue(mtpStatus);
+
+ MPX_DEBUG3("CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d", usbStatus, mtpStatus);
+ MPX_DEBUG2("CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d", iState);
+ MPX_DEBUG4("CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)", iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured);
+
+ RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, usbStatus = %d, mtpStatus = %d"), usbStatus, mtpStatus);
+ RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iState = %d"), iState);
+ RDebug::Print(_L("tpoon: CMPXConnectionEventHandler::DoHandlePSEventL, iDeviceState = %d, EUsbDeviceStateAddress(%d), EUsbDeviceStateConfigured(%d)"), iDeviceState, EUsbDeviceStateAddress, EUsbDeviceStateConfigured);
+
+ // events from lower level is not causing multiple callback on the same type
+ // usb is really only connected if went through Address or Configured state
+ if( (usbStatus == KUsbPersonalityIdMS) && (iDeviceState == EUsbDeviceStateAddress || iDeviceState == EUsbDeviceStateConfigured))
+ {
+ if ((iState == EMPXConnectionMTPIdle) || (iState == EMPXConnectionMTPActive))
+ {
+ MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End");
+ RDebug::Print(_L("tpoon: MTP End"));
+ iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 );
+ iState = EMPXConnectionNone;
+ }
+
+ if (iState != EMPXConnectionMassStorage)
+ {
+ DoMSStartEventL();
+ }
+ }
+ else if (iState == EMPXConnectionMassStorage)
+ {
+ if (usbStatus != KUsbPersonalityIdMS)
+ {
+ MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - USB MassStorage End");
+ RDebug::Print(_L("tpoon: MS End"));
+ iObserver.HandleSystemEventL( EUSBMassStorageEndEvent, -1 );
+ iState = EMPXConnectionNone;
+ }
+ }
+
+ // after MassStorage End, it is possible that MTP is still connected
+ if (iState != EMPXConnectionMassStorage)
+ {
+ if ((mtpStatus == EMtpPSStatusUninitialized) && (iState != EMPXConnectionNone))
+ {
+ MPX_DEBUG1("CMPXConnectionEventHandler::DoHandlePSEvent - MTP End");
+ RDebug::Print(_L("tpoon: MTP End"));
+ iObserver.HandleSystemEventL( EUSBMTPEndEvent, -1 );
+ iState = EMPXConnectionNone;
+ }
+ else if ((mtpStatus == EMtpPSStatusActive) && (iState != EMPXConnectionMTPActive)
+ && ((usbStatus == KUsbPersonalityIdMTP) || (usbStatus == KUsbPersonalityIdPCSuiteMTP))) // only trigger MusicPlayer fully block and RAM Drive if USB MTP/PCSuiteMTP is connected
+ {
+ DoMTPStartEventL();
+ }
+ else if ((mtpStatus == EMtpPSStatusReadyToSync) && (iState != EMPXConnectionMTPIdle) && (iState != EMPXConnectionMTPActive))
+ {
+ DoMTPNotActiveEventL();
+ }
+ }
+ }
+
+void CMPXConnectionEventHandler::DoMSStartEventL()
+ {
+ MPX_DEBUG1("CMPXConnectionEventHandler::DoMSStartEventL - USB MassStorage Start");
+ RDebug::Print(_L("tpoon: MS Start"));
+ iObserver.HandleSystemEventL( EUSBMassStorageStartEvent, -1 );
+ iState = EMPXConnectionMassStorage;
+ }
+
+void CMPXConnectionEventHandler::DoMTPStartEventL()
+ {
+ MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPStartEventL - MTP Start");
+ RDebug::Print(_L("tpoon: MTP Start"));
+ iObserver.HandleSystemEventL( EUSBMTPStartEvent, -1 );
+ iState = EMPXConnectionMTPActive;
+ }
+
+void CMPXConnectionEventHandler::DoMTPNotActiveEventL()
+ {
+ MPX_DEBUG1("CMPXConnectionEventHandler::DoMTPNotActiveEventL - MTP Not Active");
+ RDebug::Print(_L("tpoon: MTP Not Active"));
+ iObserver.HandleSystemEventL( EUSBMTPNotActiveEvent, -1 );
+ iState = EMPXConnectionMTPIdle;
+ }
+
+// ---------------------------------------------------------------------------
+// CMPXConnectionEventHandler::RunL
+// ---------------------------------------------------------------------------
+//
+void CMPXConnectionEventHandler::RunL()
+ {
+ MPX_FUNC("CMPXConnectionEventHandler::RunL()");
+ TInt status( iStatus.Int() );
+
+ MPX_DEBUG2("CMPXConnectionEventHandler::RunL status=%d", status );
+ if ( status != KErrCancel && status != KErrServerTerminated )
+ {
+ iUsbMan.DeviceStateNotification( KUsbAllStates, iDeviceState, iStatus );
+ SetActive();
+ }
+
+ if ( status == KErrNone )
+ {
+ MPX_DEBUG2("CMPXConnectionEventHandler::RunL - DeviceState = %d", iDeviceState);
+ HandlePSEvent( TUid::Uid(0), 0 );
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMPXConnectionEventHandler::DoCancel
+// ---------------------------------------------------------------------------
+//
+void CMPXConnectionEventHandler::DoCancel()
+ {
+ MPX_FUNC("CMPXConnectionEventHandler::DoCancel()");
+ if ( iUsbManConnected )
+ {
+ iUsbMan.DeviceStateNotificationCancel();
+ }
+ }
+
+// ---------------------------------------------------------------------------
+// CMPXConnectionEventHandler::ConnectUsbMan
+// If error, default iDeviceState to EUsbDeviceStateConfigured so this would not
+// block usb event mode change.
+// ---------------------------------------------------------------------------
+void CMPXConnectionEventHandler::ConnectUsbMan()
+ {
+ MPX_FUNC("CMPXConnectionEventHandler::ConnectUsbMan()");
+ if ( iUsbMan.Connect() == KErrNone )
+ {
+ iUsbManConnected = ETrue;
+ // get device state
+ TInt err = iUsbMan.GetDeviceState( iDeviceState );
+ if ( err )
+ {
+ iDeviceState = EUsbDeviceStateUndefined;
+ }
+
+ // start active object
+ if ( !IsActive() )
+ {
+ iUsbMan.DeviceStateNotification( KUsbAllStates, iDeviceState, iStatus );
+ SetActive();
+ }
+ }
+ else
+ {
+ iDeviceState = EUsbDeviceStateConfigured;
+ }
+ }
+// END OF FILE
+
--- a/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp Tue May 25 13:14:13 2010 +0300
@@ -35,7 +35,7 @@
#include "mpxharvesterengine.h"
#include "mpxfsformatmonitor.h"
#include "mpxmediaremovalmonitor.h"
-#include "mpxusbeventhandler.h"
+#include "mpxconnectioneventhandler.h"
#include "mpxharvesterfilehandler.h"
#include "mpxharvesterengineobserver.h"
#include "mpxhvsmsg.h"
@@ -60,7 +60,7 @@
delete iFormatMonitor;
delete iMediaRemovalMonitor;
- delete iUSBMonitor;
+ delete iConnectionMonitor;
delete iFileHandler;
iFsSession.Close();
@@ -101,8 +101,8 @@
iMediaRemovalMonitor = CMPXMediaRemovalMonitor::NewL(
removableDrive, iFsSession, *this );
- // USB Event monitor
- iUSBMonitor = CMPXUsbEventHandler::NewL( *this );
+ // Connection Event monitor
+ iConnectionMonitor = CMPXConnectionEventHandler::NewL( *this );
// File handler to handle file related events
@@ -426,7 +426,7 @@
// wont be able to open the db anyways.
//
iFormatMonitor->PollStatus();
- iUSBMonitor->PollStatus();
+ iConnectionMonitor->PollStatus();
}
// ---------------------------------------------------------------------------
--- a/mmappcomponents/harvester/server/src/mpxusbeventhandler.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxusbeventhandler.cpp Tue May 25 13:14:13 2010 +0300
@@ -24,7 +24,7 @@
#include <coreapplicationuisdomainpskeys.h>
#include <UsbWatcherInternalPSKeys.h>
#include <usbpersonalityids.h>
-#include <MtpPrivatePSKeys.h>
+#include <mtpprivatepskeys.h>
#include <mpxlog.h>
#include "mpxusbeventhandler.h"
--- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpaccesssingleton.h Tue May 25 13:14:13 2010 +0300
@@ -53,6 +53,18 @@
*/
IMPORT_C static void CloseSessionL();
+ /**
+ * Issue ActiveToIdle Status Change (ActiveObject)
+ * this function is to be called after an MTP operation is finish to change status from Active to Idle
+ * observer of the status might not get the notification if idle->active->idle happens in one synchronous operation
+ */
+ IMPORT_C static void ActiveToIdleStatusChange();
+
+ /**
+ * Cancel Outstanding ActiveToIdle Status Change
+ */
+ IMPORT_C static void CancelActiveToIdleStatusChange();
+
private:
/*
* get singleton instance, for internal use
@@ -73,8 +85,20 @@
*/
~CMmMtpDpAccessSingleton();
+ /**
+ * get DelayStatusChanger instance, internal use only
+ */
+ static CIdle* DelayStatusChanger();
+
+ /**
+ * Perform actural ActiveToIdle Status Change after active object callback
+ */
+ static TInt DoActiveToIdleStatusChange(TAny* Any);
+
private:
CMmMtpDpMetadataAccessWrapper* iWrapper;
+
+ CIdle* iDelayStatusChanger;
};
--- a/mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdp_variant.hrh Tue May 25 13:14:13 2010 +0300
@@ -28,4 +28,7 @@
// flag to enable support for non embedded album art, should be ON by default
#define MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT
+// flag to enable reset of MTP PS Status flag at CloseSession
+#define MMMTPDP_RESET_STATUS_CLOSESESSION
+
#endif // MMMTPDP_VARIANT_HRH
--- a/mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/mmmtpdputility.h Tue May 25 13:14:13 2010 +0300
@@ -20,6 +20,7 @@
#define MMMTPDPUTILITY_H
#include <mtp/mtpprotocolconstants.h>
+#include <mtpprivatepskeys.h>
#include "mmmtpdpfiledefs.h"
@@ -143,6 +144,34 @@
* @return return DRM status code
*/
IMPORT_C static TInt GetDrmStatus( const TDesC& aFullFileName );
+
+ /**
+ * Set MTP PS Status
+ * @param aStatus, next TMtpPSStatus
+ *
+ * newly implemented function to as enabler
+ * to provide more state transition on application (MusicPlayer/MPX) during MTP by fully utilize the 3 PSStatus:
+ *
+ * EMtpPSStatusActive, == MTP operation related Media Files is performaning
+ * EMtpPSStatusUninitialized == MTP not in use
+ * EMtpPSStatusReadyToSync == MTP is connected, but no active operation related to Media Files
+ *
+ * this CAN enable 2 new behaviors:
+ * 1. MTP status monitor is extracted out from USB Event Observer in harvester
+ * Harvester and Music player should be fully blocked if PS Status is EMtpPSStatusActive
+ * Music Player would prevent refresh/delete/add on UI level if PS Status is EMtpPSStatusReadyToSync
+ * 2. collectioncachedhelper to observed this status.
+ * when the ps status changed from EMtpPSStatusActive to EMtpPSStatusReadyToSync, it starts timer.
+ * and when it is reached, it flush all cache.
+ * the timer is canceled when ps status is back to active.
+ */
+ IMPORT_C static void SetPSStatus( TMtpPSStatus aStatus );
+
+ /**
+ * Set MTP PS Status (actually)
+ * @param aStatus, next TMtpPSStatus
+ */
+ static void DoSetPSStatus( TMtpPSStatus aStatus );
};
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Tue May 25 13:14:13 2010 +0300
@@ -157,4 +157,7 @@
??1CGetObjectPropList@@UAE@XZ @ 156 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
?ServiceL@CGetObjectPropList@@MAEXXZ @ 157 NONAME ; void CGetObjectPropList::ServiceL(void)
??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 158 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+ ?ActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 159 NONAME ; void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange(void)
+ ?SetPSStatus@MmMtpDpUtility@@SAXW4TMtpPSStatus@@@Z @ 160 NONAME ; void MmMtpDpUtility::SetPSStatus(enum TMtpPSStatus)
+ ?CancelActiveToIdleStatusChange@CMmMtpDpAccessSingleton@@SAXXZ @ 161 NONAME ; void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(void)
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Tue May 25 13:14:13 2010 +0300
@@ -47,233 +47,236 @@
_ZN14CGetObjectInfoD0Ev @ 46 NONAME
_ZN14CGetObjectInfoD1Ev @ 47 NONAME
_ZN14CGetObjectInfoD2Ev @ 48 NONAME
- _ZN14MmMtpDpUtility12GetDrmStatusERK7TDesC16 @ 49 NONAME
- _ZN14MmMtpDpUtility18FormatFromFilenameERK7TDesC16 @ 50 NONAME
- _ZN15CRequestUnknown4NewLER25MMTPDataProviderFrameworkR14MMTPConnection @ 51 NONAME
- _ZN15CRequestUnknown8ServiceLEv @ 52 NONAME
- _ZN15CRequestUnknownC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 53 NONAME
- _ZN15CRequestUnknownC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 54 NONAME
- _ZN15CRequestUnknownD0Ev @ 55 NONAME
- _ZN15CRequestUnknownD1Ev @ 56 NONAME
- _ZN15CRequestUnknownD2Ev @ 57 NONAME
- _ZN17CGetPartialObject13CheckRequestLEv @ 58 NONAME
- _ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 59 NONAME
- _ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 60 NONAME
- _ZN17CGetPartialObject8ServiceLEv @ 61 NONAME
- _ZN17CGetPartialObjectC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 62 NONAME
- _ZN17CGetPartialObjectC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 63 NONAME
- _ZN17CGetPartialObjectD0Ev @ 64 NONAME
- _ZN17CGetPartialObjectD1Ev @ 65 NONAME
- _ZN17CGetPartialObjectD2Ev @ 66 NONAME
- _ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 67 NONAME
- _ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 68 NONAME
- _ZN17CRequestProcessor13CheckRequestLEv @ 69 NONAME
- _ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 70 NONAME
- _ZN17CRequestProcessor13UsbDisconnectEv @ 71 NONAME
- _ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 72 NONAME
- _ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 73 NONAME
- _ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 74 NONAME
- _ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 75 NONAME
- _ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 76 NONAME
- _ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 77 NONAME
- _ZN17CRequestProcessor4RunLEv @ 78 NONAME
- _ZN17CRequestProcessor7ReleaseEv @ 79 NONAME
- _ZN17CRequestProcessor8DoCancelEv @ 80 NONAME
- _ZN17CRequestProcessor8RunErrorEi @ 81 NONAME
- _ZN17CRequestProcessor9SendDataLERK8MMTPType @ 82 NONAME
- _ZN17CRequestProcessor9SessionIdEv @ 83 NONAME
- _ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 84 NONAME
- _ZN17CRequestProcessorD0Ev @ 85 NONAME
- _ZN17CRequestProcessorD1Ev @ 86 NONAME
- _ZN17CRequestProcessorD2Ev @ 87 NONAME
- _ZN18CGetObjectPropDesc10ConstructLEv @ 88 NONAME
- _ZN18CGetObjectPropDesc13CheckRequestLEv @ 89 NONAME
- _ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 90 NONAME
- _ZN18CGetObjectPropDesc8ServiceLEv @ 91 NONAME
- _ZN18CGetObjectPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 92 NONAME
- _ZN18CGetObjectPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 93 NONAME
- _ZN18CGetObjectPropDescD0Ev @ 94 NONAME
- _ZN18CGetObjectPropDescD1Ev @ 95 NONAME
- _ZN18CGetObjectPropDescD2Ev @ 96 NONAME
- _ZN18CGetObjectPropList10ConstructLEv @ 97 NONAME
- _ZN18CGetObjectPropList13CheckRequestLEv @ 98 NONAME
- _ZN18CGetObjectPropList4RunLEv @ 99 NONAME
- _ZN18CGetObjectPropList8DoCancelEv @ 100 NONAME
- _ZN18CGetObjectPropList8RunErrorEi @ 101 NONAME
- _ZN18CGetObjectPropList8ServiceLEv @ 102 NONAME
- _ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 103 NONAME
- _ZN18CGetObjectPropListD0Ev @ 104 NONAME
- _ZN18CGetObjectPropListD1Ev @ 105 NONAME
- _ZN18CGetObjectPropListD2Ev @ 106 NONAME
- _ZN18CSetObjectPropList13CheckRequestLEv @ 107 NONAME
- _ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 108 NONAME
- _ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 109 NONAME
- _ZN18CSetObjectPropList4RunLEv @ 110 NONAME
- _ZN18CSetObjectPropList8DoCancelEv @ 111 NONAME
- _ZN18CSetObjectPropList8RunErrorEi @ 112 NONAME
- _ZN18CSetObjectPropList8ServiceLEv @ 113 NONAME
- _ZN18CSetObjectPropListD0Ev @ 114 NONAME
- _ZN18CSetObjectPropListD1Ev @ 115 NONAME
- _ZN18CSetObjectPropListD2Ev @ 116 NONAME
- _ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 117 NONAME
- _ZN19CDescriptionUtilityC2Ev @ 118 NONAME
- _ZN19CDescriptionUtilityD0Ev @ 119 NONAME
- _ZN19CDescriptionUtilityD1Ev @ 120 NONAME
- _ZN19CDescriptionUtilityD2Ev @ 121 NONAME
- _ZN19CGetObjectPropValue13CheckRequestLEv @ 122 NONAME
- _ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 123 NONAME
- _ZN19CGetObjectPropValue8ServiceLEv @ 124 NONAME
- _ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 125 NONAME
- _ZN19CGetObjectPropValueD0Ev @ 126 NONAME
- _ZN19CGetObjectPropValueD1Ev @ 127 NONAME
- _ZN19CGetObjectPropValueD2Ev @ 128 NONAME
- _ZN19CSetObjectPropValue13CheckRequestLEv @ 129 NONAME
- _ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 130 NONAME
- _ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 131 NONAME
- _ZN19CSetObjectPropValue8ServiceLEv @ 132 NONAME
- _ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 133 NONAME
- _ZN19CSetObjectPropValueD0Ev @ 134 NONAME
- _ZN19CSetObjectPropValueD1Ev @ 135 NONAME
- _ZN19CSetObjectPropValueD2Ev @ 136 NONAME
- _ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 137 NONAME
- _ZN20CGetObjectReferencesD0Ev @ 138 NONAME
- _ZN20CGetObjectReferencesD1Ev @ 139 NONAME
- _ZN20CGetObjectReferencesD2Ev @ 140 NONAME
- _ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 141 NONAME
- _ZN20CSetObjectReferences22DoSetObjectReferencesLERK18CMTPObjectMetaData @ 142 NONAME
- _ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 143 NONAME
- _ZN20CSetObjectReferences8ServiceLEv @ 144 NONAME
- _ZN20CSetObjectReferencesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 145 NONAME
- _ZN20CSetObjectReferencesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 146 NONAME
- _ZN20CSetObjectReferencesD0Ev @ 147 NONAME
- _ZN20CSetObjectReferencesD1Ev @ 148 NONAME
- _ZN20CSetObjectReferencesD2Ev @ 149 NONAME
- _ZN22CGetFormatCapabilities10ConstructLEv @ 150 NONAME
- _ZN22CGetFormatCapabilities13CheckRequestLEv @ 151 NONAME
- _ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 152 NONAME
- _ZN22CGetFormatCapabilities8ServiceLEv @ 153 NONAME
- _ZN22CGetFormatCapabilitiesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 154 NONAME
- _ZN22CGetFormatCapabilitiesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 155 NONAME
- _ZN22CGetFormatCapabilitiesD0Ev @ 156 NONAME
- _ZN22CGetFormatCapabilitiesD1Ev @ 157 NONAME
- _ZN22CGetFormatCapabilitiesD2Ev @ 158 NONAME
- _ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 159 NONAME
- _ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 160 NONAME
- _ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 161 NONAME
- _ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 162 NONAME
- _ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 163 NONAME
- _ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 164 NONAME
- _ZN23CPropertySettingUtilityC2Ev @ 165 NONAME
- _ZN23CPropertySettingUtilityD0Ev @ 166 NONAME
- _ZN23CPropertySettingUtilityD1Ev @ 167 NONAME
- _ZN23CPropertySettingUtilityD2Ev @ 168 NONAME
- _ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 169 NONAME
- _ZN24CGetObjectPropsSupported8ServiceLEv @ 170 NONAME
- _ZN24CGetObjectPropsSupportedD0Ev @ 171 NONAME
- _ZN24CGetObjectPropsSupportedD1Ev @ 172 NONAME
- _ZN24CGetObjectPropsSupportedD2Ev @ 173 NONAME
- _ZN26CGetInterdependentPropDesc10ConstructLEv @ 174 NONAME
- _ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 175 NONAME
- _ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 176 NONAME
- _ZN26CGetInterdependentPropDesc8ServiceLEv @ 177 NONAME
- _ZN26CGetInterdependentPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 178 NONAME
- _ZN26CGetInterdependentPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 179 NONAME
- _ZN26CGetInterdependentPropDescD0Ev @ 180 NONAME
- _ZN26CGetInterdependentPropDescD1Ev @ 181 NONAME
- _ZN26CGetInterdependentPropDescD2Ev @ 182 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 183 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 184 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 185 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 186 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 187 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 188 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 189 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 190 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 191 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 192 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 193 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 194 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 195 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 196 NONAME
- _ZNK11CSendObject12HasDataphaseEv @ 197 NONAME
- _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 198 NONAME
- _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 199 NONAME
- _ZNK17CRequestProcessor10ConnectionEv @ 200 NONAME
- _ZNK17CRequestProcessor12HasDataphaseEv @ 201 NONAME
- _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 202 NONAME
- _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 203 NONAME
- _ZNK17CRequestProcessor7RequestEv @ 204 NONAME
- _ZNK18CSetObjectPropList12HasDataphaseEv @ 205 NONAME
- _ZNK19CSetObjectPropValue12HasDataphaseEv @ 206 NONAME
- _ZNK20CSetObjectReferences12HasDataphaseEv @ 207 NONAME
- _ZTI10CGetObject @ 208 NONAME
- _ZTI11CCopyObject @ 209 NONAME
- _ZTI11CMoveObject @ 210 NONAME
- _ZTI11CSendObject @ 211 NONAME
- _ZTI13CDeleteObject @ 212 NONAME
- _ZTI13CRenameObject @ 213 NONAME
- _ZTI14CGetObjectInfo @ 214 NONAME
- _ZTI15CRequestChecker @ 215 NONAME
- _ZTI15CRequestUnknown @ 216 NONAME
- _ZTI15TMTPTypeFlatBuf @ 217 NONAME
- _ZTI17CGetPartialObject @ 218 NONAME
- _ZTI17CRequestProcessor @ 219 NONAME
- _ZTI18CGetObjectPropDesc @ 220 NONAME
- _ZTI18CGetObjectPropList @ 221 NONAME
- _ZTI18CHXMetaDataUtility @ 222 NONAME
- _ZTI18CSetObjectPropList @ 223 NONAME
- _ZTI19CDescriptionUtility @ 224 NONAME
- _ZTI19CGetObjectPropValue @ 225 NONAME
- _ZTI19CSetObjectPropValue @ 226 NONAME
- _ZTI20CGetObjectReferences @ 227 NONAME
- _ZTI20CSetObjectReferences @ 228 NONAME
- _ZTI22CGetFormatCapabilities @ 229 NONAME
- _ZTI23CMmMtpDpAccessSingleton @ 230 NONAME
- _ZTI23CPropertySettingUtility @ 231 NONAME
- _ZTI24CGetObjectPropsSupported @ 232 NONAME
- _ZTI25CMmMtpDpMetadataMpxAccess @ 233 NONAME
- _ZTI26CGetInterdependentPropDesc @ 234 NONAME
- _ZTI27CMmMtpDpMetadataVideoAccess @ 235 NONAME
- _ZTI29CMmMtpDpMetadataAccessWrapper @ 236 NONAME
- _ZTV10CGetObject @ 237 NONAME
- _ZTV11CCopyObject @ 238 NONAME
- _ZTV11CMoveObject @ 239 NONAME
- _ZTV11CSendObject @ 240 NONAME
- _ZTV13CDeleteObject @ 241 NONAME
- _ZTV13CRenameObject @ 242 NONAME
- _ZTV14CGetObjectInfo @ 243 NONAME
- _ZTV15CRequestChecker @ 244 NONAME
- _ZTV15CRequestUnknown @ 245 NONAME
- _ZTV15TMTPTypeFlatBuf @ 246 NONAME
- _ZTV17CGetPartialObject @ 247 NONAME
- _ZTV17CRequestProcessor @ 248 NONAME
- _ZTV18CGetObjectPropDesc @ 249 NONAME
- _ZTV18CGetObjectPropList @ 250 NONAME
- _ZTV18CHXMetaDataUtility @ 251 NONAME
- _ZTV18CSetObjectPropList @ 252 NONAME
- _ZTV19CDescriptionUtility @ 253 NONAME
- _ZTV19CGetObjectPropValue @ 254 NONAME
- _ZTV19CSetObjectPropValue @ 255 NONAME
- _ZTV20CGetObjectReferences @ 256 NONAME
- _ZTV20CSetObjectReferences @ 257 NONAME
- _ZTV22CGetFormatCapabilities @ 258 NONAME
- _ZTV23CMmMtpDpAccessSingleton @ 259 NONAME
- _ZTV23CPropertySettingUtility @ 260 NONAME
- _ZTV24CGetObjectPropsSupported @ 261 NONAME
- _ZTV25CMmMtpDpMetadataMpxAccess @ 262 NONAME
- _ZTV26CGetInterdependentPropDesc @ 263 NONAME
- _ZTV27CMmMtpDpMetadataVideoAccess @ 264 NONAME
- _ZTV29CMmMtpDpMetadataAccessWrapper @ 265 NONAME
- _ZThn28_N11CSendObject13UsbDisconnectEv @ 266 NONAME
- _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 267 NONAME
- _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 268 NONAME
- _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 269 NONAME
- _ZThn28_N17CRequestProcessor7ReleaseEv @ 270 NONAME
- _ZThn28_N17CRequestProcessor9SessionIdEv @ 271 NONAME
- _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 272 NONAME
- _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 273 NONAME
- _ZThn28_NK17CRequestProcessor10ConnectionEv @ 274 NONAME
- _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 275 NONAME
- _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME
- _ZThn28_NK17CRequestProcessor7RequestEv @ 277 NONAME
+ _ZN14MmMtpDpUtility11SetPSStatusE12TMtpPSStatus @ 49 NONAME
+ _ZN14MmMtpDpUtility12GetDrmStatusERK7TDesC16 @ 50 NONAME
+ _ZN14MmMtpDpUtility18FormatFromFilenameERK7TDesC16 @ 51 NONAME
+ _ZN15CRequestUnknown4NewLER25MMTPDataProviderFrameworkR14MMTPConnection @ 52 NONAME
+ _ZN15CRequestUnknown8ServiceLEv @ 53 NONAME
+ _ZN15CRequestUnknownC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 54 NONAME
+ _ZN15CRequestUnknownC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 55 NONAME
+ _ZN15CRequestUnknownD0Ev @ 56 NONAME
+ _ZN15CRequestUnknownD1Ev @ 57 NONAME
+ _ZN15CRequestUnknownD2Ev @ 58 NONAME
+ _ZN17CGetPartialObject13CheckRequestLEv @ 59 NONAME
+ _ZN17CGetPartialObject22DoHandleResponsePhaseLEv @ 60 NONAME
+ _ZN17CGetPartialObject4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 61 NONAME
+ _ZN17CGetPartialObject8ServiceLEv @ 62 NONAME
+ _ZN17CGetPartialObjectC1ER25MMTPDataProviderFrameworkR14MMTPConnection @ 63 NONAME
+ _ZN17CGetPartialObjectC2ER25MMTPDataProviderFrameworkR14MMTPConnection @ 64 NONAME
+ _ZN17CGetPartialObjectD0Ev @ 65 NONAME
+ _ZN17CGetPartialObjectD1Ev @ 66 NONAME
+ _ZN17CGetPartialObjectD2Ev @ 67 NONAME
+ _ZN17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 68 NONAME
+ _ZN17CRequestProcessor12ReceiveDataLER8MMTPType @ 69 NONAME
+ _ZN17CRequestProcessor13CheckRequestLEv @ 70 NONAME
+ _ZN17CRequestProcessor13SendResponseLE16TMTPResponseCodeiPm @ 71 NONAME
+ _ZN17CRequestProcessor13UsbDisconnectEv @ 72 NONAME
+ _ZN17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 73 NONAME
+ _ZN17CRequestProcessor18DoHandleRToIPhaseLEv @ 74 NONAME
+ _ZN17CRequestProcessor21DoHandleRequestPhaseLEv @ 75 NONAME
+ _ZN17CRequestProcessor22DoHandleDataIToRPhaseLEv @ 76 NONAME
+ _ZN17CRequestProcessor22DoHandleResponsePhaseLEv @ 77 NONAME
+ _ZN17CRequestProcessor24DoHandleCompletingPhaseLEv @ 78 NONAME
+ _ZN17CRequestProcessor4RunLEv @ 79 NONAME
+ _ZN17CRequestProcessor7ReleaseEv @ 80 NONAME
+ _ZN17CRequestProcessor8DoCancelEv @ 81 NONAME
+ _ZN17CRequestProcessor8RunErrorEi @ 82 NONAME
+ _ZN17CRequestProcessor9SendDataLERK8MMTPType @ 83 NONAME
+ _ZN17CRequestProcessor9SessionIdEv @ 84 NONAME
+ _ZN17CRequestProcessorC2ER25MMTPDataProviderFrameworkR14MMTPConnectioniPK22TMTPRequestElementInfo @ 85 NONAME
+ _ZN17CRequestProcessorD0Ev @ 86 NONAME
+ _ZN17CRequestProcessorD1Ev @ 87 NONAME
+ _ZN17CRequestProcessorD2Ev @ 88 NONAME
+ _ZN18CGetObjectPropDesc10ConstructLEv @ 89 NONAME
+ _ZN18CGetObjectPropDesc13CheckRequestLEv @ 90 NONAME
+ _ZN18CGetObjectPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 91 NONAME
+ _ZN18CGetObjectPropDesc8ServiceLEv @ 92 NONAME
+ _ZN18CGetObjectPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 93 NONAME
+ _ZN18CGetObjectPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 94 NONAME
+ _ZN18CGetObjectPropDescD0Ev @ 95 NONAME
+ _ZN18CGetObjectPropDescD1Ev @ 96 NONAME
+ _ZN18CGetObjectPropDescD2Ev @ 97 NONAME
+ _ZN18CGetObjectPropList10ConstructLEv @ 98 NONAME
+ _ZN18CGetObjectPropList13CheckRequestLEv @ 99 NONAME
+ _ZN18CGetObjectPropList4RunLEv @ 100 NONAME
+ _ZN18CGetObjectPropList8DoCancelEv @ 101 NONAME
+ _ZN18CGetObjectPropList8RunErrorEi @ 102 NONAME
+ _ZN18CGetObjectPropList8ServiceLEv @ 103 NONAME
+ _ZN18CGetObjectPropListC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 104 NONAME
+ _ZN18CGetObjectPropListD0Ev @ 105 NONAME
+ _ZN18CGetObjectPropListD1Ev @ 106 NONAME
+ _ZN18CGetObjectPropListD2Ev @ 107 NONAME
+ _ZN18CSetObjectPropList13CheckRequestLEv @ 108 NONAME
+ _ZN18CSetObjectPropList22DoHandleResponsePhaseLEv @ 109 NONAME
+ _ZN18CSetObjectPropList4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 110 NONAME
+ _ZN18CSetObjectPropList4RunLEv @ 111 NONAME
+ _ZN18CSetObjectPropList8DoCancelEv @ 112 NONAME
+ _ZN18CSetObjectPropList8RunErrorEi @ 113 NONAME
+ _ZN18CSetObjectPropList8ServiceLEv @ 114 NONAME
+ _ZN18CSetObjectPropListD0Ev @ 115 NONAME
+ _ZN18CSetObjectPropListD1Ev @ 116 NONAME
+ _ZN18CSetObjectPropListD2Ev @ 117 NONAME
+ _ZN19CDescriptionUtility24NewRangeFormDescriptionLEtmmmi @ 118 NONAME
+ _ZN19CDescriptionUtilityC2Ev @ 119 NONAME
+ _ZN19CDescriptionUtilityD0Ev @ 120 NONAME
+ _ZN19CDescriptionUtilityD1Ev @ 121 NONAME
+ _ZN19CDescriptionUtilityD2Ev @ 122 NONAME
+ _ZN19CGetObjectPropValue13CheckRequestLEv @ 123 NONAME
+ _ZN19CGetObjectPropValue27ServiceMetaDataFromWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 124 NONAME
+ _ZN19CGetObjectPropValue8ServiceLEv @ 125 NONAME
+ _ZN19CGetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 126 NONAME
+ _ZN19CGetObjectPropValueD0Ev @ 127 NONAME
+ _ZN19CGetObjectPropValueD1Ev @ 128 NONAME
+ _ZN19CGetObjectPropValueD2Ev @ 129 NONAME
+ _ZN19CSetObjectPropValue13CheckRequestLEv @ 130 NONAME
+ _ZN19CSetObjectPropValue22DoHandleResponsePhaseLEv @ 131 NONAME
+ _ZN19CSetObjectPropValue25ServiceMetaDataToWrapperLEtR8MMTPTypeRK18CMTPObjectMetaData @ 132 NONAME
+ _ZN19CSetObjectPropValue8ServiceLEv @ 133 NONAME
+ _ZN19CSetObjectPropValueC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 134 NONAME
+ _ZN19CSetObjectPropValueD0Ev @ 135 NONAME
+ _ZN19CSetObjectPropValueD1Ev @ 136 NONAME
+ _ZN19CSetObjectPropValueD2Ev @ 137 NONAME
+ _ZN20CGetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 138 NONAME
+ _ZN20CGetObjectReferencesD0Ev @ 139 NONAME
+ _ZN20CGetObjectReferencesD1Ev @ 140 NONAME
+ _ZN20CGetObjectReferencesD2Ev @ 141 NONAME
+ _ZN20CSetObjectReferences22DoHandleResponsePhaseLEv @ 142 NONAME
+ _ZN20CSetObjectReferences22DoSetObjectReferencesLERK18CMTPObjectMetaData @ 143 NONAME
+ _ZN20CSetObjectReferences4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 144 NONAME
+ _ZN20CSetObjectReferences8ServiceLEv @ 145 NONAME
+ _ZN20CSetObjectReferencesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 146 NONAME
+ _ZN20CSetObjectReferencesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 147 NONAME
+ _ZN20CSetObjectReferencesD0Ev @ 148 NONAME
+ _ZN20CSetObjectReferencesD1Ev @ 149 NONAME
+ _ZN20CSetObjectReferencesD2Ev @ 150 NONAME
+ _ZN22CGetFormatCapabilities10ConstructLEv @ 151 NONAME
+ _ZN22CGetFormatCapabilities13CheckRequestLEv @ 152 NONAME
+ _ZN22CGetFormatCapabilities4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 153 NONAME
+ _ZN22CGetFormatCapabilities8ServiceLEv @ 154 NONAME
+ _ZN22CGetFormatCapabilitiesC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 155 NONAME
+ _ZN22CGetFormatCapabilitiesC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 156 NONAME
+ _ZN22CGetFormatCapabilitiesD0Ev @ 157 NONAME
+ _ZN22CGetFormatCapabilitiesD1Ev @ 158 NONAME
+ _ZN22CGetFormatCapabilitiesD2Ev @ 159 NONAME
+ _ZN23CMmMtpDpAccessSingleton12OpenSessionLEv @ 160 NONAME
+ _ZN23CMmMtpDpAccessSingleton13CloseSessionLEv @ 161 NONAME
+ _ZN23CMmMtpDpAccessSingleton17GetAccessWrapperLEv @ 162 NONAME
+ _ZN23CMmMtpDpAccessSingleton24ActiveToIdleStatusChangeEv @ 163 NONAME
+ _ZN23CMmMtpDpAccessSingleton30CancelActiveToIdleStatusChangeEv @ 164 NONAME
+ _ZN23CMmMtpDpAccessSingleton7CreateLER25MMTPDataProviderFramework @ 165 NONAME
+ _ZN23CMmMtpDpAccessSingleton7ReleaseEv @ 166 NONAME
+ _ZN23CPropertySettingUtility20SetMetaDataToWrapperER14MMmMtpDpConfigtR8MMTPTypeRK18CMTPObjectMetaData @ 167 NONAME
+ _ZN23CPropertySettingUtilityC2Ev @ 168 NONAME
+ _ZN23CPropertySettingUtilityD0Ev @ 169 NONAME
+ _ZN23CPropertySettingUtilityD1Ev @ 170 NONAME
+ _ZN23CPropertySettingUtilityD2Ev @ 171 NONAME
+ _ZN24CGetObjectPropsSupported4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 172 NONAME
+ _ZN24CGetObjectPropsSupported8ServiceLEv @ 173 NONAME
+ _ZN24CGetObjectPropsSupportedD0Ev @ 174 NONAME
+ _ZN24CGetObjectPropsSupportedD1Ev @ 175 NONAME
+ _ZN24CGetObjectPropsSupportedD2Ev @ 176 NONAME
+ _ZN26CGetInterdependentPropDesc10ConstructLEv @ 177 NONAME
+ _ZN26CGetInterdependentPropDesc13CheckRequestLEv @ 178 NONAME
+ _ZN26CGetInterdependentPropDesc4NewLER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 179 NONAME
+ _ZN26CGetInterdependentPropDesc8ServiceLEv @ 180 NONAME
+ _ZN26CGetInterdependentPropDescC1ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 181 NONAME
+ _ZN26CGetInterdependentPropDescC2ER25MMTPDataProviderFrameworkR14MMTPConnectionR14MMmMtpDpConfig @ 182 NONAME
+ _ZN26CGetInterdependentPropDescD0Ev @ 183 NONAME
+ _ZN26CGetInterdependentPropDescD1Ev @ 184 NONAME
+ _ZN26CGetInterdependentPropDescD2Ev @ 185 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper10AddObjectLERK18CMTPObjectMetaData @ 186 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 187 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 188 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 189 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 190 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 191 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 192 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 193 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 194 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 195 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 196 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 197 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLERK7TDesC16 @ 198 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 199 NONAME
+ _ZNK11CSendObject12HasDataphaseEv @ 200 NONAME
+ _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 201 NONAME
+ _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 202 NONAME
+ _ZNK17CRequestProcessor10ConnectionEv @ 203 NONAME
+ _ZNK17CRequestProcessor12HasDataphaseEv @ 204 NONAME
+ _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 205 NONAME
+ _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 206 NONAME
+ _ZNK17CRequestProcessor7RequestEv @ 207 NONAME
+ _ZNK18CSetObjectPropList12HasDataphaseEv @ 208 NONAME
+ _ZNK19CSetObjectPropValue12HasDataphaseEv @ 209 NONAME
+ _ZNK20CSetObjectReferences12HasDataphaseEv @ 210 NONAME
+ _ZTI10CGetObject @ 211 NONAME
+ _ZTI11CCopyObject @ 212 NONAME
+ _ZTI11CMoveObject @ 213 NONAME
+ _ZTI11CSendObject @ 214 NONAME
+ _ZTI13CDeleteObject @ 215 NONAME
+ _ZTI13CRenameObject @ 216 NONAME
+ _ZTI14CGetObjectInfo @ 217 NONAME
+ _ZTI15CRequestChecker @ 218 NONAME
+ _ZTI15CRequestUnknown @ 219 NONAME
+ _ZTI15TMTPTypeFlatBuf @ 220 NONAME
+ _ZTI17CGetPartialObject @ 221 NONAME
+ _ZTI17CRequestProcessor @ 222 NONAME
+ _ZTI18CGetObjectPropDesc @ 223 NONAME
+ _ZTI18CGetObjectPropList @ 224 NONAME
+ _ZTI18CHXMetaDataUtility @ 225 NONAME
+ _ZTI18CSetObjectPropList @ 226 NONAME
+ _ZTI19CDescriptionUtility @ 227 NONAME
+ _ZTI19CGetObjectPropValue @ 228 NONAME
+ _ZTI19CSetObjectPropValue @ 229 NONAME
+ _ZTI20CGetObjectReferences @ 230 NONAME
+ _ZTI20CSetObjectReferences @ 231 NONAME
+ _ZTI22CGetFormatCapabilities @ 232 NONAME
+ _ZTI23CMmMtpDpAccessSingleton @ 233 NONAME
+ _ZTI23CPropertySettingUtility @ 234 NONAME
+ _ZTI24CGetObjectPropsSupported @ 235 NONAME
+ _ZTI25CMmMtpDpMetadataMpxAccess @ 236 NONAME
+ _ZTI26CGetInterdependentPropDesc @ 237 NONAME
+ _ZTI27CMmMtpDpMetadataVideoAccess @ 238 NONAME
+ _ZTI29CMmMtpDpMetadataAccessWrapper @ 239 NONAME
+ _ZTV10CGetObject @ 240 NONAME
+ _ZTV11CCopyObject @ 241 NONAME
+ _ZTV11CMoveObject @ 242 NONAME
+ _ZTV11CSendObject @ 243 NONAME
+ _ZTV13CDeleteObject @ 244 NONAME
+ _ZTV13CRenameObject @ 245 NONAME
+ _ZTV14CGetObjectInfo @ 246 NONAME
+ _ZTV15CRequestChecker @ 247 NONAME
+ _ZTV15CRequestUnknown @ 248 NONAME
+ _ZTV15TMTPTypeFlatBuf @ 249 NONAME
+ _ZTV17CGetPartialObject @ 250 NONAME
+ _ZTV17CRequestProcessor @ 251 NONAME
+ _ZTV18CGetObjectPropDesc @ 252 NONAME
+ _ZTV18CGetObjectPropList @ 253 NONAME
+ _ZTV18CHXMetaDataUtility @ 254 NONAME
+ _ZTV18CSetObjectPropList @ 255 NONAME
+ _ZTV19CDescriptionUtility @ 256 NONAME
+ _ZTV19CGetObjectPropValue @ 257 NONAME
+ _ZTV19CSetObjectPropValue @ 258 NONAME
+ _ZTV20CGetObjectReferences @ 259 NONAME
+ _ZTV20CSetObjectReferences @ 260 NONAME
+ _ZTV22CGetFormatCapabilities @ 261 NONAME
+ _ZTV23CMmMtpDpAccessSingleton @ 262 NONAME
+ _ZTV23CPropertySettingUtility @ 263 NONAME
+ _ZTV24CGetObjectPropsSupported @ 264 NONAME
+ _ZTV25CMmMtpDpMetadataMpxAccess @ 265 NONAME
+ _ZTV26CGetInterdependentPropDesc @ 266 NONAME
+ _ZTV27CMmMtpDpMetadataVideoAccess @ 267 NONAME
+ _ZTV29CMmMtpDpMetadataAccessWrapper @ 268 NONAME
+ _ZThn28_N11CSendObject13UsbDisconnectEv @ 269 NONAME
+ _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 270 NONAME
+ _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 271 NONAME
+ _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 272 NONAME
+ _ZThn28_N17CRequestProcessor7ReleaseEv @ 273 NONAME
+ _ZThn28_N17CRequestProcessor9SessionIdEv @ 274 NONAME
+ _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 275 NONAME
+ _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME
+ _ZThn28_NK17CRequestProcessor10ConnectionEv @ 277 NONAME
+ _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 278 NONAME
+ _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 279 NONAME
+ _ZThn28_NK17CRequestProcessor7RequestEv @ 280 NONAME
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/inc/crequestprocessor.h Tue May 25 13:14:13 2010 +0300
@@ -311,7 +311,6 @@
/**
* Set P&S Status to avoid MPX access conflict
*/
- void SetPSStatus();
private:
/**
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/ccopyobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -107,10 +107,6 @@
EXPORT_C void CCopyObject::ConstructL()
{
iPropertyList = CMTPTypeObjectPropList::NewL();
-
- // Set the CenRep value of MTP status,
- // also need to do in other processors which related to MPX
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -122,6 +118,7 @@
{
PRINT( _L( "MM MTP => CCopyObject::ServiceL" ) );
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
CopyObjectL();
PRINT( _L( "MM MTP <= CCopyObject::ServiceL" ) );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cdeleteobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -64,7 +64,6 @@
void CDeleteObject::ConstructL()
{
CActiveScheduler::Add( this );
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -104,6 +103,8 @@
//
EXPORT_C void CDeleteObject::ServiceL()
{
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+
iObjectsToDelete.Reset();
iDeleteError = KErrNone;
TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -19,6 +19,7 @@
#include <mtp/cmtptypefile.h>
#include "cgetobject.h"
+#include "mmmtpdputility.h"
#include "mmmtpdplogger.h"
// -----------------------------------------------------------------------------
@@ -60,7 +61,6 @@
//
void CGetObject::ConstructL()
{
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -99,6 +99,8 @@
void CGetObject::ServiceL()
{
PRINT( _L( "MM MTP => CGetObject::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
// Get the objectinfo
TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectinfo.cpp Tue May 25 13:14:13 2010 +0300
@@ -96,8 +96,6 @@
EXPORT_C void CGetObjectInfo::ConstructL()
{
CActiveScheduler::Add( this );
-
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -108,6 +106,8 @@
void CGetObjectInfo::ServiceL()
{
PRINT( _L( "MM MTP => CGetObjectInfo::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
delete iObjectInfo;
iObjectInfo = NULL;
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectproplist.cpp Tue May 25 13:14:13 2010 +0300
@@ -98,8 +98,6 @@
iPropertyList = CMTPTypeObjectPropList::NewL();
- SetPSStatus();
-
#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
iPerfLog = CMmMtpDpPerfLog::NewL( _L( "MediaMtpDataProviderEnumerator" ) );
#endif
@@ -143,6 +141,8 @@
//
EXPORT_C void CGetObjectPropList::ServiceL()
{
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+
GetObjectHandlesL();
TInt numOfObjects = iHandles.Count();
PRINT2( _L( "MM MTP <> CGetObjectPropList::ServiceL, numOfObjects = %d, iPropCode = 0x%x" ),
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectpropvalue.cpp Tue May 25 13:14:13 2010 +0300
@@ -70,7 +70,6 @@
KMTPGetObjectPropValuePolicy ),
iDpConfig( aDpConfig )
{
- SetPSStatus();
PRINT( _L( "Operation: GetObjectPropValue(0x9803)" ) );
}
@@ -130,6 +129,8 @@
EXPORT_C void CGetObjectPropValue::ServiceL()
{
PRINT( _L( "MM MTP => CGetObjectPropValue::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
//Get the request information
TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetobjectreferences.cpp Tue May 25 13:14:13 2010 +0300
@@ -24,6 +24,7 @@
#endif
#include "cgetobjectreferences.h"
+#include "mmmtpdputility.h"
#include "mmmtpdplogger.h"
// -----------------------------------------------------------------------------
@@ -67,7 +68,6 @@
//
void CGetObjectReferences::ConstructL()
{
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -103,6 +103,8 @@
void CGetObjectReferences::ServiceL()
{
PRINT( _L( "MM MTP => CGetObjectReferences::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
TUint32 objectHandle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
PRINT1( _L( "MM MTP <> CGetObjectReferences::ServiceL objectHandle = 0x%x" ),
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cgetpartialobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -19,6 +19,7 @@
#include <mtp/cmtptypefile.h>
#include "cgetpartialobject.h"
+#include "mmmtpdputility.h"
#include "mmmtpdplogger.h"
#include "tmmmtpdppanic.h"
#include "mmmtpdpconfig.h"
@@ -80,7 +81,6 @@
//
void CGetPartialObject::ConstructL()
{
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -147,6 +147,8 @@
EXPORT_C void CGetPartialObject::ServiceL()
{
PRINT( _L( "MM MTP => CGetPartialObject::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
// Get file information
CMTPObjectMetaData* objectInfo = iRequestChecker->GetObjectInfo( iObjectHandle );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -105,10 +105,6 @@
EXPORT_C void CMoveObject::ConstructL()
{
iPropertyList = CMTPTypeObjectPropList::NewL();
-
- // Set the CenRep value of MTP status,
- // also need to do in other processors which related to MPX
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -119,7 +115,8 @@
EXPORT_C void CMoveObject::ServiceL()
{
PRINT( _L( "MM MTP => CMoveObject::ServiceL" ) );
-
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
MoveObjectL();
PRINT( _L( "MM MTP <= CMoveObject::ServiceL" ) );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -25,6 +25,7 @@
#include "mmmtpdplogger.h"
#include "cmmmtpdpmetadataaccesswrapper.h"
#include "crequestprocessor.h" // refer to KMmMtpRArrayGranularity
+#include "mmmtpdputility.h"
// -----------------------------------------------------------------------------
// CRenameObject::NewL
@@ -98,6 +99,8 @@
PRINT1( _L( "MM MTP <> CRenameObject::StartL, handle count = %d" ), iCount );
if ( iCount > 0 )
{
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+
// get the old/new folder full file name
GetParentSuidL( aParentHandle, aOldFolderName );
@@ -169,6 +172,8 @@
{
if( iRenameWaiter->IsStarted() )
iRenameWaiter->AsyncStop();
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync);
}
PRINT( _L( "MM MTP <= CRenameObject::RunL" ) );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crequestprocessor.cpp Tue May 25 13:14:13 2010 +0300
@@ -21,11 +21,10 @@
#include <mtp/tmtptypeevent.h>
#include <mtp/mmtpconnection.h>
#include <mtp/mmtpobjectmgr.h>
-#include <e32property.h>
-#include <mtpprivatepskeys.h>
#include "crequestprocessor.h"
#include "crequestchecker.h"
+#include "mmmtpdputility.h"
#include "mmmtpdplogger.h"
static const TInt KNullBufferSize = 4096;
@@ -214,6 +213,7 @@
break;
case ECompletingPhase:
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync);
result = DoHandleCompletingPhaseL();
break;
@@ -427,23 +427,6 @@
}
// -----------------------------------------------------------------------------
-// CRequestProcessor::SetPSStatus
-// Set P&S Status to avoid MPX access conflict
-// -----------------------------------------------------------------------------
-//
-void CRequestProcessor::SetPSStatus()
- {
- TInt mtpStatus;
- RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus);
-
- if ( mtpStatus != EMtpPSStatusActive )
- {
- TInt err = RProperty::Set( KMtpPSUid, KMtpPSStatus, EMtpPSStatusActive );
- PRINT1( _L("MM MTP <> CRequestProcessor::SetPSStatus err = %d" ), err );
- }
- }
-
-// -----------------------------------------------------------------------------
// CRequestProcessor::ExtractSessionTransactionId
// retrieve the session id and transaction code from the current request
// -----------------------------------------------------------------------------
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Tue May 25 13:14:13 2010 +0300
@@ -129,7 +129,7 @@
PRINT1( _L( "MM MTP <> CSendObject::ConstructL DataProviderId = 0x%x" ), iFramework.DataProviderId());
- SetPSStatus();
+
PRINT( _L( "MM MTP <= CSendObject::ConstructL" ) );
}
@@ -324,6 +324,8 @@
EXPORT_C void CSendObject::ServiceL()
{
PRINT( _L( "MM MTP => CSendObject::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
if ( iProgress == EObjectNone )
{
@@ -596,7 +598,7 @@
// Commits into MTP data object enumeration store the object handle and
// storage space previously reserved for the specified object.
iFramework.ObjectMgr().CommitReservedObjectHandleL( *iReceivedObjectInfo );
- iRollbackList.Append( RemoveObjectFromDbL );
+ iRollbackList.Append( &CSendObject::RemoveObjectFromDbL );
}
// Commit object to MTP data store
@@ -1139,7 +1141,7 @@
// by the specified object information record.
TRAP( err, iObjectMgr.ReserveObjectHandleL( *iReceivedObjectInfo,
iObjectSize ) );
- iRollbackList.Append( UnreserveObjectL );
+ iRollbackList.Append( &CSendObject::UnreserveObjectL );
PRINT2( _L( "MM MTP => CSendObject::ReserveObjectL iObjectsize = %Lu, Operation: 0x%x" ), iObjectSize, iOperationCode );
if ( err != KErrNone )
@@ -1152,7 +1154,7 @@
delete iFileReceived;
iFileReceived = NULL;
PRINT2( _L( "MM MTP <> CSendObject::ServiceObjectL, iFullPath is %S, iObjectSize: %Lu" ), &iFullPath, iObjectSize );
- iRollbackList.Append( RemoveObjectFromFs );
+ iRollbackList.Append( &CSendObject::RemoveObjectFromFs );
TRAP( err, iFileReceived = CMTPTypeFile::NewL( iFs, iFullPath, EFileWrite ) );
PRINT1( _L("MM MTP <> CMTPTypeFile::NewL Leave Code is: %d"), err );
@@ -1269,7 +1271,7 @@
TRAPD( err, AddMediaToStoreL() );
if ( err != KErrNone )
- iRollbackList.Append( RemoveObjectFromDbL );
+ iRollbackList.Append( &CSendObject::RemoveObjectFromDbL );
else
iRollbackList.Reset();
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectproplist.cpp Tue May 25 13:14:13 2010 +0300
@@ -73,7 +73,6 @@
CActiveScheduler::Add( this );
iPropertyList = CMTPTypeObjectPropList::NewL();
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -115,6 +114,9 @@
EXPORT_C void CSetObjectPropList::ServiceL()
{
PRINT( _L( "MM MTP => CSetObjectPropList::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+
// Recieve the data from the property list
ReceiveDataL( *iPropertyList );
PRINT( _L( "MM MTP <= CSetObjectPropList::ServiceL" ) );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectpropvalue.cpp Tue May 25 13:14:13 2010 +0300
@@ -74,7 +74,6 @@
iDpConfig( aDpConfig ),
iFs( aFramework.Fs() )
{
- SetPSStatus();
PRINT( _L( "Operation: SetObjectPropValue(0x9804)" ) );
}
@@ -199,6 +198,9 @@
EXPORT_C void CSetObjectPropValue::ServiceL()
{
PRINT( _L( "MM MTP => CSetObjectPropValue::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+
__ASSERT_DEBUG( iRequestChecker, Panic( EMmMTPDpRequestCheckNull ) );
TUint32 handle = Request().Uint32( TMTPTypeRequest::ERequestParameter1 );
PRINT1( _L( "MM MTP <> CSetObjectPropValue::ServiceL handle = 0x%x" ), handle );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csetobjectreferences.cpp Tue May 25 13:14:13 2010 +0300
@@ -70,7 +70,6 @@
//
void CSetObjectReferences::ConstructL()
{
- SetPSStatus();
}
// -----------------------------------------------------------------------------
@@ -126,6 +125,9 @@
EXPORT_C void CSetObjectReferences::ServiceL()
{
PRINT( _L( "MM MTP => CSetObjectReferences::ServiceL" ) );
+
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusActive);
+
delete iReferences;
iReferences = NULL;
iReferences = CMTPTypeArray::NewL( EMTPTypeAUINT32 );
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpaccesssingleton.cpp Tue May 25 13:14:13 2010 +0300
@@ -21,6 +21,7 @@
#include "cmmmtpdpaccesssingleton.h"
#include "cmmmtpdpmetadataaccesswrapper.h"
#include "mmmtpdplogger.h"
+#include "mmmtpdputility.h"
// -----------------------------------------------------------------------------
// CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton
@@ -30,6 +31,12 @@
CMmMtpDpAccessSingleton::~CMmMtpDpAccessSingleton()
{
delete iWrapper;
+
+ if (iDelayStatusChanger)
+ {
+ iDelayStatusChanger->Cancel();
+ delete iDelayStatusChanger;
+ }
}
// -----------------------------------------------------------------------------
@@ -151,7 +158,73 @@
void CMmMtpDpAccessSingleton::ConstructL( MMTPDataProviderFramework& aFramework )
{
iWrapper = CMmMtpDpMetadataAccessWrapper::NewL( aFramework );
+ iDelayStatusChanger = CIdle::NewL(CActive::EPriorityIdle);
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMtpDpAccessSingleton::ActiveToIdleStatusChange
+// Issue ActiveToIdle Status Change (ActiveObject)
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMmMtpDpAccessSingleton::ActiveToIdleStatusChange()
+ {
+ PRINT( _L( "CMmMtpDpAccessSingleton::ActiveToIdleStatusChange" ) );
+ CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance();
+
+ if (self != NULL)
+ {
+ CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange();
+
+ if (self->DelayStatusChanger() != NULL)
+ self->DelayStatusChanger()->Start(TCallBack(DoActiveToIdleStatusChange, self));
+ }
}
+// -----------------------------------------------------------------------------
+// CMmMtpDpAccessSingleton::CancelActiveToIdleChange
+// Cancel Outstanding ActiveToIdle Status Change
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange()
+ {
+ CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance();
+
+ if ((self != NULL) && (self->DelayStatusChanger() != NULL))
+ {
+ if (self->DelayStatusChanger()->IsActive())
+ {
+ PRINT( _L( "CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange, cancel outstanding request" ) );
+ self->DelayStatusChanger()->Cancel();
+ }
+ }
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMtpDpAccessSingleton::DelayStatusChanger
+// get DelayStatusChanger instance, internal use only
+// -----------------------------------------------------------------------------
+//
+CIdle* CMmMtpDpAccessSingleton::DelayStatusChanger()
+ {
+ CIdle* delayStatusChanger = NULL;
+ CMmMtpDpAccessSingleton* self = CMmMtpDpAccessSingleton::Instance();
+
+ if (self != NULL)
+ delayStatusChanger = self->iDelayStatusChanger;
+
+ return delayStatusChanger;
+ }
+
+// -----------------------------------------------------------------------------
+// CMmMtpDpAccessSingleton::DoActiveToIdleChange
+// Perform actural ActiveToIdle Status Change after active object callback
+// -----------------------------------------------------------------------------
+//
+TInt CMmMtpDpAccessSingleton::DoActiveToIdleStatusChange(TAny* /*Any*/)
+ {
+ PRINT( _L( "CMmMtpDpAccessSingleton::DoActiveToIdleStatusChange ") );
+ MmMtpDpUtility::DoSetPSStatus(EMtpPSStatusReadyToSync);
+ return KErrNone;
+ }
// end of file
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Tue May 25 13:14:13 2010 +0300
@@ -25,6 +25,7 @@
#include <e32property.h>
#include <mtpprivatepskeys.h>
+#include "mmmtpdp_variant.hrh"
#include "cmmmtpdpmetadataaccesswrapper.h"
#include "cmmmtpdpmetadatampxaccess.h"
#include "cmmmtpdpmetadatavideoaccess.h"
@@ -76,6 +77,12 @@
KKeyReadPolicy,
KKeyWritePolicy);
+#ifdef MMMTPDP_RESET_STATUS_CLOSESESSION
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusUninitialized);
+#else
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync);
+#endif // MMMTPDP_RESET_STATUS_CLOSESESSION
+
PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::ConstructL" ) );
}
@@ -95,9 +102,8 @@
delete iMmMtpDpMetadataMpxAccess;
// unblock MPX
- RProperty::Set( KMtpPSUid,
- KMtpPSStatus,
- EMtpPSStatusUninitialized );
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusUninitialized);
+
PRINT( _L( "MM MTP <= CMmMtpDpMetadataAccessWrapper::~CMmMtpDpMetadataAccessWrapper" ) );
}
@@ -337,6 +343,11 @@
void CMmMtpDpMetadataAccessWrapper::OpenSessionL()
{
iOpenCount++;
+
+#ifdef MMMTPDP_RESET_STATUS_CLOSESESSION
+ if (iOpenCount == 1)
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusReadyToSync);
+#endif // MMMTPDP_RESET_STATUS_CLOSESESSION
}
// -----------------------------------------------------------------------------
@@ -355,8 +366,12 @@
if ( iOpenCount == 0 )
{
PRINT( _L( "MM MTP <> CMmMtpDpMetadataAccessWrapper::CloseSessionL close" ) );
- iMmMtpDpMetadataMpxAccess->CloseSession();
+ iMmMtpDpMetadataMpxAccess->CloseSession(); // trigger close and flush CollectionHelper
iMmMtpDpMetadataVideoAccess->CloseSessionL();
+
+#ifdef MMMTPDP_RESET_STATUS_CLOSESESSION
+ MmMtpDpUtility::SetPSStatus(EMtpPSStatusUninitialized);
+#endif // MMMTPDP_RESET_STATUS_CLOSESESSION
}
}
else
--- a/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp Tue May 25 13:14:13 2010 +0300
@@ -27,6 +27,7 @@
#include <mtp/mmtpdataproviderframework.h>
#include <mtp/mmtpobjectmgr.h>
#include <mtp/tmtptypeuint32.h>
+#include <e32property.h> // for RProperty
// for asf mimetype parsing
#ifdef __WINDOWS_MEDIA
@@ -39,6 +40,7 @@
#include "tobjectdescription.h"
#include "mmmtpdplogger.h"
#include "mmmtpdp_variant.hrh"
+#include "cmmmtpdpaccesssingleton.h"
using namespace ContentAccess;
@@ -702,4 +704,36 @@
return drmStatus;
}
+EXPORT_C void MmMtpDpUtility::SetPSStatus( TMtpPSStatus aStatus )
+ {
+ TBool changeScheduled = EFalse;
+ CMmMtpDpAccessSingleton::CancelActiveToIdleStatusChange(); // cancel any outstanding delay status change
+
+ if ( aStatus == EMtpPSStatusReadyToSync )
+ {
+ TInt mtpStatus;
+ RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus );
+
+ if ( mtpStatus == EMtpPSStatusActive )
+ {
+ CMmMtpDpAccessSingleton::ActiveToIdleStatusChange();
+ changeScheduled = ETrue;
+ }
+ }
+
+ if ( !changeScheduled )
+ DoSetPSStatus( aStatus );
+ }
+
+void MmMtpDpUtility::DoSetPSStatus( TMtpPSStatus aStatus )
+ {
+ TInt mtpStatus;
+ RProperty::Get( KMtpPSUid, KMtpPSStatus, mtpStatus );
+
+ if ( mtpStatus != aStatus )
+ {
+ TInt err = RProperty::Set( KMtpPSUid, KMtpPSStatus, aStatus );
+ PRINT3( _L("MM MTP <> CRequestProcessor::DoSetPSStatus err = %d, previous = %d, current = %d" ), err , mtpStatus, aStatus);
+ }
+ }
// end of file
--- a/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h Tue May 11 16:40:32 2010 +0300
+++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.h Tue May 25 13:14:13 2010 +0300
@@ -192,13 +192,6 @@
inline TProcessId LastActiveProcessId() const;
/**
- * Retursn last inactive process id
- *
- * @return process id of last inactive process
- */
- inline TProcessId LastInactiveProcessId() const;
-
- /**
* Initializes the player with a song in the collection
*
* @param aCollectionPath collection path
--- a/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl Tue May 11 16:40:32 2010 +0300
+++ b/mpx/playbackframework/playbackengine/inc/mpxplaybackengine.inl Tue May 25 13:14:13 2010 +0300
@@ -156,15 +156,6 @@
}
// ----------------------------------------------------------------------------
-// Return last inactive process id
-// ----------------------------------------------------------------------------
-//
-inline TProcessId CMPXPlaybackEngine::LastInactiveProcessId() const
- {
- return iLastInactiveProcess;
- }
-
-// ----------------------------------------------------------------------------
// CPlaybackCallbackReflector constructor
// ----------------------------------------------------------------------------
//
--- a/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Tue May 25 13:14:13 2010 +0300
@@ -530,12 +530,6 @@
iLastActiveProcess = aCmd.ValueTObjectL<TProcessId>(
KMPXCommandPlaybackGeneralClientPid);
}
- else if (EPbCmdStop == cmd)
- {
- ASSERT(aCmd.IsSupported(KMPXCommandPlaybackGeneralClientPid));
- iLastInactiveProcess = aCmd.ValueTObjectL<TProcessId>(
- KMPXCommandPlaybackGeneralClientPid);
- }
TInt data(0);
if (aCmd.IsSupported(KMPXCommandPlaybackGeneralData))
{
@@ -651,6 +645,7 @@
break;
case EPbPropertyMute:
MPX_DEBUG2( "CMPXPlaybackEngine::SetL EPbPropertyMute %d", aValue );
+ iProperties[EPbPropertyMute] = aValue; // set now, needed when EPSetComplete is converted to EPropertyChanged
if ( iPluginHandler->Plugin() )
{
PluginL()->SetL( aProperty, aValue );
@@ -1134,14 +1129,12 @@
}
case EPMuteChanged:
{
- if ( iProperties[EPbPropertyMute] != aData )
- {
- iProperties[EPbPropertyMute] = aData;
- iClientList->SendMsgL(
- TMPXPlaybackMessage(TMPXPlaybackMessage::EPropertyChanged,
+ // property changed broadcast message after successful return from plugins
+ iProperties[EPbPropertyMute] = aData;
+ iClientList->SendMsgL(
+ TMPXPlaybackMessage(TMPXPlaybackMessage::EPropertyChanged,
EPbPropertyMute,
iProperties[EPbPropertyMute]));
- }
break;
}
case EPPositionChanged:
--- a/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mpx/playbackframework/playbackserver/src/mpxplaybackserversession.cpp Tue May 25 13:14:13 2010 +0300
@@ -475,10 +475,6 @@
CMPXCommand* cmd( NULL );
::NewFromMessageL<CMPXMedia>(aMessage, 1, cmd);
CleanupStack::PushL(cmd);
- if (aMessage.Int0())
- { // aSync command
- SetAsync(aMessage);
- } // else sync command
iPlayer->CommandL(*cmd, *iMessageQueue);
CleanupStack::PopAndDestroy(cmd);
break;
--- a/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Tue May 11 16:40:32 2010 +0300
+++ b/mpx/playbackframework/playbackutility/src/mpxplaybackutilityimpl.cpp Tue May 25 13:14:13 2010 +0300
@@ -386,6 +386,7 @@
TPtr8 ptr = buf->Ptr(0);
if (asyncVar)
{ // async request
+ MPX_DEBUG1("CMPXPlaybackUtility::CommandL asynchronous command");
ASSERT(aCallback); // callback must be provided for asynchronous command
// Increase reference count on command ownership transferred
CMPXCommand* ref = CMPXCommand::NewL(aCmd);