--- a/mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/audiofetcher/src/audiofetcherdialog.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -196,7 +196,7 @@
case EAknSoftkeySelect :
{
TInt index = CurrentItemListIndex();
- TBuf<128> fileName;
+ TFileName fileName;
iFileHandler->GetAttribute( index, CAudioFetcherFileHandler::EAttrFullName, fileName, 0 );
iSelectedFiles.AppendL( fileName );
@@ -928,7 +928,7 @@
TBool closeDialog = EFalse;
TInt index = CurrentItemListIndex();
- TBuf<128> fileName;
+ TFileName fileName;
iFileHandler->GetAttribute( index, CAudioFetcherFileHandler::EAttrFullName, fileName, 0 );
iSelectedFiles.AppendL( fileName );
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterdbmanager.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -168,6 +168,7 @@
TRAP( check, GetDatabaseL(static_cast<TDriveNumber>(driveNum)) );
if( check == KErrNotFound )
{
+ MPX_DEBUG1("CMPXHarvesterDatabaseManager::OpenAllDatabasesL: re-creating database");
CMPXHarvesterDB* dB = CMPXHarvesterDB::NewL(
static_cast<TDriveNumber>(driveNum), iFs );
CleanupStack::PushL( dB );
@@ -179,6 +180,7 @@
}
else
{
+ MPX_DEBUG2("CMPXHarvesterDatabaseManager::OpenAllDatabasesL: opening failed, error=%d, removing database", openError);
CleanupStack::PopAndDestroy( dB );
}
}
@@ -187,6 +189,7 @@
TRAPD(openError, GetDatabaseL(static_cast<TDriveNumber>(driveNum)).OpenL() );
if(openError != KErrNone)
{
+ MPX_DEBUG2("CMPXHarvesterDatabaseManager::OpenAllDatabasesL: opening failed, error=%d, removing database", openError);
TRAP_IGNORE( RemoveDatabaseL(static_cast<TDriveNumber>(driveNum)));
}
}
@@ -293,6 +296,19 @@
if ( db->GetDbDrive() == aDrive)
{
db->Close();
+#ifdef __RAMDISK_PERF_ENABLE
+ if( iRAMDiskPerfEnabled && db->IsUseRamDrive() )
+ {
+ MPX_DEBUG1("CMPXHarvesterDatabaseManager::CloseDatabase DB is on RAM");
+ db->SetRamDriveInfo( iRAMDrive, EFalse );
+ TRAPD( err, DoCopyDBFromRamL(aDrive) );
+ if ( err )
+ {
+ MPX_DEBUG2("CMPXHarvesterDatabaseManager::CloseDatabase DB copy error=%d", err);
+ RemoveDummyFile(i);
+ }
+ }
+#endif
break;
}
}
@@ -589,6 +605,8 @@
if( iRAMDiskPerfEnabled )
{
+ // Should not leave until all the databases have been copied from RAM drive.
+ TInt leaveError = KErrNone;
TInt count(iDatabases.Count());
for (TInt i = 0; i < count; ++i)
{
@@ -605,8 +623,19 @@
iDatabases[i]->SetRamDriveInfo( iRAMDrive, EFalse );
// Get the db state in order to restore it later.
TDbState dbState = iDatabases[i]->GetDbState();
- iDatabases[i]->SetDbStateL(EDbClose);
- TRAP( err, DoCopyDBFromRamL(drive) );
+ TRAP( err, iDatabases[i]->SetDbStateL(EDbClose) );
+ if ( err == KErrNone )
+ {
+ TRAP( err, DoCopyDBFromRamL(drive) );
+ }
+ else
+ {
+ // Error closing db on RAM drive, try to delete it.
+ TFileName ramDB;
+ ramDB = GenerateHarvesterDbName( drive, ETrue );
+ BaflUtils::DeleteFile(iFs, ramDB);
+ }
+
if ( err )
{
MPX_DEBUG2("CMPXHarvesterDatabaseManager::CopyDBsFromRamL copy error=%d", err);
@@ -615,8 +644,13 @@
}
// Restore the db state.
- iDatabases[i]->SetDbStateL( dbState );
+ TRAPD( error, iDatabases[i]->SetDbStateL( dbState ) );
+ if ( error && !leaveError )
+ {
+ leaveError = error;
+ }
}
+ User::LeaveIfError( leaveError );
}
}
@@ -635,14 +669,13 @@
src = GenerateHarvesterDbName( aDriveUnit, ETrue );
MPX_DEBUG3("CMPXHarvesterDatabaseManager::DoCopyDBFromRamL from %S to %S", &src, &dst );
- // Rename the temp file into real Db name
TFileName dummyDbFileName = GenerateDummyDbName( aDriveUnit );
//Copy Db from RAM to replace dummy file
err = BaflUtils::CopyFile(iFs, src, dummyDbFileName);
MPX_DEBUG2("CMPXHarvesterDatabaseManager::DoCopyDBFromRamL database copied from ram drive err=%d.", err);
- // delete db in ram drive.
+ // delete db on ram drive.
TInt delErr = BaflUtils::DeleteFile(iFs, src);
MPX_DEBUG3("CMPXHarvesterDatabaseManager::DoCopyDBFromRamL db on ram drive deleted file=%S, err=%d", &src, delErr);
--- a/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/filehandler/src/mpxharvesterfilehandlerimp.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Handles all file related activities
-* Version : %version: e003sa33#72.1.14.2.4.1.4.1.2.1.3 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#72.1.14.2.4.1.4.1.2.1.4 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -438,6 +438,7 @@
// 4: USB end we re-open all db and scan for new files
// 5: MTP start we stop monitoring for new files (no dismount)
// 6: MTP end we re-open all db, files added already, restart monitor
+ // 7: Disk dismount: stop scanning, close the dismounting DB
//
#ifdef RD_MULTIPLE_DRIVE
// Get all visible drives
@@ -632,9 +633,11 @@
#endif //__RAMDISK_PERF_ENABLE
break;
}
- case EPowerKeyEjectEvent:
+ case EDiskDismountEvent:
{
+ MPX_DEBUG2("Disk dismount notification, drive %d", aData);
CancelScan();
+ iDBManager->CloseDatabase( (TDriveNumber) aData );
break;
}
default:
--- a/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: This class is responsible for reading file info
-* Version : %version: da1mmcf#5.1.3.1.6 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#5.1.3.1.8 % << Don't touch! Updated by Synergy at check-out.
*
* Copyright © 2005 Nokia. All rights reserved.
*/
@@ -65,6 +65,8 @@
// Destructor
CMPXFileInfoUtility::~CMPXFileInfoUtility()
{
+ MPX_DEBUG1("CMPXFileInfoUtility::~CMPXFileInfoUtility()<---");
+
iAudioControllers.ResetAndDestroy();
//Reset();
// Close all MMF controllers in the cache
@@ -88,6 +90,9 @@
}
REComSession::FinalClose();
+
+ MPX_DEBUG1("CMPXFileInfoUtility::~CMPXFileInfoUtility()--->");
+
}
// ----------------------------------------------------------------------------
@@ -106,7 +111,7 @@
void CMPXFileInfoUtility::OpenFileL(RFile& aFile,
const TDesC& aMimeType /*= KNullDesC*/)
{
- MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()");
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()<---");
Reset();
HBufC* fileNameBuf = HBufC::NewLC(KMaxFileName);
@@ -125,10 +130,8 @@
TBool enableUI = EFalse;
//Code taken from TMMFileHandleSource
-
-
- //{//build custom mmf message packet
- //based on CMMFileSourceSink::DoCreateFileHandleSourceConfigDataL()
+ //build custom mmf message packet
+ //based on CMMFileSourceSink::DoCreateFileHandleSourceConfigDataL()
CBufFlat* buf = CBufFlat::NewL(KMCExpandSize);
CleanupStack::PushL(buf);
RBufWriteStream stream;
@@ -152,22 +155,21 @@
stream.CommitL();
CleanupStack::PopAndDestroy(&stream);
- //iSourceSinkData = buf->Ptr(0).AllocL();
- //CleanupStack::PopAndDestroy(buf);
- //}
-
- // User::LeaveIfError(iController->Reset());
+ // Add new data source
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()- AddDataSource()");
-
- // Add new data source
User::LeaveIfError(iController->AddDataSource(KUidMmfFileSource,
buf->Ptr(0),
dataSource));
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()- AddDataSink()");
User::LeaveIfError(iController->AddDataSink(KUidMmfAudioOutput,
KNullDesC8));
CleanupStack::PopAndDestroy(buf);
+
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()--->");
+
}
// ----------------------------------------------------------------------------
@@ -176,21 +178,25 @@
//
void CMPXFileInfoUtility::Reset()
{
- // Reset the controller
+ MPX_DEBUG1("CMPXFileInfoUtility::Reset()<---");
+
if(iController)
{
- if(iCurrentControllerUid == 0x101FAFB1 || iCurrentControllerUid == 0x10283351
- || iCurrentControllerUid == 0x10207B65 )
+ // This is just for RA, WMA does not use controller
+ if( iCurrentControllerUid == 0x10207B65 ) // Helix Controller UID
{
+ MPX_DEBUG1("CMPXFileInfoUtility::Reset(), Close Controller - only for RA ");
iController->Close();
delete iController;
iController = NULL;
}
else
{
- iController->Reset();
+ MPX_DEBUG1("CMPXFileInfoUtility::Reset(), Reset Controller ");
+ iController->Reset();
}
- }
+ }
+ MPX_DEBUG1("CMPXFileInfoUtility::Reset()--->");
}
@@ -200,13 +206,15 @@
//
TTimeIntervalMicroSeconds CMPXFileInfoUtility::Duration()
{
- MPX_DEBUG1("CMPXFileInfoUtility::Duration()");
+ MPX_DEBUG1("CMPXFileInfoUtility::Duration()<---");
TTimeIntervalMicroSeconds duration;
TInt err = iController->GetDuration(duration);
if(err != KErrNone)
{
duration = TInt64(0);
}
+ MPX_DEBUG2("CMPXFileInfoUtility::Duration(), duration = %ld --->", duration );
+
return duration;
}
@@ -216,11 +224,16 @@
//
TUint CMPXFileInfoUtility::BitRate()
{
+ MPX_DEBUG1("CMPXFileInfoUtility::BitRate()<---");
+
RMMFAudioControllerCustomCommands customCommands(*iController);
TUint bitRate(0);
//Ignore return value, bitRate remain 0 if error
customCommands.GetSourceBitRate(bitRate);
+
+ MPX_DEBUG2("CMPXFileInfoUtility::BitRate(), bit rate = %d --->", bitRate);
+
return bitRate;
}
@@ -230,11 +243,16 @@
//
TUint CMPXFileInfoUtility::SampleRate()
{
+ MPX_DEBUG1("CMPXFileInfoUtility::SampleRate()<---");
+
RMMFAudioControllerCustomCommands customCommands(*iController);
TUint sampleRate(0) ;
//Ignore return value, sampleRate remain 0 if error
customCommands.GetSourceSampleRate(sampleRate);
+
+ MPX_DEBUG2("CMPXFileInfoUtility::SampleRate(), sample rate = %d --->", sampleRate);
+
return sampleRate;
}
@@ -245,7 +263,8 @@
const TDesC& aMimeType,
TUid& aUid)
{
- MPX_DEBUG1("CMPXFileInfoUtility::FindControllerL()");
+ MPX_DEBUG1("CMPXFileInfoUtility::FindControllerL()<---");
+
TBool found(EFalse);
TInt i(0);
TInt j(0);
@@ -292,6 +311,9 @@
}
}
}
+
+ MPX_DEBUG1("CMPXFileInfoUtility::FindControllerL()--->");
+
}
// ----------------------------------------------------------------------------
@@ -302,11 +324,10 @@
// ----------------------------------------------------------------------------
void CMPXFileInfoUtility::OpenControllerL(const TUid& aUid)
{
- MPX_DEBUG1("CMPXFileInfoUtility::OpenControllerL()");
-
- // 3gp and helix (wma) do not allow controller caching
- if(aUid.iUid == 0x101FAFB1 || aUid.iUid == 0x10283351
- || aUid.iUid == 0x10207B65 )
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenControllerL()<---");
+
+ // RA does not allow controller caching
+ if( aUid.iUid == 0x10207B65 ) // RA Controller Uid
{
iCurrentControllerUid = aUid.iUid;
TMMFPrioritySettings prioritySettings;
@@ -319,9 +340,11 @@
User::LeaveIfError(iController->Open(aUid, prioritySettings));
iCurrentControllerUid = aUid.iUid;
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenControllerL(), RA Controller open --->");
+
return;
}
-
+
// check if we already have controller open for this UID in the cache
RMMFController* controller = const_cast<RMMFController*>(iMMFControllers.Find(aUid.iUid));
@@ -335,10 +358,11 @@
TUint32* key = new (ELeave) TUint32(aUid.iUid);
CleanupStack::PushL(key);
- // Now instantiate the first controller in the array
- TMMFPrioritySettings prioritySettings;
- prioritySettings.iPriority = EMdaPriorityNormal;
- prioritySettings.iPref = EMdaPriorityPreferenceTimeAndQuality;
+
+ // Now instantiate the first controller in the array
+ TMMFPrioritySettings prioritySettings;
+ prioritySettings.iPriority = EMdaPriorityNormal;
+ prioritySettings.iPref = EMdaPriorityPreferenceTimeAndQuality;
// Try to open controller
User::LeaveIfError(controller->Open(aUid,
@@ -353,7 +377,9 @@
iController = controller;
iCurrentControllerUid = aUid.iUid;
-
+
+ MPX_DEBUG1("CMPXFileInfoUtility::OpenControllerL()--->");
+
}
// -----------------------------------------------------------------------------
@@ -362,6 +388,8 @@
//
void CMPXFileInfoUtility::CreateAudioFormatsArrayL()
{
+ MPX_DEBUG1("CMPXFileInfoUtility::CreateAudioFormatsArrayL()<---");
+
CMMFControllerPluginSelectionParameters* cSelect =
CMMFControllerPluginSelectionParameters::NewLC();
CMMFFormatSelectionParameters* fSelect =
@@ -381,6 +409,9 @@
cSelect->ListImplementationsL(iAudioControllers);
// Clean up
CleanupStack::PopAndDestroy(3); //fSelect, cSelect, mediaIds
+
+ MPX_DEBUG1("CMPXFileInfoUtility::CreateAudioFormatsArrayL()--->");
+
}
// End of File
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -12,11 +12,10 @@
* Contributors:
*
* Description: Extracts metadata from a file
-* Version : %version: da1mmcf#38.1.4.2.6.1.7 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#38.1.4.2.6.1.9 % << Don't touch! Updated by Synergy at check-out.
*
*/
-
#include <e32base.h>
#include <badesca.h>
#include <apgcli.h>
@@ -45,10 +44,14 @@
#include "mpxmetadataextractor.h"
#include "mpxfileinfoutility.h"
+
+_LIT( KWmaMimeType, "audio/x-ms-wma" );
+_LIT( KWmaCafMimeType, "x-caf-audio/x-ms-wma" );
+
#ifdef RD_MPX_TNM_INTEGRATION
_LIT( KImageFileType, "image/jpeg" );
const TInt KMPXTimeoutTimer = 3000000; // 3 seconds
-const TInt KMPXMaxThumbnailRequest = 5;
+const TInt KMPXMaxThumbnailRequest = 2;
#endif //RD_MPX_TNM_INTEGRATION
#ifdef ABSTRACTAUDIOALBUM_INCLUDED
@@ -239,6 +242,8 @@
TInt err = file.Open( iFs, *fileName, EFileRead | EFileShareReadersOrWriters );
CleanupClosePushL(file);
+ // Initially set default tags.
+ SetDefaultL( *media );
// Metadata related
//
if( err == KErrNone )
@@ -247,32 +252,18 @@
HBufC8* mimeType8 = HBufC8::NewLC( mimeType.Length() );
mimeType8->Des().Append( mimeType );
TRAPD( metadataerror, iMetadataUtility->OpenFileL( file, *mimeType8 ) );
+ MPX_DEBUG2("CMPXMetadataExtractor::CreateMediaL, error %d parsing metadata",
+ metadataerror );
CleanupStack::PopAndDestroy( mimeType8 );
-
- // No problem
- if( KErrNone == metadataerror )
- {
- // Add TRAPD to capture exception KErrNoMemory.
- //If album art size is too large, trap this exception and SetDefaultL.
- //Fix EYLU-7ESE5L
- TRAPD( err, SetMediaPropertiesL( *media, *fileName ) );
- if ( KErrNoMemory == err )
- {
- SetDefaultL( *media );
- }
- }
- else // Error, Set defaults
- {
- SetDefaultL( *media );
- }
+
+ // Even if there is error extracting metadata, fill extracted tags.
+ TRAP( metadataerror, SetMediaPropertiesL( *media, *fileName ) );
+ MPX_DEBUG2("CMPXMetadataExtractor::CreateMediaL, error %d setting tags",
+ metadataerror );
// Reset the utility
iMetadataUtility->ResetL();
}
- else // Error, Set defaults
- {
- SetDefaultL( *media );
- }
// Common properties that we can extract
//
@@ -461,11 +452,17 @@
if ( KErrNone != err )
{
MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL - error jpeg = %i", err);
- User::Leave( err );
- }
- CleanupStack::PushL( value8 );
- AddMediaAlbumArtL( aMedia, aFile, *value8 );
- CleanupStack::Pop( value8 );
+ }
+ else
+ {
+ CleanupStack::PushL( value8 );
+ TRAPD( err, AddMediaAlbumArtL( aMedia, aFile, *value8 ) );
+ if ( KErrNone != err )
+ {
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL - error album art = %i", err);
+ }
+ CleanupStack::Pop( value8 );
+ }
MPX_PERF_END(CMPXMetadataExtractor_SetMediaPropertiesL_JPEG_TNM);
#else //RD_MPX_TNM_INTEGRATION
aMedia.SetTextValueL( KMPXMediaMusicAlbumArtFileName,
@@ -479,11 +476,33 @@
*value );
break;
}
+ case EMetaDataDuration:
+ {
+ const TDesC& mimeType = aMedia.ValueText( KMPXMediaGeneralMimeType );
+ MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, 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 duration ( 0 );
+ lexer.Val( duration ); // [second]
+ duration *= 1000; // [msec]
+
+ aMedia.SetTObjectValueL<TInt32>( KMPXMediaGeneralDuration,
+ duration );
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", duration);
+ }
+ break;
+ }
case EMetaDataOriginalArtist: // fall through
case EMetaDataVendor: // fall through
case EMetaDataRating: // fall through
case EMetaDataUniqueFileIdentifier: // fall through
- case EMetaDataDuration: // fall through
case EMetaDataDate: // fall through
{
// not used
@@ -580,33 +599,49 @@
iDrmMediaUtility->Close();
- // File Size
+ //
+ // File Size --- The following needs MMF support
//
TInt size( 0 );
if( aFileErr == KErrNone )
{
- aFileHandle.Size( size );
- aProp.SetTObjectValueL<TInt>( KMPXMediaGeneralSize,
- size );
+ const TDesC& mimeType = aProp.ValueText( KMPXMediaGeneralMimeType );
+ MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, mimeType = %S", &mimeType);
+
+ // Verify if WMA, skip getting info from MMF
+ if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
+ {
+ // No need to get MMF support
+ MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, skip MMF ");
+ }
+ else
+ {
+ MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL, get MMF controller");
+ aFileHandle.Size( size );
+ aProp.SetTObjectValueL<TInt>( KMPXMediaGeneralSize, size );
- // Duration, bitrate, samplerate, etc
- //
- if( !aMetadataOnly )
+ // Duration, bitrate, samplerate, etc
+ //
+ if( !aMetadataOnly )
{
- TRAPD(err2, iFileInfoUtil->OpenFileL(
+ TRAPD(err2, iFileInfoUtil->OpenFileL(
aFileHandle,
aProp.ValueText(KMPXMediaGeneralMimeType)));
- MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, file info util error %i", err2);
- if( KErrNone == err2 )
- {
- aProp.SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
- iFileInfoUtil->BitRate() );
- aProp.SetTObjectValueL<TUint>( KMPXMediaAudioSamplerate,
- iFileInfoUtil->SampleRate() );
- TInt64 duration = (TInt64) iFileInfoUtil->Duration().Int64() / 1000; // ms
- aProp.SetTObjectValueL<TInt32>( KMPXMediaGeneralDuration,
- duration );
- MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL -- duration %i", duration);
+ MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL, file info util error %i", err2);
+ if( KErrNone == err2 )
+ {
+ aProp.SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
+ iFileInfoUtil->BitRate() );
+ aProp.SetTObjectValueL<TUint>( KMPXMediaAudioSamplerate,
+ iFileInfoUtil->SampleRate() );
+ TInt64 duration = (TInt64) iFileInfoUtil->Duration().Int64() / 1000; // ms
+ aProp.SetTObjectValueL<TInt32>( KMPXMediaGeneralDuration,
+ duration );
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetExtMediaPropertiesL -- duration %i", duration);
+ }
+
+ iFileInfoUtil->Reset();
}
}
}
@@ -618,8 +653,6 @@
//
aProp.SetTObjectValueL( KMPXMediaGeneralFlags,
dbFlags );
-
- iFileInfoUtil->Reset();
MPX_DEBUG1("CMPXMetadataExtractor::SetExtMediaPropertiesL --->");
}
@@ -667,8 +700,10 @@
MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
{
MPX_FUNC("CMPXMetadataExtractor::ThumbnailReady()");
+ MPX_DEBUG2("CMPXMetadataExtractor::ThumbnailReady(): iOutstandingThumbnailRequest %d",
+ iOutstandingThumbnailRequest);
iOutstandingThumbnailRequest--;
- if ( iOutstandingThumbnailRequest <= KMPXMaxThumbnailRequest )
+ if ( iOutstandingThumbnailRequest < KMPXMaxThumbnailRequest )
{
StopWaitLoop();
}
@@ -867,8 +902,10 @@
{
MPX_FUNC("CMPXMetadataExtractor::CheckBeforeSendRequest()");
#ifdef RD_MPX_TNM_INTEGRATION
+ MPX_DEBUG2("CMPXMetadataExtractor::CheckBeforeSendRequest(): iOutstandingThumbnailRequest %d",
+ iOutstandingThumbnailRequest);
// If thumbnail creation is ongoing, wait til it is done
- if ( iOutstandingThumbnailRequest > KMPXMaxThumbnailRequest )
+ if ( iOutstandingThumbnailRequest >= KMPXMaxThumbnailRequest )
{
MPX_DEBUG1("CMPXMetadataExtractor::CheckBeforeSendRequest(): Thumbnail creation ongoing!");
iTNMBlockCount++;
--- a/mmappcomponents/harvester/server/group/mpxharvester.mmp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/server/group/mpxharvester.mmp Wed Apr 14 16:28:17 2010 +0300
@@ -23,8 +23,12 @@
TARGET mpxharvesterserver.exe
TARGETTYPE exe
UID 0 0x101FFCA9
+#ifdef WINSCW
EPOCHEAPSIZE 0x1000 0x500000
-EPOCSTACKSIZE 0X5000
+#else
+EPOCHEAPSIZE 0x1000 0x800000
+#endif
+EPOCSTACKSIZE 0x5000
CAPABILITY CAP_SERVER DRM AllFiles
VENDORID VID_DEFAULT
@@ -40,7 +44,6 @@
SOURCE mpxfsformatmonitor.cpp
SOURCE mpxmediaremovalmonitor.cpp
SOURCE mpxusbeventhandler.cpp
-SOURCE mpxmmcejectmonitor.cpp
USERINCLUDE ../inc
USERINCLUDE ../../inc
@@ -60,3 +63,4 @@
#ifdef RD_MULTIPLE_DRIVE
LIBRARY PlatformEnv.lib
#endif //RD_MULTIPLE_DRIVE
+LIBRARY disknotifyhandler.lib
--- a/mmappcomponents/harvester/server/inc/mpxharvesterengine.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/server/inc/mpxharvesterengine.h Wed Apr 14 16:28:17 2010 +0300
@@ -32,7 +32,6 @@
class CMPXFsFormatMonitor;
class CMPXMediaRemovalMonitor;
class CMPXUsbEventHandler;
-class CMPXMMCEjectMonitor;
class CMPXMedia;
class CMPXActiveTaskQueue;
class CMPXPlaylistEngine;
@@ -306,7 +305,6 @@
CMPXFsFormatMonitor* iFormatMonitor;
CMPXMediaRemovalMonitor* iMediaRemovalMonitor;
CMPXUsbEventHandler* iUSBMonitor;
- CMPXMMCEjectMonitor* iMMCMonitor;
// Internal task queue for async operations
CMPXActiveTaskQueue* iTaskQueue;
--- a/mmappcomponents/harvester/server/inc/mpxmediaremovalmonitor.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/server/inc/mpxmediaremovalmonitor.h Wed Apr 14 16:28:17 2010 +0300
@@ -20,21 +20,35 @@
#define CMPXMEDIAREMOVALMONITOR_H
#include <e32base.h>
+#include <disknotifyhandler.h>
#include "mpxsystemeventobserver.h"
/**
* Class to monitors for File System dismount events
+ *
+ * The monitor emits events to MMPXSystemEventObserver
+ *
+ * EDiskDismountEvent whenever a drive is about to be dismounted (see RFs::NotifyDismount).
+ * EDiskRemovedEvent whenever a specified drive has been dismounted or removed
+ * EDiskInsertedEvent whenever a specified drive has been inserted
+ *
+ * The observer is expected to prepare the drive for dismounting during the EDiskDismountEvent.
+ *
+ * Dismount monitoring is automatically subscribed for all non-remote drives.
+ * Inserted/Removed monitor is subscribed only for the drive given in the constructor.
+ *
* @lib Harvester
* @since S60 3.0
*/
-class CMPXMediaRemovalMonitor : public CActive
+class CMPXMediaRemovalMonitor : public CBase,
+ public MDiskNotifyHandlerCallback
{
public:
/**
* Two-phase constructor
- * @param aDrive drive to monitor
+ * @param aDrive drive to monitor for insertions and removals
* @param aFs file server session
* @param aObserver observer to the event
*/
@@ -55,24 +69,24 @@
* Virtual destructor
*/
virtual ~CMPXMediaRemovalMonitor();
-
-protected: // From base class
- /*
- * From CActive
+ /**
+ * Check the status of the monitored disks
+ *
+ * This check should be done whenever there is a risk that we got
+ * a NotifyDismount even though the drives actually weren't dismounted.
+ *
*/
- void RunL();
-
- /*
- * From CActive
- */
- void DoCancel();
+ void CheckDriveStatus();
+
+protected: // From Base Class
/**
- * From CActive
+ * From MDiskNotifyHandlerCallback
*/
- TInt RunError(TInt aError);
-
+ void HandleNotifyDismount( TInt aError, const TDismountEvent& aEvent );
+ void HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent );
+
private:
/**
@@ -89,6 +103,7 @@
private: // data
+ CDiskNotifyHandler* iDiskNotifyHandler; // Disk notification handler
TInt iDrive; // Drive that is being monitored
RFs& iFs; // File Session, not owned
TBool iDiskRemoved; // Is the disk inserted
--- a/mmappcomponents/harvester/server/inc/mpxmmcejectmonitor.h Wed Mar 31 22:26:09 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,79 +0,0 @@
-/*
-* Copyright (c) 2007 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: MMC Eject monitor
-*
-*/
-
-
-#ifndef C_MPXMMCEJECTMONITOR_H
-#define C_MPXMMCEJECTMONITOR_H
-
-#include <mpxpskeyobserver.h>
-#include "mpxsystemeventobserver.h"
-
-// FORWARD DECLARATIONS
-class CMPXPSKeyWatcher;
-
-/**
- * Monitors a SysAp cenrep key for the "eject" mmc menu option
- *
- * @lib mpxharvester.exe
- * @since S60 3.1
- */
-NONSHARABLE_CLASS( CMPXMMCEjectMonitor ) : public CBase,
- public MMPXPSKeyObserver
- {
-
-public:
-
- /**
- * Two-phased constructor
- */
- static CMPXMMCEjectMonitor* NewL( MMPXSystemEventObserver& aObserver );
-
- /**
- * Destructor
- */
- virtual ~CMPXMMCEjectMonitor();
-
-protected: // From Base Class
-
- /**
- * From MMPXPSKeyObserver
- */
- void HandlePSEvent( TUid aUid, TInt aKey );
-
-private:
-
- /**
- * 2nd phase constructor
- */
- void ConstructL();
-
- /**
- * Private Constructor
- */
- CMPXMMCEjectMonitor( MMPXSystemEventObserver& aObserver );
-
-private: // data
-
- CMPXPSKeyWatcher* iPSKeyWatcher; // PS key watcher for USB PS key
-
- /*
- * Observer interface to callback to an observer
- */
- MMPXSystemEventObserver& iObserver; // Not owned
- };
-
-#endif // C_MPXMMCEJECTMONITOR_H
--- a/mmappcomponents/harvester/server/src/mpxfsformatmonitor.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxfsformatmonitor.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -142,6 +142,12 @@
}
else // TOperationType::EEnd or TOperationType::EAbort
{
+ //Ignore if formatting is ongoing
+ TBool formatting = iBackupSession->IsBackupOperationRunning();
+ if ( formatting )
+ {
+ return;
+ }
for(TInt i=0; i<KDriveCount; ++i)
{
iObserver.HandleSystemEventL(EFormatEndEvent, iBackupDrives[i]);
--- a/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxharvesterengine.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -38,7 +38,6 @@
#include "mpxfsformatmonitor.h"
#include "mpxmediaremovalmonitor.h"
#include "mpxusbeventhandler.h"
-#include "mpxmmcejectmonitor.h"
#include "mpxharvesterfilehandler.h"
#include "mpxharvesterengineobserver.h"
#include "mpxhvsmsg.h"
@@ -64,7 +63,6 @@
delete iFormatMonitor;
delete iMediaRemovalMonitor;
delete iUSBMonitor;
- delete iMMCMonitor;
delete iFileHandler;
iFsSession.Close();
@@ -110,8 +108,6 @@
// USB Event monitor
iUSBMonitor = CMPXUsbEventHandler::NewL( *this );
- // MMC Event handling
- iMMCMonitor = CMPXMMCEjectMonitor::NewL( *this );
// File handler to handle file related events
iFileHandler = CMPXHarvesterFileHandler::NewL( iFsSession );
@@ -455,7 +451,7 @@
TBool notify(ETrue);
switch( aEvent )
{
- case EPowerKeyEjectEvent:
+ case EDiskDismountEvent:
{
notify=EFalse;
TRAP_IGNORE( DoStopPlaybackL() );
@@ -470,16 +466,15 @@
iDiskOpActive = ETrue;
TRAP_IGNORE( DoStopPlaybackL() );
}
- default: //lint !e616 !e825
- if( !iTempCollectionUtil )
- {
- iTempCollectionUtil = MMPXCollectionUtility::NewL( NULL, KMcModeDefault );
- }
break;
}
// Send a message to the collection server about the event
//
+ if( !iTempCollectionUtil )
+ {
+ iTempCollectionUtil = MMPXCollectionUtility::NewL( NULL, KMcModeDefault );
+ }
if( notify )
{
TRAP_IGNORE(
@@ -487,6 +482,13 @@
aData )
);
}
+ else if ( aEvent == EDiskDismountEvent )
+ {
+ TRAP_IGNORE
+ (
+ iTempCollectionUtil->Collection().CommandL ( EMcCloseCollection, aData )
+ );
+ }
// Avoid Message queue already exist problem
//
@@ -514,6 +516,15 @@
iTempCollectionUtil = NULL;
}
}
+
+ if ( aEvent == EUSBMassStorageEndEvent )
+ {
+ // In some cases visit to USB Mass Storage mode can be so brief
+ // that drives are actually not dismounted at all even though we
+ // get a NotifyDismount event. In such cases we need to re-issue
+ // the NotifyDismount requests.
+ iMediaRemovalMonitor->CheckDriveStatus();
+ }
}
// ---------------------------------------------------------------------------
--- a/mmappcomponents/harvester/server/src/mpxmediaremovalmonitor.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/harvester/server/src/mpxmediaremovalmonitor.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -18,6 +18,7 @@
#include <e32base.h>
#include <f32file.h>
+#include <driveinfo.h>
#include <mpxlog.h>
#include "mpxmediaremovalmonitor.h"
@@ -27,14 +28,12 @@
//
CMPXMediaRemovalMonitor::CMPXMediaRemovalMonitor
( TInt aDrive, RFs& aFs, MMPXSystemEventObserver& aObserver )
- : CActive(EPriorityHigh),
- iDrive( aDrive ),
+ : iDrive( aDrive ),
iFs( aFs ),
iDiskRemoved( EFalse ),
iObserver( aObserver )
{
- CActiveScheduler::Add(this);
}
@@ -44,19 +43,11 @@
//
void CMPXMediaRemovalMonitor::ConstructL()
{
- MPX_DEBUG1(_L("CMPXMediaRemovalMonitor::ConstructL <---"));
+ MPX_FUNC("CMPXMediaRemovalMonitor::ConstructL");
+ iDiskNotifyHandler = CDiskNotifyHandler::NewL(*this, iFs);
+ CheckDriveStatus();
- // Initial state
- TDriveInfo drive;
- User::LeaveIfError(iFs.Drive(drive, TInt(iDrive)));
- iDiskRemoved = (drive.iType == EMediaNotPresent);
-
- // Start listening
- TNotifyType notType(ENotifyDisk);
- iFs.NotifyChange( notType, iStatus );
- SetActive();
-
- MPX_DEBUG1(_L("CMPXMediaRemovalMonitor::ConstructL --->"));
+ iDiskNotifyHandler->NotifyDisk();
}
@@ -99,74 +90,95 @@
//
CMPXMediaRemovalMonitor::~CMPXMediaRemovalMonitor()
{
- Cancel();
+ delete iDiskNotifyHandler;
+ }
+
+void CMPXMediaRemovalMonitor::CheckDriveStatus()
+ {
+ TDriveList driveList;
+ TInt driveCount(0);
+ TInt error = DriveInfo::GetUserVisibleDrives( iFs, driveList, driveCount );
+ if ( error != KErrNone )
+ {
+ MPX_DEBUG2("CMPXMediaRemovalMonitor::CheckDriveStatus GetUserVisibleDrives failed, error %d", error);
+ return;
+ }
+ for( TInt driveNum = EDriveA; driveNum < EDriveZ; driveNum++ )
+ {
+ if ( driveNum != EDriveC && driveList[driveNum] )
+ {
+ TDriveInfo driveInfo;
+ if (iFs.Drive(driveInfo, driveNum) == KErrNone)
+ {
+ if ( (driveInfo.iType != EMediaNotPresent) && ! (driveInfo.iDriveAtt & KDriveAttRemote) )
+ {
+ TInt error = iDiskNotifyHandler->NotifyDismount( driveNum );
+ MPX_DEBUG3("CMPXMediaRemovalMonitor::CheckDriveStatus monitoring drive %d for dismounts, error %d", driveNum, error);
+ }
+ }
+ if ( driveNum == iDrive )
+ {
+ iDiskRemoved = driveInfo.iType == EMediaNotPresent;
+ }
+ }
+ }
}
-
// ---------------------------------------------------------------------------
-// Service the request
+// Callback when disk state has changed
// ---------------------------------------------------------------------------
//
-void CMPXMediaRemovalMonitor::RunL()
+void CMPXMediaRemovalMonitor::HandleNotifyDisk( TInt aError, const TDiskEvent& aEvent )
{
- MPX_DEBUG1(_L("CMPXMediaRemovalMonitor::RunL <---"));
-
- // Re-subscribe to event.
- TNotifyType notType(ENotifyDisk);
- iFs.NotifyChange( notType, iStatus );
- SetActive();
-
- // Check state
- TDriveInfo drive;
- User::LeaveIfError(iFs.Drive(drive, TInt(iDrive)));
-
- // Notify Observer
- switch(drive.iType)
- {
- case EMediaNotPresent:
- {
- if (!iDiskRemoved)
+ MPX_DEBUG4("-->CMPXMediaRemovalMonitor::HandleNotifyDisk aError=%d event=%d drive=%d", aError, aEvent.iType, aEvent.iDrive);
+ if ( aError == KErrNone )
+ {
+ if ( aEvent.iType == EDiskRemoved
+ || aEvent.iType == EDiskStatusChanged && aEvent.iInfo.iType == EMediaNotPresent )
+ {
+ if ( aEvent.iDrive == iDrive && !iDiskRemoved )
{
iObserver.HandleSystemEventL( EDiskRemovedEvent, iDrive );
+ iDiskRemoved = ETrue;
}
- iDiskRemoved = ETrue;
- break;
- }
- default:
- {
- if ( iDiskRemoved &&
- ( drive.iMediaAtt & ( KMediaAttLockable|KMediaAttLocked|KMediaAttHasPassword ) ) !=
- ( KMediaAttLockable|KMediaAttLocked|KMediaAttHasPassword ) )
+
+ }
+ else if ( ( aEvent.iType == EDiskAdded || aEvent.iType == EDiskStatusChanged )
+ && aEvent.iInfo.iType != EMediaNotPresent )
+ {
+ if ( aEvent.iDrive == iDrive
+ && iDiskRemoved
+ && ( aEvent.iInfo.iMediaAtt & ( KMediaAttLockable|KMediaAttLocked|KMediaAttHasPassword ) )
+ != ( KMediaAttLockable|KMediaAttLocked|KMediaAttHasPassword ) )
{
iObserver.HandleSystemEventL( EDiskInsertedEvent, iDrive );
iDiskRemoved = EFalse;
}
- break;
- }
+
+ if ( !( aEvent.iInfo.iDriveAtt & KDriveAttRemote ) )
+ {
+ TInt error = iDiskNotifyHandler->NotifyDismount( aEvent.iDrive );
+ MPX_DEBUG3("CMPXMediaRemovalMonitor::HandleNotifyDisk monitoring drive %d for dismounts, error %d", aEvent.iDrive, error);
+ }
+ }
}
-
+
+ MPX_DEBUG1("<--CMPXMediaRemovalMonitor::HandleNotifyDisk");
+ }
- MPX_DEBUG1(_L("CMPXMediaRemovalMonitor::RunL --->"));
- }
// ---------------------------------------------------------------------------
-// Cancel NotifyChange request from file system
+// Callback when disk is about to be dismounted
// ---------------------------------------------------------------------------
//
-void CMPXMediaRemovalMonitor::DoCancel()
+void CMPXMediaRemovalMonitor::HandleNotifyDismount( TInt aError, const TDismountEvent& aEvent )
{
- iFs.NotifyChangeCancel();
+ MPX_DEBUG3("-->CMPXMediaRemovalMonitor::HandleNotifyDismount aError=%d drive=%d", aError, aEvent.iDrive);
+ if (aError == KErrNone)
+ {
+ TRAP_IGNORE( iObserver.HandleSystemEventL( EDiskDismountEvent, aEvent.iDrive ) );
+ TInt error = iDiskNotifyHandler->AllowDismount( aEvent.iDrive );
+ MPX_DEBUG3("CMPXMediaRemovalMonitor::HandleNotifyDismount allowed dismount of drive %d, error %d", aEvent.iDrive, error);
+ }
+ MPX_DEBUG1("<--CMPXMediaRemovalMonitor::HandleNotifyDismount");
}
-
-// ----------------------------------------------------------------------------
-// Handles a leave occurring in the request completion event handler RunL()
-// Don't care if client has a User::Leave() in RunL(), keep monitoring for events
-// ----------------------------------------------------------------------------
-//
-TInt CMPXMediaRemovalMonitor::RunError(TInt aError)
- {
- MPX_DEBUG2("CMPXMediaRemovalMonitor::RunError(%d)", aError );
- (void) aError; // avoid compile warning in urel
-
- return KErrNone;
- }
--- a/mmappcomponents/harvester/server/src/mpxmmcejectmonitor.cpp Wed Mar 31 22:26:09 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,98 +0,0 @@
-/*
-* Copyright (c) 2007 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: Monitor for PS Key changes from SysAp ( ME specific )
-*
-*/
-
-
-#include <e32base.h>
-#include <e32property.h>
-#include <mpxpskeywatcher.h>
-#include <mpxlog.h>
-#include "mpxmmcejectmonitor.h"
-
-// CONSTANTS
-const TUid KMmcEjectAppUid = { 0x101FFAFC };
-const TUint KKeyMmcEjectOperation = 10;
-
-// ======== MEMBER FUNCTIONS ========
-
-// ---------------------------------------------------------------------------
-// Constructor
-// ---------------------------------------------------------------------------
-//
-CMPXMMCEjectMonitor::CMPXMMCEjectMonitor( MMPXSystemEventObserver& aObserver ) :
- iObserver( aObserver )
- {
-
- }
-
-
-// ---------------------------------------------------------------------------
-// 2nd phased Constructor
-// ---------------------------------------------------------------------------
-//
-void CMPXMMCEjectMonitor::ConstructL()
- {
- MPX_DEBUG1(_L("CMPXMMCEjectMonitor::ConstructL <---"));
-
- iPSKeyWatcher = CMPXPSKeyWatcher::NewL( KMmcEjectAppUid,
- KKeyMmcEjectOperation,
- this );
- MPX_DEBUG1(_L("CMPXMMCEjectMonitor::ConstructL --->"));
- }
-
-
-// ---------------------------------------------------------------------------
-// Two-Phase Constructor
-// ---------------------------------------------------------------------------
-//
-CMPXMMCEjectMonitor* CMPXMMCEjectMonitor::NewL( MMPXSystemEventObserver& aObserver )
- {
- CMPXMMCEjectMonitor* self = new( ELeave ) CMPXMMCEjectMonitor( aObserver );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop( self );
- return self;
- }
-
-// ---------------------------------------------------------------------------
-// Destructor
-// ---------------------------------------------------------------------------
-//
-CMPXMMCEjectMonitor::~CMPXMMCEjectMonitor()
- {
- delete iPSKeyWatcher;
- }
-
-// ---------------------------------------------------------------------------
-// Callback when a cenrep key is modified
-// ---------------------------------------------------------------------------
-//
-void CMPXMMCEjectMonitor::HandlePSEvent( TUid /*aUid*/, TInt /*aKey*/ )
- {
- MPX_DEBUG1(_L("CMPXMMCEjectMonitor::HandlePSEvent <---"));
- TInt value;
- iPSKeyWatcher->GetValue( value );
-
- // MMC About to be ejected from power key menu
- //
- if( value == 1 )
- {
- TRAP_IGNORE( iObserver.HandleSystemEventL( EPowerKeyEjectEvent, 0 ) );
- }
- MPX_DEBUG1(_L("CMPXMMCEjectMonitor::HandlePSEvent --->"));
- }
-
-// END OF FILE
--- a/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/inc/cmmmtpdpmetadataaccesswrapper.h Wed Apr 14 16:28:17 2010 +0300
@@ -124,7 +124,7 @@
* Deletes metadata information associated with the object
* @param aObject, the object need to be deleted
*/
- void DeleteObjectL( const CMTPObjectMetaData& aObject );
+ IMPORT_C void DeleteObjectL( const CMTPObjectMetaData& aObject );
/**
* Set current drive info
@@ -228,7 +228,7 @@
TBool iOpenSession;
MMTPDataProviderFramework& iFramework;
- RFs& iFs; // should not remove this member data!!!
+ RFs& iFs; // should not remove this member data!!!
CDesCArray* iAbstractMediaArray;
Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpstub.pkg has changed
Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdate.pkg has changed
Binary file mmappcomponents/mmmtpdataprovider/install/rom/mmmtpdpupdatedebug.pkg has changed
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/inc/cabstractmediamtpdataproviderenumerator.h Wed Apr 14 16:28:17 2010 +0300
@@ -99,10 +99,6 @@
TInt aError = KErrNone );
void InitStorageL( );
-
- /**
- * Scan next storage
- */
void ScanNextL();
/**
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovider.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataprovider.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -118,7 +118,7 @@
iSupportedPropPlaylist.Close();
iSupportedPropAll.Close();
- PRINT( _L( "MM MTP => CAbstractMediaMtpDataProvider::~CAbstractMediaMtpDataProvider" ) );
+ PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProvider::~CAbstractMediaMtpDataProvider" ) );
}
void CAbstractMediaMtpDataProvider::Cancel()
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderenumerator.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -269,7 +269,7 @@
//
void CAbstractMediaMtpDataProviderEnumerator::ScanNextL()
{
- while (iStorages.Count() > 0)
+ while ( iStorages.Count() > 0 )
{
while ( iEnumState < EEnumCount )
{
@@ -284,14 +284,15 @@
return;
}
++iEnumState;
- if (iEnumState == EEnumCount)
+ if ( iEnumState == EEnumCount )
{
break;
}
InitStorageL();
}
+
iStorages.Remove( 0 );
- if (iStorages.Count() == 0)
+ if ( iStorages.Count() == 0 )
{
break;
}
@@ -313,8 +314,6 @@
//
void CAbstractMediaMtpDataProviderEnumerator::RunL()
{
- PRINT( _L( "MM MTP => CAbstractMediaMtpDataProviderEnumerator::RunL" ) );
-
// insert all abstract medias into handle db of framework
CMPXMedia* media = ( *iAbstractMedias )[iCurrentIndex];
@@ -411,21 +410,39 @@
TUint32 parentHandle = iFramework.ObjectMgr().HandleL( parser.DriveAndPath() );
PERFLOGSTOP( KObjectManagerObjectUid );
- object->SetUint( CMTPObjectMetaData::EParentHandle, parentHandle );
-
- PERFLOGSTART( KObjectManagerInsert );
- iObjectMgr.InsertObjectL( *object );
- PERFLOGSTOP( KObjectManagerInsert );
-
- CleanupStack::PopAndDestroy( object );// - object
+ // MTP FW returns KMTPHandleNone for parentHandle in two situations:
+ // 1. The path doesn't exist
+ // 2. The object is under root directory
+ if ( parentHandle == KMTPHandleNone )
+ {
+ if ( BaflUtils::PathExists( iFramework.Fs(), parser.DriveAndPath() ) )
+ {
+ parentHandle = KMTPHandleNoParent;
+ }
+ else
+ {
+ iDataProvider.GetWrapperL().DeleteObjectL( *object );
+ }
+ }
- //Only remember the playlist file for clean up
- if( iEnumState == EEnumPlaylist )
+ if ( parentHandle != KMTPHandleNone )
{
- iDataProvider.GetWrapperL().CreateDummyFile( aSuid );
+ object->SetUint( CMTPObjectMetaData::EParentHandle, parentHandle );
+
+ PERFLOGSTART( KObjectManagerInsert );
+ iObjectMgr.InsertObjectL( *object );
+ PERFLOGSTOP( KObjectManagerInsert );
+
+ CleanupStack::PopAndDestroy( object );// - object
- // remember the abstract media file for clean up
- iDataProvider.GetWrapperL().AddDummyFileL( aSuid );
+ //Only remember the playlist file for clean up
+ if( iEnumState == EEnumPlaylist )
+ {
+ iDataProvider.GetWrapperL().CreateDummyFile( aSuid );
+
+ // remember the abstract media file for clean up
+ iDataProvider.GetWrapperL().AddDummyFileL( aSuid );
+ }
}
PRINT( _L( "MM MTP <= CAbstractMediaMtpDataProviderEnumerator::AddEntryL" ) );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderrenameobject.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/abstractmediamtpdataprovider/src/cabstractmediamtpdataproviderrenameobject.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -89,14 +89,12 @@
iWrapper.AddDummyFileL( iFileName );
// Do not update MPX db to keep the same behavior in mass storage and device file manager.
}
- else
- {
- TRAPD( err, iWrapper.RenameObjectL( *iObjectInfo, iFileName ) );
+
+ TRAPD( err, iWrapper.RenameObjectL( *iObjectInfo, iFileName ) );
- // should not fail for 1 file, keep it going, as folder already renamed
- if ( err != KErrNone )
- PRINT1( _L( "MM MTP <> CRenameObject::PerformAdditionalActionL err = %d" ), err );
- }
+ // should not fail for 1 file, keep it going, as folder already renamed
+ if ( err != KErrNone )
+ PRINT1( _L( "MM MTP <> CRenameObject::PerformAdditionalActionL err = %d" ), err );
// the reference DB use PUID
// so we needn't to update the reference DB
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdpplugins/mediamtpdataprovider/inc/mediamtpdataproviderconst.h Wed Apr 14 16:28:17 2010 +0300
@@ -111,7 +111,7 @@
enum TMmMtpFramesPerThousandSecondsRange
{
EMTPMinFramesPerThousandSeconds = 0x00000000,
- EMTPMaxFramesPerThousandSeconds = 0x00007530, // 30000 frame per ms (30 frame/s), standard for progressive content
+ EMTPMaxFramesPerThousandSeconds = 0x00007530, // 30000 frame per thousand seconds (30 frame/s), standard for progressive content
EMTPStepFramesPerThousandSeconds = 0x00000001
};
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/bwins/mmmtpdprequestprocessoru.def Wed Apr 14 16:28:17 2010 +0300
@@ -4,156 +4,157 @@
?NewL@CDeleteObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 3 NONAME ; class MMmRequestProcessor * CDeleteObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
?StartL@CRenameObject@@QAEXKABVTDesC16@@@Z @ 4 NONAME ; void CRenameObject::StartL(unsigned long, class TDesC16 const &)
??1CRequestUnknown@@UAE@XZ @ 5 NONAME ; CRequestUnknown::~CRequestUnknown(void)
- ?Release@CRequestProcessor@@MAEXXZ @ 6 NONAME ; void CRequestProcessor::Release(void)
- ?HandleRequestL@CRequestProcessor@@MAEHABVTMTPTypeRequest@@W4TMTPTransactionPhase@@@Z @ 7 NONAME ; int CRequestProcessor::HandleRequestL(class TMTPTypeRequest const &, enum TMTPTransactionPhase)
- ??1CGetInterdependentPropDesc@@UAE@XZ @ 8 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void)
- ?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 9 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void)
- ?ServiceL@CGetPartialObject@@MAEXXZ @ 10 NONAME ; void CGetPartialObject::ServiceL(void)
- ??0CGetObjectInfo@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 11 NONAME ; CGetObjectInfo::CGetObjectInfo(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 12 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
- ?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 13 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 14 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 15 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
- ?RunL@CRequestProcessor@@MAEXXZ @ 16 NONAME ; void CRequestProcessor::RunL(void)
- ?ServiceL@CDeleteObject@@MAEXXZ @ 17 NONAME ; void CDeleteObject::ServiceL(void)
- ?DoCancel@CSetObjectPropList@@MAEXXZ @ 18 NONAME ; void CSetObjectPropList::DoCancel(void)
- ?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 19 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
- ?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 20 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
- ?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 21 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 22 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
- ?UsbDisconnect@CSendObject@@MAEXXZ @ 23 NONAME ; void CSendObject::UsbDisconnect(void)
- ?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 24 NONAME ; void CGetFormatCapabilities::ServiceL(void)
- ?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXPAVCMPXMedia@@AAVCDesC16Array@@@Z @ 25 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMPXMedia *, class CDesC16Array &)
- ??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 &)
- ??0CRequestUnknown@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 29 NONAME ; CRequestUnknown::CRequestUnknown(class MMTPDataProviderFramework &, class MMTPConnection &)
- ?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)
- ?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)
- ??0CSetObjectReferences@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 48 NONAME ; CSetObjectReferences::CSetObjectReferences(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ??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
- ?DoCancel@CRequestProcessor@@MAEXXZ @ 52 NONAME ; void CRequestProcessor::DoCancel(void)
- ?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 53 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
- ?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 54 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
- ??0CGetFormatCapabilities@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 55 NONAME ; CGetFormatCapabilities::CGetFormatCapabilities(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?ConstructL@CGetObjectInfo@@AAEXXZ @ 56 NONAME ; void CGetObjectInfo::ConstructL(void)
- ?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 57 NONAME ; void CRequestProcessor::UsbDisconnect(void)
- ?UpdateMusicCollectionL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 58 NONAME ; void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL(void)
- ??1CMoveObject@@UAE@XZ @ 59 NONAME ; CMoveObject::~CMoveObject(void)
- ?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 60 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
- ??1CRequestProcessor@@MAE@XZ @ 61 NONAME ; CRequestProcessor::~CRequestProcessor(void)
- ?DoCancel@CDeleteObject@@MAEXXZ @ 62 NONAME ; void CDeleteObject::DoCancel(void)
- ??1CGetObject@@UAE@XZ @ 63 NONAME ; CGetObject::~CGetObject(void)
- ?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 64 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?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
- ?ConstructL@CGetFormatCapabilities@@AAEXXZ @ 72 NONAME ; void CGetFormatCapabilities::ConstructL(void)
- ??1CPropertySettingUtility@@UAE@XZ @ 73 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void)
- ??1CGetPartialObject@@UAE@XZ @ 74 NONAME ; CGetPartialObject::~CGetPartialObject(void)
- ?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 75 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?RunError@CSetObjectPropList@@MAEHH@Z @ 76 NONAME ; int CSetObjectPropList::RunError(int)
- ?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 77 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void)
- ?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 78 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
- ?ServiceL@CMoveObject@@MAEXXZ @ 79 NONAME ; void CMoveObject::ServiceL(void)
- ?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 80 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &)
- ?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 81 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void)
- ?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 82 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void)
- ?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 83 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
- ?NewCommonObjectPropertyL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@G@Z @ 84 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewCommonObjectPropertyL(unsigned short)
- ?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 85 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &)
- ?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 86 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void)
- ??0CPropertySettingUtility@@IAE@XZ @ 87 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void)
- ?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 88 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
- ??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 89 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 90 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void)
- ?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 91 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *)
- ??0CGetPartialObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 92 NONAME ; CGetPartialObject::CGetPartialObject(class MMTPDataProviderFramework &, class MMTPConnection &)
- ?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 93 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void)
- ?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 94 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &)
- ?DoSetObjectReferencesL@CSetObjectReferences@@IAEXABVCMTPObjectMetaData@@@Z @ 95 NONAME ; void CSetObjectReferences::DoSetObjectReferencesL(class CMTPObjectMetaData const &)
- ??1CGetObjectInfo@@UAE@XZ @ 96 NONAME ; CGetObjectInfo::~CGetObjectInfo(void)
- ?ServiceL@CRequestUnknown@@MAEXXZ @ 97 NONAME ; void CRequestUnknown::ServiceL(void)
- ?HasDataphase@CSetObjectPropList@@MBEHXZ @ 98 NONAME ; int CSetObjectPropList::HasDataphase(void) const
- ?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 99 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?DoCancel@CRenameObject@@MAEXXZ @ 100 NONAME ; void CRenameObject::DoCancel(void)
- ??1CSetObjectReferences@@UAE@XZ @ 101 NONAME ; CSetObjectReferences::~CSetObjectReferences(void)
- ?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 102 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
- ?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 103 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@PAPAVCMPXMediaArray@@W4TMPXGeneralCategory@@@Z @ 104 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CMPXMediaArray * *, enum TMPXGeneralCategory)
- ??1CCopyObject@@UAE@XZ @ 105 NONAME ; CCopyObject::~CCopyObject(void)
- ?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 106 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &)
+ ?DeleteObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@@Z @ 6 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteObjectL(class CMTPObjectMetaData const &)
+ ?Release@CRequestProcessor@@MAEXXZ @ 7 NONAME ; void CRequestProcessor::Release(void)
+ ?HandleRequestL@CRequestProcessor@@MAEHABVTMTPTypeRequest@@W4TMTPTransactionPhase@@@Z @ 8 NONAME ; int CRequestProcessor::HandleRequestL(class TMTPTypeRequest const &, enum TMTPTransactionPhase)
+ ??1CGetInterdependentPropDesc@@UAE@XZ @ 9 NONAME ; CGetInterdependentPropDesc::~CGetInterdependentPropDesc(void)
+ ?OpenSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 10 NONAME ; void CMmMtpDpAccessSingleton::OpenSessionL(void)
+ ?ServiceL@CGetPartialObject@@MAEXXZ @ 11 NONAME ; void CGetPartialObject::ServiceL(void)
+ ??0CGetObjectInfo@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 12 NONAME ; CGetObjectInfo::CGetObjectInfo(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?DoHandleResponsePhaseL@CRequestProcessor@@MAEHXZ @ 13 NONAME ; int CRequestProcessor::DoHandleResponsePhaseL(void)
+ ?NewL@CGetObjectPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 14 NONAME ; class MMmRequestProcessor * CGetObjectPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??0CGetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 15 NONAME ; CGetObjectPropValue::CGetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?CheckRequestL@CSetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 16 NONAME ; enum TMTPResponseCode CSetObjectPropList::CheckRequestL(void)
+ ?RunL@CRequestProcessor@@MAEXXZ @ 17 NONAME ; void CRequestProcessor::RunL(void)
+ ?ServiceL@CDeleteObject@@MAEXXZ @ 18 NONAME ; void CDeleteObject::ServiceL(void)
+ ?DoCancel@CSetObjectPropList@@MAEXXZ @ 19 NONAME ; void CSetObjectPropList::DoCancel(void)
+ ?CleanupDatabaseL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 20 NONAME ; void CMmMtpDpMetadataAccessWrapper::CleanupDatabaseL(void)
+ ?ServiceL@CGetObjectPropsSupported@@MAEXXZ @ 21 NONAME ; void CGetObjectPropsSupported::ServiceL(void)
+ ?NewL@CSetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 22 NONAME ; class MMmRequestProcessor * CSetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?Release@CMmMtpDpAccessSingleton@@SAXXZ @ 23 NONAME ; void CMmMtpDpAccessSingleton::Release(void)
+ ?UsbDisconnect@CSendObject@@MAEXXZ @ 24 NONAME ; void CSendObject::UsbDisconnect(void)
+ ?ServiceL@CGetFormatCapabilities@@MAEXXZ @ 25 NONAME ; void CGetFormatCapabilities::ServiceL(void)
+ ?GetAllReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXPAVCMPXMedia@@AAVCDesC16Array@@@Z @ 26 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllReferenceL(class CMPXMedia *, class CDesC16Array &)
+ ??1CSetObjectPropList@@UAE@XZ @ 27 NONAME ; CSetObjectPropList::~CSetObjectPropList(void)
+ ?ServiceL@CSetObjectPropList@@MAEXXZ @ 28 NONAME ; void CSetObjectPropList::ServiceL(void)
+ ??0CMoveObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 29 NONAME ; CMoveObject::CMoveObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??0CRequestUnknown@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 30 NONAME ; CRequestUnknown::CRequestUnknown(class MMTPDataProviderFramework &, class MMTPConnection &)
+ ?ConstructL@CGetObjectPropList@@IAEXXZ @ 31 NONAME ; void CGetObjectPropList::ConstructL(void)
+ ??1CSendObject@@UAE@XZ @ 32 NONAME ; CSendObject::~CSendObject(void)
+ ?ServiceMetaDataFromWrapperL@CGetObjectPropValue@@IAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 33 NONAME ; void CGetObjectPropValue::ServiceMetaDataFromWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+ ?NewL@CGetObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 34 NONAME ; class MMmRequestProcessor * CGetObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??1CGetObjectPropValue@@UAE@XZ @ 35 NONAME ; CGetObjectPropValue::~CGetObjectPropValue(void)
+ ?CreateL@CMmMtpDpAccessSingleton@@SAXAAVMMTPDataProviderFramework@@@Z @ 36 NONAME ; void CMmMtpDpAccessSingleton::CreateL(class MMTPDataProviderFramework &)
+ ??1CGetFormatCapabilities@@UAE@XZ @ 37 NONAME ; CGetFormatCapabilities::~CGetFormatCapabilities(void)
+ ?ServiceL@CSetObjectReferences@@EAEXXZ @ 38 NONAME ; void CSetObjectReferences::ServiceL(void)
+ ?DoHandleDataIToRPhaseL@CRequestProcessor@@MAEHXZ @ 39 NONAME ; int CRequestProcessor::DoHandleDataIToRPhaseL(void)
+ ??0CGetObjectPropList@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 40 NONAME ; CGetObjectPropList::CGetObjectPropList(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?ConstructL@CCopyObject@@IAEXXZ @ 41 NONAME ; void CCopyObject::ConstructL(void)
+ ?SetMetaDataToWrapper@CPropertySettingUtility@@QAE?AW4TMTPResponseCode@@AAVMMmMtpDpConfig@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 42 NONAME ; enum TMTPResponseCode CPropertySettingUtility::SetMetaDataToWrapper(class MMmMtpDpConfig &, unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+ ?ServiceL@CGetObjectPropValue@@MAEXXZ @ 43 NONAME ; void CGetObjectPropValue::ServiceL(void)
+ ??1CRenameObject@@UAE@XZ @ 44 NONAME ; CRenameObject::~CRenameObject(void)
+ ?Match@CRequestProcessor@@MBEHABVTMTPTypeEvent@@AAVMMTPConnection@@@Z @ 45 NONAME ; int CRequestProcessor::Match(class TMTPTypeEvent const &, class MMTPConnection &) const
+ ?DoHandleCompletingPhaseL@CSendObject@@MAEHXZ @ 46 NONAME ; int CSendObject::DoHandleCompletingPhaseL(void)
+ ?GetDrmStatus@MmMtpDpUtility@@SAHABVTDesC16@@@Z @ 47 NONAME ; int MmMtpDpUtility::GetDrmStatus(class TDesC16 const &)
+ ?RunL@CRenameObject@@MAEXXZ @ 48 NONAME ; void CRenameObject::RunL(void)
+ ??0CSetObjectReferences@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 49 NONAME ; CSetObjectReferences::CSetObjectReferences(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??0CRequestProcessor@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@HPBUTMTPRequestElementInfo@@@Z @ 50 NONAME ; CRequestProcessor::CRequestProcessor(class MMTPDataProviderFramework &, class MMTPConnection &, int, struct TMTPRequestElementInfo const *)
+ ?ServiceL@CSendObject@@MAEXXZ @ 51 NONAME ; void CSendObject::ServiceL(void)
+ ?Request@CRequestProcessor@@MBEABVTMTPTypeRequest@@XZ @ 52 NONAME ; class TMTPTypeRequest const & CRequestProcessor::Request(void) const
+ ?DoCancel@CRequestProcessor@@MAEXXZ @ 53 NONAME ; void CRequestProcessor::DoCancel(void)
+ ?CheckRequestL@CGetPartialObject@@MAE?AW4TMTPResponseCode@@XZ @ 54 NONAME ; enum TMTPResponseCode CGetPartialObject::CheckRequestL(void)
+ ?NewL@CRequestUnknown@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 55 NONAME ; class MMmRequestProcessor * CRequestUnknown::NewL(class MMTPDataProviderFramework &, class MMTPConnection &)
+ ??0CGetFormatCapabilities@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 56 NONAME ; CGetFormatCapabilities::CGetFormatCapabilities(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?ConstructL@CGetObjectInfo@@AAEXXZ @ 57 NONAME ; void CGetObjectInfo::ConstructL(void)
+ ?UsbDisconnect@CRequestProcessor@@MAEXXZ @ 58 NONAME ; void CRequestProcessor::UsbDisconnect(void)
+ ?UpdateMusicCollectionL@CMmMtpDpMetadataAccessWrapper@@QAEXXZ @ 59 NONAME ; void CMmMtpDpMetadataAccessWrapper::UpdateMusicCollectionL(void)
+ ??1CMoveObject@@UAE@XZ @ 60 NONAME ; CMoveObject::~CMoveObject(void)
+ ?CheckRequestL@CSendObject@@MAE?AW4TMTPResponseCode@@XZ @ 61 NONAME ; enum TMTPResponseCode CSendObject::CheckRequestL(void)
+ ??1CRequestProcessor@@MAE@XZ @ 62 NONAME ; CRequestProcessor::~CRequestProcessor(void)
+ ?DoCancel@CDeleteObject@@MAEXXZ @ 63 NONAME ; void CDeleteObject::DoCancel(void)
+ ??1CGetObject@@UAE@XZ @ 64 NONAME ; CGetObject::~CGetObject(void)
+ ?NewL@CGetInterdependentPropDesc@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 65 NONAME ; class MMmRequestProcessor * CGetInterdependentPropDesc::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?DoHandleResponsePhaseL@CSetObjectReferences@@EAEHXZ @ 66 NONAME ; int CSetObjectReferences::DoHandleResponsePhaseL(void)
+ ?GetAccessWrapperL@CMmMtpDpAccessSingleton@@SAAAVCMmMtpDpMetadataAccessWrapper@@XZ @ 67 NONAME ; class CMmMtpDpMetadataAccessWrapper & CMmMtpDpAccessSingleton::GetAccessWrapperL(void)
+ ??1CGetObjectPropsSupported@@UAE@XZ @ 68 NONAME ; CGetObjectPropsSupported::~CGetObjectPropsSupported(void)
+ ?CheckRequestL@CGetObjectPropList@@MAE?AW4TMTPResponseCode@@XZ @ 69 NONAME ; enum TMTPResponseCode CGetObjectPropList::CheckRequestL(void)
+ ?HasDataphase@CRequestProcessor@@MBEHXZ @ 70 NONAME ; int CRequestProcessor::HasDataphase(void) const
+ ?NewL@CGetObjectPropsSupported@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 71 NONAME ; class MMmRequestProcessor * CGetObjectPropsSupported::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?Connection@CRequestProcessor@@MBEAAVMMTPConnection@@XZ @ 72 NONAME ; class MMTPConnection & CRequestProcessor::Connection(void) const
+ ?ConstructL@CGetFormatCapabilities@@AAEXXZ @ 73 NONAME ; void CGetFormatCapabilities::ConstructL(void)
+ ??1CPropertySettingUtility@@UAE@XZ @ 74 NONAME ; CPropertySettingUtility::~CPropertySettingUtility(void)
+ ??1CGetPartialObject@@UAE@XZ @ 75 NONAME ; CGetPartialObject::~CGetPartialObject(void)
+ ?NewL@CGetObjectInfo@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 76 NONAME ; class MMmRequestProcessor * CGetObjectInfo::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?RunError@CSetObjectPropList@@MAEHH@Z @ 77 NONAME ; int CSetObjectPropList::RunError(int)
+ ?CheckRequestL@CGetInterdependentPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 78 NONAME ; enum TMTPResponseCode CGetInterdependentPropDesc::CheckRequestL(void)
+ ?Match@CRequestUnknown@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 79 NONAME ; int CRequestUnknown::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+ ?ServiceL@CMoveObject@@MAEXXZ @ 80 NONAME ; void CMoveObject::ServiceL(void)
+ ?CreateDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 81 NONAME ; void CMmMtpDpMetadataAccessWrapper::CreateDummyFile(class TDesC16 const &)
+ ?CheckRequestL@CGetObjectPropDesc@@MAE?AW4TMTPResponseCode@@XZ @ 82 NONAME ; enum TMTPResponseCode CGetObjectPropDesc::CheckRequestL(void)
+ ?DoHandleRToIPhaseL@CRequestProcessor@@MAEHXZ @ 83 NONAME ; int CRequestProcessor::DoHandleRToIPhaseL(void)
+ ?ServiceMetaDataToWrapperL@CSetObjectPropValue@@IAE?AW4TMTPResponseCode@@GAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 84 NONAME ; enum TMTPResponseCode CSetObjectPropValue::ServiceMetaDataToWrapperL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+ ?NewCommonObjectPropertyL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@G@Z @ 85 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewCommonObjectPropertyL(unsigned short)
+ ?FormatFromFilename@MmMtpDpUtility@@SA?AW4TMTPFormatCode@@ABVTDesC16@@@Z @ 86 NONAME ; enum TMTPFormatCode MmMtpDpUtility::FormatFromFilename(class TDesC16 const &)
+ ?CheckRequestL@CSetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 87 NONAME ; enum TMTPResponseCode CSetObjectPropValue::CheckRequestL(void)
+ ??0CPropertySettingUtility@@IAE@XZ @ 88 NONAME ; CPropertySettingUtility::CPropertySettingUtility(void)
+ ?Match@CRequestProcessor@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 89 NONAME ; int CRequestProcessor::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+ ??0CCopyObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 90 NONAME ; CCopyObject::CCopyObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?CheckRequestL@CRequestProcessor@@MAE?AW4TMTPResponseCode@@XZ @ 91 NONAME ; enum TMTPResponseCode CRequestProcessor::CheckRequestL(void)
+ ?SendResponseL@CRequestProcessor@@IAEXW4TMTPResponseCode@@HPAK@Z @ 92 NONAME ; void CRequestProcessor::SendResponseL(enum TMTPResponseCode, int, unsigned long *)
+ ??0CGetPartialObject@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@@Z @ 93 NONAME ; CGetPartialObject::CGetPartialObject(class MMTPDataProviderFramework &, class MMTPConnection &)
+ ?DoHandleCompletingPhaseL@CRequestProcessor@@MAEHXZ @ 94 NONAME ; int CRequestProcessor::DoHandleCompletingPhaseL(void)
+ ?DeleteDummyFile@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 95 NONAME ; void CMmMtpDpMetadataAccessWrapper::DeleteDummyFile(class TDesC16 const &)
+ ?DoSetObjectReferencesL@CSetObjectReferences@@IAEXABVCMTPObjectMetaData@@@Z @ 96 NONAME ; void CSetObjectReferences::DoSetObjectReferencesL(class CMTPObjectMetaData const &)
+ ??1CGetObjectInfo@@UAE@XZ @ 97 NONAME ; CGetObjectInfo::~CGetObjectInfo(void)
+ ?ServiceL@CRequestUnknown@@MAEXXZ @ 98 NONAME ; void CRequestUnknown::ServiceL(void)
+ ?HasDataphase@CSetObjectPropList@@MBEHXZ @ 99 NONAME ; int CSetObjectPropList::HasDataphase(void) const
+ ?NewL@CGetObjectReferences@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 100 NONAME ; class MMmRequestProcessor * CGetObjectReferences::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?DoCancel@CRenameObject@@MAEXXZ @ 101 NONAME ; void CRenameObject::DoCancel(void)
+ ??1CSetObjectReferences@@UAE@XZ @ 102 NONAME ; CSetObjectReferences::~CSetObjectReferences(void)
+ ?Match@CSendObject@@MBEHABVTMTPTypeRequest@@AAVMMTPConnection@@@Z @ 103 NONAME ; int CSendObject::Match(class TMTPTypeRequest const &, class MMTPConnection &) const
+ ?NewL@CSetObjectPropList@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 104 NONAME ; class MMmRequestProcessor * CSetObjectPropList::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?GetAllAbstractMediaL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@PAPAVCMPXMediaArray@@W4TMPXGeneralCategory@@@Z @ 105 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetAllAbstractMediaL(class TDesC16 const &, class CMPXMediaArray * *, enum TMPXGeneralCategory)
+ ??1CCopyObject@@UAE@XZ @ 106 NONAME ; CCopyObject::~CCopyObject(void)
?RunL@CGetObjectPropList@@MAEXXZ @ 107 NONAME ; void CGetObjectPropList::RunL(void)
- ?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 108 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int)
- ?RunError@CRequestProcessor@@MAEHH@Z @ 109 NONAME ; int CRequestProcessor::RunError(int)
- ?SessionId@CRequestProcessor@@MAEKXZ @ 110 NONAME ; unsigned long CRequestProcessor::SessionId(void)
- ??0CDescriptionUtility@@IAE@XZ @ 111 NONAME ; CDescriptionUtility::CDescriptionUtility(void)
- ?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 112 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &)
- ?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 113 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?HasDataphase@CSetObjectReferences@@EBEHXZ @ 114 NONAME ; int CSetObjectReferences::HasDataphase(void) const
- ?ConstructL@CGetInterdependentPropDesc@@IAEXXZ @ 115 NONAME ; void CGetInterdependentPropDesc::ConstructL(void)
- ?RunError@CGetObjectPropList@@MAEHH@Z @ 116 NONAME ; int CGetObjectPropList::RunError(int)
- ?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 117 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void)
- ??0CDeleteObject@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 118 NONAME ; CDeleteObject::CDeleteObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 119 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
- ?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 120 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &)
- ?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 121 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
- ?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 122 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &)
- ??0CGetObjectPropDesc@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 123 NONAME ; CGetObjectPropDesc::CGetObjectPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?ConstructL@CGetObjectPropDesc@@AAEXXZ @ 124 NONAME ; void CGetObjectPropDesc::ConstructL(void)
- ??0CGetInterdependentPropDesc@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 125 NONAME ; CGetInterdependentPropDesc::CGetInterdependentPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ??1CGetObjectPropDesc@@UAE@XZ @ 126 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void)
- ?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 127 NONAME ; void CGetObjectPropDesc::ServiceL(void)
- ?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 128 NONAME ; int CSetObjectPropValue::HasDataphase(void) const
- ?ServiceL@CCopyObject@@MAEXXZ @ 129 NONAME ; void CCopyObject::ServiceL(void)
- ?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 130 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void)
- ?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 131 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void)
- ?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 132 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 133 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &)
- ??1CDescriptionUtility@@UAE@XZ @ 134 NONAME ; CDescriptionUtility::~CDescriptionUtility(void)
- ?RunL@CSetObjectPropList@@MAEXXZ @ 135 NONAME ; void CSetObjectPropList::RunL(void)
- ?ConstructL@CMoveObject@@IAEXXZ @ 136 NONAME ; void CMoveObject::ConstructL(void)
- ?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 137 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ??1CGetObjectReferences@@UAE@XZ @ 138 NONAME ; CGetObjectReferences::~CGetObjectReferences(void)
- ?HasDataphase@CSendObject@@MBEHXZ @ 139 NONAME ; int CSendObject::HasDataphase(void) const
- ??1CSetObjectPropValue@@UAE@XZ @ 140 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void)
- ?ConstructL@CRenameObject@@IAEXXZ @ 141 NONAME ; void CRenameObject::ConstructL(void)
- ?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 142 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &)
- ?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 143 NONAME ; int CSendObject::DoHandleResponsePhaseL(void)
- ?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 144 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
- ?DoCancel@CGetObjectPropList@@MAEXXZ @ 145 NONAME ; void CGetObjectPropList::DoCancel(void)
- ?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 146 NONAME ; void CGetInterdependentPropDesc::ServiceL(void)
- ?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 147 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void)
- ?GetAbstractMediaNameL@CMmMtpDpMetadataAccessWrapper@@QAEPAVHBufC16@@PAVCMPXMedia@@W4TMPXGeneralCategory@@@Z @ 148 NONAME ; class HBufC16 * CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL(class CMPXMedia *, enum TMPXGeneralCategory)
- ?ServiceL@CSetObjectPropValue@@MAEXXZ @ 149 NONAME ; void CSetObjectPropValue::ServiceL(void)
- ?RunError@CRenameObject@@MAEHH@Z @ 150 NONAME ; int CRenameObject::RunError(int)
- ??1CDeleteObject@@UAE@XZ @ 151 NONAME ; CDeleteObject::~CDeleteObject(void)
- ?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 152 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void)
- ?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 153 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void)
- ??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 154 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
- ??1CGetObjectPropList@@UAE@XZ @ 155 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
- ?ServiceL@CGetObjectPropList@@MAEXXZ @ 156 NONAME ; void CGetObjectPropList::ServiceL(void)
- ??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 157 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+ ?GetModifiedContentL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@AAHAAVCDesC16Array@@@Z @ 108 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetModifiedContentL(class TDesC16 const &, int &, class CDesC16Array &)
+ ?NewRangeFormDescriptionL@CDescriptionUtility@@QAEPAVCMTPTypeObjectPropDesc@@GKKKH@Z @ 109 NONAME ; class CMTPTypeObjectPropDesc * CDescriptionUtility::NewRangeFormDescriptionL(unsigned short, unsigned long, unsigned long, unsigned long, int)
+ ?RunError@CRequestProcessor@@MAEHH@Z @ 110 NONAME ; int CRequestProcessor::RunError(int)
+ ?SessionId@CRequestProcessor@@MAEKXZ @ 111 NONAME ; unsigned long CRequestProcessor::SessionId(void)
+ ??0CDescriptionUtility@@IAE@XZ @ 112 NONAME ; CDescriptionUtility::CDescriptionUtility(void)
+ ?HandleEventL@CRequestProcessor@@MAEXABVTMTPTypeEvent@@@Z @ 113 NONAME ; void CRequestProcessor::HandleEventL(class TMTPTypeEvent const &)
+ ?NewL@CGetPartialObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 114 NONAME ; class MMmRequestProcessor * CGetPartialObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?HasDataphase@CSetObjectReferences@@EBEHXZ @ 115 NONAME ; int CSetObjectReferences::HasDataphase(void) const
+ ?ConstructL@CGetInterdependentPropDesc@@IAEXXZ @ 116 NONAME ; void CGetInterdependentPropDesc::ConstructL(void)
+ ?RunError@CGetObjectPropList@@MAEHH@Z @ 117 NONAME ; int CGetObjectPropList::RunError(int)
+ ?DoHandleResponsePhaseL@CSetObjectPropList@@MAEHXZ @ 118 NONAME ; int CSetObjectPropList::DoHandleResponsePhaseL(void)
+ ??0CDeleteObject@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 119 NONAME ; CDeleteObject::CDeleteObject(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?NewL@CRenameObject@@SAPAV1@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 120 NONAME ; class CRenameObject * CRenameObject::NewL(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
+ ?RenameObjectL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@ABVTDesC16@@@Z @ 121 NONAME ; void CMmMtpDpMetadataAccessWrapper::RenameObjectL(class CMTPObjectMetaData const &, class TDesC16 const &)
+ ?GetObjectMetadataValueL@CMmMtpDpMetadataAccessWrapper@@QAEXGAAVMMTPType@@ABVCMTPObjectMetaData@@@Z @ 122 NONAME ; void CMmMtpDpMetadataAccessWrapper::GetObjectMetadataValueL(unsigned short, class MMTPType &, class CMTPObjectMetaData const &)
+ ?AddDummyFileL@CMmMtpDpMetadataAccessWrapper@@QAEXABVTDesC16@@@Z @ 123 NONAME ; void CMmMtpDpMetadataAccessWrapper::AddDummyFileL(class TDesC16 const &)
+ ??0CGetObjectPropDesc@@AAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 124 NONAME ; CGetObjectPropDesc::CGetObjectPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?ConstructL@CGetObjectPropDesc@@AAEXXZ @ 125 NONAME ; void CGetObjectPropDesc::ConstructL(void)
+ ??0CGetInterdependentPropDesc@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 126 NONAME ; CGetInterdependentPropDesc::CGetInterdependentPropDesc(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??1CGetObjectPropDesc@@UAE@XZ @ 127 NONAME ; CGetObjectPropDesc::~CGetObjectPropDesc(void)
+ ?ServiceL@CGetObjectPropDesc@@MAEXXZ @ 128 NONAME ; void CGetObjectPropDesc::ServiceL(void)
+ ?HasDataphase@CSetObjectPropValue@@MBEHXZ @ 129 NONAME ; int CSetObjectPropValue::HasDataphase(void) const
+ ?ServiceL@CCopyObject@@MAEXXZ @ 130 NONAME ; void CCopyObject::ServiceL(void)
+ ?CheckRequestL@CGetObjectPropValue@@MAE?AW4TMTPResponseCode@@XZ @ 131 NONAME ; enum TMTPResponseCode CGetObjectPropValue::CheckRequestL(void)
+ ?CloseSessionL@CMmMtpDpAccessSingleton@@SAXXZ @ 132 NONAME ; void CMmMtpDpAccessSingleton::CloseSessionL(void)
+ ?NewL@CGetFormatCapabilities@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 133 NONAME ; class MMmRequestProcessor * CGetFormatCapabilities::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ?ReceiveDataL@CRequestProcessor@@IAEXAAVMMTPType@@@Z @ 134 NONAME ; void CRequestProcessor::ReceiveDataL(class MMTPType &)
+ ??1CDescriptionUtility@@UAE@XZ @ 135 NONAME ; CDescriptionUtility::~CDescriptionUtility(void)
+ ?RunL@CSetObjectPropList@@MAEXXZ @ 136 NONAME ; void CSetObjectPropList::RunL(void)
+ ?ConstructL@CMoveObject@@IAEXXZ @ 137 NONAME ; void CMoveObject::ConstructL(void)
+ ?NewL@CSendObject@@SAPAVMMmRequestProcessor@@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 138 NONAME ; class MMmRequestProcessor * CSendObject::NewL(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??1CGetObjectReferences@@UAE@XZ @ 139 NONAME ; CGetObjectReferences::~CGetObjectReferences(void)
+ ?HasDataphase@CSendObject@@MBEHXZ @ 140 NONAME ; int CSendObject::HasDataphase(void) const
+ ??1CSetObjectPropValue@@UAE@XZ @ 141 NONAME ; CSetObjectPropValue::~CSetObjectPropValue(void)
+ ?ConstructL@CRenameObject@@IAEXXZ @ 142 NONAME ; void CRenameObject::ConstructL(void)
+ ?SendDataL@CRequestProcessor@@IAEXABVMMTPType@@@Z @ 143 NONAME ; void CRequestProcessor::SendDataL(class MMTPType const &)
+ ?DoHandleResponsePhaseL@CSendObject@@MAEHXZ @ 144 NONAME ; int CSendObject::DoHandleResponsePhaseL(void)
+ ?SetReferenceL@CMmMtpDpMetadataAccessWrapper@@QAEXABVCMTPObjectMetaData@@AAVCDesC16Array@@@Z @ 145 NONAME ; void CMmMtpDpMetadataAccessWrapper::SetReferenceL(class CMTPObjectMetaData const &, class CDesC16Array &)
+ ?DoCancel@CGetObjectPropList@@MAEXXZ @ 146 NONAME ; void CGetObjectPropList::DoCancel(void)
+ ?ServiceL@CGetInterdependentPropDesc@@MAEXXZ @ 147 NONAME ; void CGetInterdependentPropDesc::ServiceL(void)
+ ?DoHandleRequestPhaseL@CRequestProcessor@@MAEHXZ @ 148 NONAME ; int CRequestProcessor::DoHandleRequestPhaseL(void)
+ ?GetAbstractMediaNameL@CMmMtpDpMetadataAccessWrapper@@QAEPAVHBufC16@@PAVCMPXMedia@@W4TMPXGeneralCategory@@@Z @ 149 NONAME ; class HBufC16 * CMmMtpDpMetadataAccessWrapper::GetAbstractMediaNameL(class CMPXMedia *, enum TMPXGeneralCategory)
+ ?ServiceL@CSetObjectPropValue@@MAEXXZ @ 150 NONAME ; void CSetObjectPropValue::ServiceL(void)
+ ?RunError@CRenameObject@@MAEHH@Z @ 151 NONAME ; int CRenameObject::RunError(int)
+ ??1CDeleteObject@@UAE@XZ @ 152 NONAME ; CDeleteObject::~CDeleteObject(void)
+ ?DoHandleResponsePhaseL@CGetPartialObject@@MAEHXZ @ 153 NONAME ; int CGetPartialObject::DoHandleResponsePhaseL(void)
+ ?CheckRequestL@CGetFormatCapabilities@@MAE?AW4TMTPResponseCode@@XZ @ 154 NONAME ; enum TMTPResponseCode CGetFormatCapabilities::CheckRequestL(void)
+ ??0CSetObjectPropValue@@IAE@AAVMMTPDataProviderFramework@@AAVMMTPConnection@@AAVMMmMtpDpConfig@@@Z @ 155 NONAME ; CSetObjectPropValue::CSetObjectPropValue(class MMTPDataProviderFramework &, class MMTPConnection &, class MMmMtpDpConfig &)
+ ??1CGetObjectPropList@@UAE@XZ @ 156 NONAME ; CGetObjectPropList::~CGetObjectPropList(void)
+ ?ServiceL@CGetObjectPropList@@MAEXXZ @ 157 NONAME ; void CGetObjectPropList::ServiceL(void)
+ ??0CRenameObject@@IAE@AAVMMTPDataProviderFramework@@AAVCMmMtpDpMetadataAccessWrapper@@@Z @ 158 NONAME ; CRenameObject::CRenameObject(class MMTPDataProviderFramework &, class CMmMtpDpMetadataAccessWrapper &)
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/eabi/mmmtpdprequestprocessoru.def Wed Apr 14 16:28:17 2010 +0300
@@ -183,96 +183,97 @@
_ZN26CGetInterdependentPropDescD1Ev @ 182 NONAME
_ZN26CGetInterdependentPropDescD2Ev @ 183 NONAME
_ZN29CMmMtpDpMetadataAccessWrapper13AddDummyFileLERK7TDesC16 @ 184 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 185 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 186 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 187 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 188 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 189 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 190 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 191 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 192 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 193 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLEv @ 194 NONAME
- _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 195 NONAME
- _ZNK11CSendObject12HasDataphaseEv @ 196 NONAME
- _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 197 NONAME
- _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 198 NONAME
- _ZNK17CRequestProcessor10ConnectionEv @ 199 NONAME
- _ZNK17CRequestProcessor12HasDataphaseEv @ 200 NONAME
- _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 201 NONAME
- _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 202 NONAME
- _ZNK17CRequestProcessor7RequestEv @ 203 NONAME
- _ZNK18CSetObjectPropList12HasDataphaseEv @ 204 NONAME
- _ZNK19CSetObjectPropValue12HasDataphaseEv @ 205 NONAME
- _ZNK20CSetObjectReferences12HasDataphaseEv @ 206 NONAME
- _ZTI10CGetObject @ 207 NONAME
- _ZTI11CCopyObject @ 208 NONAME
- _ZTI11CMoveObject @ 209 NONAME
- _ZTI11CSendObject @ 210 NONAME
- _ZTI13CDeleteObject @ 211 NONAME
- _ZTI13CRenameObject @ 212 NONAME
- _ZTI14CGetObjectInfo @ 213 NONAME
- _ZTI15CRequestChecker @ 214 NONAME
- _ZTI15CRequestUnknown @ 215 NONAME
- _ZTI15TMTPTypeFlatBuf @ 216 NONAME
- _ZTI17CGetPartialObject @ 217 NONAME
- _ZTI17CRequestProcessor @ 218 NONAME
- _ZTI18CGetObjectPropDesc @ 219 NONAME
- _ZTI18CGetObjectPropList @ 220 NONAME
- _ZTI18CHXMetaDataUtility @ 221 NONAME
- _ZTI18CSetObjectPropList @ 222 NONAME
- _ZTI19CDescriptionUtility @ 223 NONAME
- _ZTI19CGetObjectPropValue @ 224 NONAME
- _ZTI19CSetObjectPropValue @ 225 NONAME
- _ZTI20CGetObjectReferences @ 226 NONAME
- _ZTI20CSetObjectReferences @ 227 NONAME
- _ZTI22CGetFormatCapabilities @ 228 NONAME
- _ZTI23CMmMtpDpAccessSingleton @ 229 NONAME
- _ZTI23CPropertySettingUtility @ 230 NONAME
- _ZTI24CGetObjectPropsSupported @ 231 NONAME
- _ZTI25CMmMtpDpMetadataMpxAccess @ 232 NONAME
- _ZTI26CGetInterdependentPropDesc @ 233 NONAME
- _ZTI27CMmMtpDpMetadataVideoAccess @ 234 NONAME
- _ZTI29CMmMtpDpMetadataAccessWrapper @ 235 NONAME
- _ZTV10CGetObject @ 236 NONAME
- _ZTV11CCopyObject @ 237 NONAME
- _ZTV11CMoveObject @ 238 NONAME
- _ZTV11CSendObject @ 239 NONAME
- _ZTV13CDeleteObject @ 240 NONAME
- _ZTV13CRenameObject @ 241 NONAME
- _ZTV14CGetObjectInfo @ 242 NONAME
- _ZTV15CRequestChecker @ 243 NONAME
- _ZTV15CRequestUnknown @ 244 NONAME
- _ZTV15TMTPTypeFlatBuf @ 245 NONAME
- _ZTV17CGetPartialObject @ 246 NONAME
- _ZTV17CRequestProcessor @ 247 NONAME
- _ZTV18CGetObjectPropDesc @ 248 NONAME
- _ZTV18CGetObjectPropList @ 249 NONAME
- _ZTV18CHXMetaDataUtility @ 250 NONAME
- _ZTV18CSetObjectPropList @ 251 NONAME
- _ZTV19CDescriptionUtility @ 252 NONAME
- _ZTV19CGetObjectPropValue @ 253 NONAME
- _ZTV19CSetObjectPropValue @ 254 NONAME
- _ZTV20CGetObjectReferences @ 255 NONAME
- _ZTV20CSetObjectReferences @ 256 NONAME
- _ZTV22CGetFormatCapabilities @ 257 NONAME
- _ZTV23CMmMtpDpAccessSingleton @ 258 NONAME
- _ZTV23CPropertySettingUtility @ 259 NONAME
- _ZTV24CGetObjectPropsSupported @ 260 NONAME
- _ZTV25CMmMtpDpMetadataMpxAccess @ 261 NONAME
- _ZTV26CGetInterdependentPropDesc @ 262 NONAME
- _ZTV27CMmMtpDpMetadataVideoAccess @ 263 NONAME
- _ZTV29CMmMtpDpMetadataAccessWrapper @ 264 NONAME
- _ZThn28_N11CSendObject13UsbDisconnectEv @ 265 NONAME
- _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 266 NONAME
- _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 267 NONAME
- _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 268 NONAME
- _ZThn28_N17CRequestProcessor7ReleaseEv @ 269 NONAME
- _ZThn28_N17CRequestProcessor9SessionIdEv @ 270 NONAME
- _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 271 NONAME
- _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 272 NONAME
- _ZThn28_NK17CRequestProcessor10ConnectionEv @ 273 NONAME
- _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 274 NONAME
- _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 275 NONAME
- _ZThn28_NK17CRequestProcessor7RequestEv @ 276 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13DeleteObjectLERK18CMTPObjectMetaData @ 185 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13RenameObjectLERK18CMTPObjectMetaDataRK7TDesC16 @ 186 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper13SetReferenceLERK18CMTPObjectMetaDataR12CDesC16Array @ 187 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper15CreateDummyFileERK7TDesC16 @ 188 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper15DeleteDummyFileERK7TDesC16 @ 189 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper16CleanupDatabaseLEv @ 190 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper16GetAllReferenceLEP9CMPXMediaR12CDesC16Array @ 191 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper19GetModifiedContentLERK7TDesC16RiR12CDesC16Array @ 192 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper20GetAllAbstractMediaLERK7TDesC16PP14CMPXMediaArray19TMPXGeneralCategory @ 193 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper21GetAbstractMediaNameLEP9CMPXMedia19TMPXGeneralCategory @ 194 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper22UpdateMusicCollectionLEv @ 195 NONAME
+ _ZN29CMmMtpDpMetadataAccessWrapper23GetObjectMetadataValueLEtR8MMTPTypeRK18CMTPObjectMetaData @ 196 NONAME
+ _ZNK11CSendObject12HasDataphaseEv @ 197 NONAME
+ _ZNK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 198 NONAME
+ _ZNK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 199 NONAME
+ _ZNK17CRequestProcessor10ConnectionEv @ 200 NONAME
+ _ZNK17CRequestProcessor12HasDataphaseEv @ 201 NONAME
+ _ZNK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 202 NONAME
+ _ZNK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 203 NONAME
+ _ZNK17CRequestProcessor7RequestEv @ 204 NONAME
+ _ZNK18CSetObjectPropList12HasDataphaseEv @ 205 NONAME
+ _ZNK19CSetObjectPropValue12HasDataphaseEv @ 206 NONAME
+ _ZNK20CSetObjectReferences12HasDataphaseEv @ 207 NONAME
+ _ZTI10CGetObject @ 208 NONAME
+ _ZTI11CCopyObject @ 209 NONAME
+ _ZTI11CMoveObject @ 210 NONAME
+ _ZTI11CSendObject @ 211 NONAME
+ _ZTI13CDeleteObject @ 212 NONAME
+ _ZTI13CRenameObject @ 213 NONAME
+ _ZTI14CGetObjectInfo @ 214 NONAME
+ _ZTI15CRequestChecker @ 215 NONAME
+ _ZTI15CRequestUnknown @ 216 NONAME
+ _ZTI15TMTPTypeFlatBuf @ 217 NONAME
+ _ZTI17CGetPartialObject @ 218 NONAME
+ _ZTI17CRequestProcessor @ 219 NONAME
+ _ZTI18CGetObjectPropDesc @ 220 NONAME
+ _ZTI18CGetObjectPropList @ 221 NONAME
+ _ZTI18CHXMetaDataUtility @ 222 NONAME
+ _ZTI18CSetObjectPropList @ 223 NONAME
+ _ZTI19CDescriptionUtility @ 224 NONAME
+ _ZTI19CGetObjectPropValue @ 225 NONAME
+ _ZTI19CSetObjectPropValue @ 226 NONAME
+ _ZTI20CGetObjectReferences @ 227 NONAME
+ _ZTI20CSetObjectReferences @ 228 NONAME
+ _ZTI22CGetFormatCapabilities @ 229 NONAME
+ _ZTI23CMmMtpDpAccessSingleton @ 230 NONAME
+ _ZTI23CPropertySettingUtility @ 231 NONAME
+ _ZTI24CGetObjectPropsSupported @ 232 NONAME
+ _ZTI25CMmMtpDpMetadataMpxAccess @ 233 NONAME
+ _ZTI26CGetInterdependentPropDesc @ 234 NONAME
+ _ZTI27CMmMtpDpMetadataVideoAccess @ 235 NONAME
+ _ZTI29CMmMtpDpMetadataAccessWrapper @ 236 NONAME
+ _ZTV10CGetObject @ 237 NONAME
+ _ZTV11CCopyObject @ 238 NONAME
+ _ZTV11CMoveObject @ 239 NONAME
+ _ZTV11CSendObject @ 240 NONAME
+ _ZTV13CDeleteObject @ 241 NONAME
+ _ZTV13CRenameObject @ 242 NONAME
+ _ZTV14CGetObjectInfo @ 243 NONAME
+ _ZTV15CRequestChecker @ 244 NONAME
+ _ZTV15CRequestUnknown @ 245 NONAME
+ _ZTV15TMTPTypeFlatBuf @ 246 NONAME
+ _ZTV17CGetPartialObject @ 247 NONAME
+ _ZTV17CRequestProcessor @ 248 NONAME
+ _ZTV18CGetObjectPropDesc @ 249 NONAME
+ _ZTV18CGetObjectPropList @ 250 NONAME
+ _ZTV18CHXMetaDataUtility @ 251 NONAME
+ _ZTV18CSetObjectPropList @ 252 NONAME
+ _ZTV19CDescriptionUtility @ 253 NONAME
+ _ZTV19CGetObjectPropValue @ 254 NONAME
+ _ZTV19CSetObjectPropValue @ 255 NONAME
+ _ZTV20CGetObjectReferences @ 256 NONAME
+ _ZTV20CSetObjectReferences @ 257 NONAME
+ _ZTV22CGetFormatCapabilities @ 258 NONAME
+ _ZTV23CMmMtpDpAccessSingleton @ 259 NONAME
+ _ZTV23CPropertySettingUtility @ 260 NONAME
+ _ZTV24CGetObjectPropsSupported @ 261 NONAME
+ _ZTV25CMmMtpDpMetadataMpxAccess @ 262 NONAME
+ _ZTV26CGetInterdependentPropDesc @ 263 NONAME
+ _ZTV27CMmMtpDpMetadataVideoAccess @ 264 NONAME
+ _ZTV29CMmMtpDpMetadataAccessWrapper @ 265 NONAME
+ _ZThn28_N11CSendObject13UsbDisconnectEv @ 266 NONAME
+ _ZThn28_N17CRequestProcessor12HandleEventLERK13TMTPTypeEvent @ 267 NONAME
+ _ZThn28_N17CRequestProcessor13UsbDisconnectEv @ 268 NONAME
+ _ZThn28_N17CRequestProcessor14HandleRequestLERK15TMTPTypeRequest20TMTPTransactionPhase @ 269 NONAME
+ _ZThn28_N17CRequestProcessor7ReleaseEv @ 270 NONAME
+ _ZThn28_N17CRequestProcessor9SessionIdEv @ 271 NONAME
+ _ZThn28_NK11CSendObject5MatchERK15TMTPTypeRequestR14MMTPConnection @ 272 NONAME
+ _ZThn28_NK15CRequestUnknown5MatchERK15TMTPTypeRequestR14MMTPConnection @ 273 NONAME
+ _ZThn28_NK17CRequestProcessor10ConnectionEv @ 274 NONAME
+ _ZThn28_NK17CRequestProcessor5MatchERK13TMTPTypeEventR14MMTPConnection @ 275 NONAME
+ _ZThn28_NK17CRequestProcessor5MatchERK15TMTPTypeRequestR14MMTPConnection @ 276 NONAME
+ _ZThn28_NK17CRequestProcessor7RequestEv @ 277 NONAME
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/cmoveobject.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -22,6 +22,7 @@
#include <mtp/cmtptypearray.h>
#include <mtp/cmtptypestring.h>
#include <mtp/cmtptypeobjectproplist.h>
+#include <mtp/mmtpreferencemgr.h>
#include "cmoveobject.h"
#include "mmmtpdplogger.h"
@@ -141,7 +142,7 @@
newObjectName.CleanupClosePushL(); // + newObjectName
newObjectName = *iDest;
- const TDesC& suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
+ TPtrC suid( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
TParsePtrC fileNameParser( suid );
if ( ( newObjectName.Length() + fileNameParser.NameAndExt().Length() )
<= newObjectName.MaxLength() )
@@ -419,7 +420,7 @@
TUint32 handle = element.Uint32L( CMTPTypeObjectPropListElement::EObjectHandle );
TUint16 propertyCode = element.Uint16L( CMTPTypeObjectPropListElement::EPropertyCode );
TUint16 dataType = element.Uint16L( CMTPTypeObjectPropListElement::EDatatype );
- PRINT3( _L( "MM MTP <> CCopyObject::SetPreviousPropertiesL = 0x%x, propertyCode = 0x%x, dataType = 0x%x" ),
+ PRINT3( _L( "MM MTP <> CMoveObject::SetPreviousPropertiesL = 0x%x, propertyCode = 0x%x, dataType = 0x%x" ),
handle,
propertyCode,
dataType );
@@ -492,32 +493,45 @@
{
// This is used to keep the same behavior in mass storage and device file manager.
PRINT( _L( "MM MTP <> CMoveObject::SetPropertiesL Playlist file do not update the MPX DB" ) );
- }
- else
- // TODO: Need rollback mechanism for consistant with image dp in fw.
- // Not sure if it should be trap if something wrong with MPX db.
- {
- if ( iSameStorage )
- {
- iDpConfig.GetWrapperL().RenameObjectL( *iObjectInfo, aNewFileName );
- }
- else // if the two object in different storage, we should delete the old one and insert new one
- {
- iDpConfig.GetWrapperL().DeleteObjectL( *iObjectInfo );
- iDpConfig.GetWrapperL().AddObjectL( *iObjectInfo );
-
- // Only leave when getting proplist element from data received by fw.
- // It should not happen after ReceiveDataL in which construction of proplist already succeed.
- SetPreviousPropertiesL();
- }
+ iDpConfig.GetWrapperL().DeleteDummyFile( iObjectInfo->DesC( CMTPObjectMetaData::ESuid ) );
+ iDpConfig.GetWrapperL().AddDummyFileL( aNewFileName );
}
- iObjectInfo->SetDesCL( CMTPObjectMetaData::ESuid, aNewFileName );
- iObjectInfo->SetUint( CMTPObjectMetaData::EStorageId, iStorageId );
- iObjectInfo->SetUint( CMTPObjectMetaData::EParentHandle, iNewParentHandle );
- iFramework.ObjectMgr().ModifyObjectL( *iObjectInfo );
+ if (iSameStorage)
+ {
+ iDpConfig.GetWrapperL().RenameObjectL( *iObjectInfo, aNewFileName );
+ iObjectInfo->SetDesCL( CMTPObjectMetaData::ESuid, aNewFileName );
+ iObjectInfo->SetUint( CMTPObjectMetaData::EStorageId, iStorageId );
+ iObjectInfo->SetUint( CMTPObjectMetaData::EParentHandle, iNewParentHandle );
+ iFramework.ObjectMgr().ModifyObjectL( *iObjectInfo );
+ }
+ else // if the two object in different storage, we should delete the old one and insert new one
+ {
+ iDpConfig.GetWrapperL().DeleteObjectL( *iObjectInfo );
+
+ HBufC* oldFileName = iObjectInfo->DesC(CMTPObjectMetaData::ESuid).AllocLC(); // + oldFileName
+ iObjectInfo->SetDesCL( CMTPObjectMetaData::ESuid, aNewFileName );
+ iObjectInfo->SetUint( CMTPObjectMetaData::EStorageId, iStorageId );
+ iObjectInfo->SetUint( CMTPObjectMetaData::EParentHandle, iNewParentHandle );
+ iFramework.ObjectMgr().ModifyObjectL(*iObjectInfo);
- // It's not necessary to change references of playlists since Reference DB is used PUID
+ iDpConfig.GetWrapperL().SetStorageRootL( aNewFileName );
+ iDpConfig.GetWrapperL().AddObjectL( *iObjectInfo );
+
+ if ( formatCode == EMTPFormatCodeAbstractAudioVideoPlaylist
+ || formatCode == EMTPFormatCodeAbstractAudioAlbum )
+ {
+ MMTPReferenceMgr& referenceMgr = iFramework.ReferenceMgr();
+ CDesCArray* references = referenceMgr.ReferencesLC( aNewFileName ); // + references
+ iDpConfig.GetWrapperL().SetReferenceL( *iObjectInfo, *references );
+ CleanupStack::PopAndDestroy( references ); // - references
+ }
+ CleanupStack::PopAndDestroy( oldFileName ); // - oldFileName
+
+ // Only leave when getting proplist element from data received by fw.
+ // It should not happen after ReceiveDataL in which construction of proplist already succeed.
+ SetPreviousPropertiesL();
+ }
PRINT( _L( "MM MTP <= CMoveObject::SetPropertiesL" ) );
}
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/crenameobject.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -145,12 +145,13 @@
if ( iNewFolderName.Length() + iRightPartName.Length() <= KMaxFileName )
{
- PerformAdditionalActionL();
-
iFileName.Zero();
iFileName.Append( iNewFolderName );
iFileName.Append( iRightPartName );
PRINT1( _L( "MM MTP <> CRenameObject::RunL new file name(%S)" ), &iFileName );
+
+ PerformAdditionalActionL();
+
// update framework metadata DB
iObjectInfo->SetDesCL( CMTPObjectMetaData::ESuid, iFileName );
iObjectInfo->SetUint( CMTPObjectMetaData::EObjectMetaDataUpdate, 1 );
--- a/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/mmmtpdprequestprocessor/src/csendobject.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -1322,9 +1322,9 @@
void CSendObject::Rollback()
{
// Delete this object from file system.
- if ( iProgress == ESendObjectInProgress
- || iProgress == EObjectInfoSucceed
- ||iProgress == EObjectInfoFail )
+ if ( iProgress == ESendObjectInProgress )
+ // || iProgress == EObjectInfoSucceed // this line is to be commented out until SetSize is done in SendObjectInfo/SendObjectPropList
+ //||iProgress == EObjectInfoFail )
{
PRINT1( _L( "MM MTP <> CSendObject::Rollback ROLLBACK_FILE %S" ), &iFullPath );
// Close the interrupted transfer file by delete iFileReceived object
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadataaccesswrapper.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -259,7 +259,7 @@
// Deletes metadata information associated with the object
// ---------------------------------------------------------------------------
//
-void CMmMtpDpMetadataAccessWrapper::DeleteObjectL( const CMTPObjectMetaData& aObject )
+EXPORT_C void CMmMtpDpMetadataAccessWrapper::DeleteObjectL( const CMTPObjectMetaData& aObject )
{
TPtrC fileName( aObject.DesC( CMTPObjectMetaData::ESuid ) );
PRINT1( _L( "MM MTP => CMmMtpDpMetadataAccessWrapper::DeleteObjectL name = %S" ), &fileName );
--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -668,7 +668,6 @@
CMPXMedia& aMediaProp )
{
PRINT1( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::SetMetadataValueL aPropCode = 0x%x" ), aPropCode );
- CMTPTypeString* textData = CMTPTypeString::NewLC(); // + textData
CMTPTypeArray* desData = NULL;
TMTPTypeUint16 uint16Data;
TMTPTypeUint32 uint32Data;
@@ -684,14 +683,12 @@
case EMTPObjectPropCodeComposer:
case EMTPObjectPropCodeAlbumArtist:
{
- PRINT1( _L( "MM MTP <> SetMetadataValueL Before Copy, string length = %d" ), aNewData.Size() );
- MMTPType::CopyL( aNewData, *textData );
- PRINT1( _L( "MM MTP <> SetMetadataValueL string length = %d" ), textData->StringChars().Length() );
- aMediaProp.SetTextValueL( attrib, textData->StringChars() );
- HBufC* log = textData->StringChars().AllocL();
- PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL string = %S" ), log );
- delete log;
- log = NULL;
+ const CMTPTypeString& textData = static_cast<const CMTPTypeString&>( aNewData );
+ HBufC* string = textData.StringChars().AllocLC(); // + string
+ PRINT2( _L( "MM MTP <> SetMetadataValueL des.ptr() = 0x%x, string length = %d" ),string->Des().Ptr(), string->Des().Length() );
+ PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL string = %S" ), string );
+ aMediaProp.SetTextValueL( attrib, string->Des() );
+ CleanupStack::PopAndDestroy( string ); // - string
}
break;
@@ -735,10 +732,10 @@
case EMTPObjectPropCodeOriginalReleaseDate:
{
- MMTPType::CopyL( aNewData, *textData );
+ const CMTPTypeString& textData = static_cast<const CMTPTypeString&>( aNewData );
TBuf<KMtpMaxStringLength> data;
- data.Copy( textData->StringChars().Left( KMtpMaxDateTimeStringLength ) );
+ data.Copy( textData.StringChars().Left( KMtpMaxDateTimeStringLength ) );
PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL 0xDC99 date = %S" ),
&data );
if ( data.Length() < KMtpMaxDateTimeStringLength )
@@ -821,23 +818,18 @@
TUint length = desData->NumElements();
PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL length = %d" ),
length );
- if ( length != 0 )
- {
- length = ( length < KMTPMaxDescriptionLen ) ? length : KMTPMaxDescriptionLen;
- HBufC* text = HBufC::NewLC( length ); // + text
- TPtr ptr = text->Des();
+
+ length = ( length < KMTPMaxDescriptionLen ) ? length : KMTPMaxDescriptionLen;
+ HBufC* text = HBufC::NewLC( length ); // + text
+ TPtr ptr = text->Des();
- for ( TUint i = 0; i < length; i++ )
- ptr.Append( desData->ElementUint( i ) );
- PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL text = %S" ),
- text );
- aMediaProp.SetTextValueL( KMPXMediaGeneralComment, *text );
- CleanupStack::PopAndDestroy( text ); // - text
- }
- else
- {
- aMediaProp.SetTextValueL( KMPXMediaGeneralComment, KEmptyText );
- }
+ for ( TUint i = 0; i < length; i++ )
+ ptr.Append( desData->ElementUint( i ) );
+ PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL text = %S" ),
+ text );
+ aMediaProp.SetTextValueL( KMPXMediaGeneralComment, text->Des() );
+ CleanupStack::PopAndDestroy( text ); // - text
+
CleanupStack::PopAndDestroy( desData ); // - desData
#endif //__MUSIC_ID_SUPPORT
}
@@ -879,7 +871,6 @@
break;
}
- CleanupStack::PopAndDestroy( textData ); // - textData
PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::SetMetadataValueL" ) );
}
@@ -1027,7 +1018,7 @@
CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
- if ( aCategory == EMPXPlaylist )
+ if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB
{
abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
}
@@ -1075,9 +1066,8 @@
media->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
TParsePtrC parse( aFullFileName );
-
media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
- if ( ( aCategory == EMPXPlaylist ) || ( aCategory == EMPXAbstractAlbum ) )
+ if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB
{
media->SetTextValueL( KMPXMediaGeneralTitle, parse.Name() );
}
@@ -1323,7 +1313,7 @@
CleanupClosePushL( abstractMediaAttributes ); // + abstractMediaAttributes
abstractMediaAttributes.AppendL( KMPXMediaGeneralId );
abstractMediaAttributes.AppendL( KMPXMediaGeneralTitle );
- if ( aCategory == EMPXPlaylist )
+ if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB
{
abstractMediaAttributes.AppendL( KMPXMediaGeneralUri );
}
@@ -1457,7 +1447,7 @@
{
PRINT( _L( "MM MTP => CMmMtpDpMetadataMpxAccess::GetAbstractMediaNameL" ) );
HBufC* name = NULL;
- if ( aCategory == EMPXPlaylist )
+ if ( aCategory == EMPXPlaylist ) // rollback until Rename is supported on MPX DB
{
if( !aAbstractMedia->IsSupported( KMPXMediaGeneralUri ) )
{
--- a/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/mmmtpdputility.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -38,6 +38,7 @@
#include "mmmtpdpfiledefs.h"
#include "tobjectdescription.h"
#include "mmmtpdplogger.h"
+#include "mmmtpdp_variant.hrh"
using namespace ContentAccess;
@@ -57,82 +58,77 @@
//
EXPORT_C TMTPFormatCode MmMtpDpUtility::FormatFromFilename( const TDesC& aFullFileName )
{
+ TMTPFormatCode format = EMTPFormatCodeUndefined;
+
if ( aFullFileName.Right( 1 ).CompareF( KTxtBackSlash ) == 0 ) // We have a directory name
{
- return EMTPFormatCodeAssociation;
+ format = EMTPFormatCodeAssociation;
}
-
- TParsePtrC file( aFullFileName );
-
- if ( !file.ExtPresent() )
- return EMTPFormatCodeUndefined;
-
- // need to do it in popularity of format, to optmize performance
- if ( file.Ext().CompareF( KTxtExtensionMP3 ) == 0 )
- return EMTPFormatCodeMP3;
-
-#ifdef __WINDOWS_MEDIA
- if ( file.Ext().CompareF( KTxtExtensionWMA ) == 0 )
- return EMTPFormatCodeWMA;
-#endif // __WINDOWS_MEDIA
-
- if ( ( file.Ext().CompareF( KTxtExtensionMP4 ) == 0 )
- || ( file.Ext().CompareF( KTxtExtensionM4A ) == 0 ) )
- return EMTPFormatCodeMP4Container;
-
- if ( ( file.Ext().CompareF( KTxtExtension3GP ) == 0 )
- || ( file.Ext().CompareF( KTxtExtension3G2 ) == 0 )
- || ( file.Ext().CompareF( KTxtExtensionO4A ) == 0 )
- || ( file.Ext().CompareF( KTxtExtensionO4V ) == 0 ) )
- return EMTPFormatCode3GPContainer;
-
- if ( file.Ext().CompareF( KTxtExtensionAAC ) == 0 )
- return EMTPFormatCodeAAC;
+ else
+ {
+ TParsePtrC file( aFullFileName );
- if ( file.Ext().CompareF( KTxtExtensionWAV ) == 0 )
- return EMTPFormatCodeWAV;
-
+ if ( file.ExtPresent() )
+ {
+ // need to do it in popularity of format, to optmize performance
+ if ( file.Ext().CompareF( KTxtExtensionMP3 ) == 0 )
+ format = EMTPFormatCodeMP3;
#ifdef __WINDOWS_MEDIA
- if ( file.Ext().CompareF( KTxtExtensionWMV ) == 0 )
- return EMTPFormatCodeWMV;
-
- if ( file.Ext().CompareF( KTxtExtensionASF ) == 0 )
- return EMTPFormatCodeASF;
-
+ else if ( file.Ext().CompareF( KTxtExtensionWMA ) == 0 )
+ format = EMTPFormatCodeWMA;
#endif // __WINDOWS_MEDIA
+ else if (( file.Ext().CompareF( KTxtExtensionPLA ) == 0 )
+ || ( file.Ext().CompareF( KTxtExtensionVIR ) == 0 ) )
+ format = EMTPFormatCodeAbstractAudioVideoPlaylist;
+ else if ( ( file.Ext().CompareF( KTxtExtensionMP4 ) == 0 )
+ || ( file.Ext().CompareF( KTxtExtensionM4A ) == 0 ) )
+ format = EMTPFormatCodeMP4Container;
+ else if ( ( file.Ext().CompareF( KTxtExtension3GP ) == 0 )
+ || ( file.Ext().CompareF( KTxtExtension3G2 ) == 0 )
+ || ( file.Ext().CompareF( KTxtExtensionO4A ) == 0 )
+ || ( file.Ext().CompareF( KTxtExtensionO4V ) == 0 ) )
+ format = EMTPFormatCode3GPContainer;
+ else if ( file.Ext().CompareF( KTxtExtensionAAC ) == 0 )
+ format = EMTPFormatCodeAAC;
+ else if ( file.Ext().CompareF( KTxtExtensionWAV ) == 0 )
+ format = EMTPFormatCodeWAV;
+#ifdef __WINDOWS_MEDIA
+ else if ( file.Ext().CompareF( KTxtExtensionWMV ) == 0 )
+ format = EMTPFormatCodeWMV;
+ else if ( file.Ext().CompareF( KTxtExtensionASF ) == 0 )
+ format = EMTPFormatCodeASF;
+#endif // __WINDOWS_MEDIA
+ else if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 )
+ {
+ HBufC8* mime = MmMtpDpUtility::ContainerMimeType( file.FullName() );
+ if ( mime != NULL )
+ {
+ // 3GP
+ if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0
+ || mime->CompareF( KMimeTypeVideo3gpp ) == 0 )
+ {
+ delete mime;
+ mime = NULL;
+ format = EMTPFormatCode3GPContainer;
+ }
+ }
- if ( file.Ext().CompareF( KTxtExtensionODF ) == 0 )
- {
- HBufC8* mime = MmMtpDpUtility::ContainerMimeType( file.FullName() );
- if ( mime != NULL )
- {
- // 3GP
- if ( mime->CompareF( KMimeTypeAudio3gpp ) == 0
- || mime->CompareF( KMimeTypeVideo3gpp ) == 0 )
- {
- delete mime;
- mime = NULL;
- return EMTPFormatCode3GPContainer;
+ if ( mime != NULL )
+ {
+ delete mime;
+ mime = NULL;
+ }
}
- }
-
- if ( mime != NULL )
- {
- delete mime;
- mime = NULL;
+#ifdef MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT
+ else if ( file.Ext().CompareF( KTxtExtensionALB ) == 0 )
+ format = EMTPFormatCodeAbstractAudioAlbum;
+#endif // MMMTPDP_ABSTRACTAUDIOALBUM_SUPPORT
+ else if ( file.Ext().CompareF( KTxtExtensionM3U ) == 0 )
+ format = EMTPFormatCodeM3UPlaylist;
}
}
- if ( file.Ext().CompareF( KTxtExtensionALB ) == 0 )
- return EMTPFormatCodeAbstractAudioAlbum;
-
- if (( file.Ext().CompareF( KTxtExtensionPLA ) == 0 ) || ( file.Ext().CompareF( KTxtExtensionVIR ) == 0 ) )
- return EMTPFormatCodeAbstractAudioVideoPlaylist;
-
- if ( file.Ext().CompareF( KTxtExtensionM3U ) == 0 )
- return EMTPFormatCodeM3UPlaylist;
-
- return EMTPFormatCodeUndefined;
+ return format;
}
// -----------------------------------------------------------------------------
--- a/mmappfw_plat/harvester_server_api/inc/mpxharvestercommon.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mmappfw_plat/harvester_server_api/inc/mpxharvestercommon.h Wed Apr 14 16:28:17 2010 +0300
@@ -69,7 +69,7 @@
EUSBMTPEndEvent, // MTP end event
EUSBMTPNotActiveEvent, // MTP selected but not active
ESystemEventMax, // End of event enum
- EPowerKeyEjectEvent // Power key eject mmc
+ EDiskDismountEvent // Disk dismount notification (MPX Harvester internal)
};
#endif // MPX_HARVESTER_COMMON_H
--- a/mpx/collectionframework/collectionengine/inc/mpxcollectionengine.h Wed Mar 31 22:26:09 2010 +0300
+++ b/mpx/collectionframework/collectionengine/inc/mpxcollectionengine.h Wed Apr 14 16:28:17 2010 +0300
@@ -79,6 +79,14 @@
* @param aData some data
*/
IMPORT_C void NotifyL(TMPXCollectionBroadCastMsg aMsg, TInt aData);
+
+
+ /**
+ * Broadcast a command to all plug-ins
+ * @param aCmd command to send
+ * @param aData some data
+ */
+ void Command(TMPXCollectionCommand aCmd, TInt aData);
/**
* Retrieves the set of supported file types in the collection server
--- a/mpx/collectionframework/collectionengine/src/mpxcollectionclientcontext.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mpx/collectionframework/collectionengine/src/mpxcollectionclientcontext.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -619,6 +619,13 @@
iEngine.PluginPop();
break;
}
+ case EMcCloseCollection:
+ {
+ // Forward to all plug-ins; argument is drive number
+ iEngine.Command ( aCmd, aData );
+ break;
+ }
+
default:
{
User::Leave(KErrNotSupported);
--- a/mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mpx/collectionframework/collectionengine/src/mpxcollectionengine.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -253,12 +253,7 @@
}
if( command != KErrNotSupported )
{
- TArray<CMPXCollectionPlugin*> plugins = iPluginHandler->LoadedPlugins();
- for( TInt i=0; i<plugins.Count(); ++i )
- {
- CMPXCollectionPlugin* plugin = plugins[i];
- TRAP_IGNORE(plugin->CommandL( (TMPXCollectionCommand)command, data));
- }
+ Command( (TMPXCollectionCommand)command, data );
}
if( clearCache )
@@ -295,6 +290,16 @@
}
}
+void CMPXCollectionEngine::Command( TMPXCollectionCommand aCmd, TInt aData )
+ {
+ TArray<CMPXCollectionPlugin*> plugins = iPluginHandler->LoadedPlugins();
+ for( TInt i=0; i<plugins.Count(); ++i )
+ {
+ CMPXCollectionPlugin* plugin = plugins[i];
+ TRAP_IGNORE(plugin->CommandL( aCmd, aData));
+ }
+ }
+
// ----------------------------------------------------------------------------
// Retrieves all of the supported types in the collection
// ----------------------------------------------------------------------------
--- a/mpx/collectionframework/collectionserver/src/mpxcollectionserversession.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mpx/collectionframework/collectionserver/src/mpxcollectionserversession.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -570,14 +570,14 @@
//
void CMPXCollectionSession::CancelRequests()
{
+ if (iContext)
+ {
+ iContext->CancelRequest(this);
+ }
if (!iMessage.IsNull())
{
iMessage.Complete(KErrCancel);
}
- if (iContext)
- {
- iContext->CancelRequest(this);
- }
}
// ----------------------------------------------------------------------------
--- a/mpx/commonframework/common/src/mpxdataarray.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mpx/commonframework/common/src/mpxdataarray.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -55,7 +55,10 @@
//
void RMPXDataItem::Copy(TUint aClientHandle,TAny* aSrc,TInt aSize)
{
- MPX_ASSERT(aSrc&&aClientHandle);
+ //The source could be zero-length descriptor: aSize is 0 and aSrc is NULL
+ //ASSERT if aSrc is NULL while aSize is not zero, invalid descriptor
+ MPX_ASSERT(((aSrc!=NULL)?ETrue:(aSize==0))&&aClientHandle);
+
//
Reset(aClientHandle);
RMPXHeapManager& m=RMPXHeapManager::HeapManager(aClientHandle);
--- a/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Wed Mar 31 22:26:09 2010 +0300
+++ b/mpx/playbackframework/playbackengine/src/mpxplaybackengine.cpp Wed Apr 14 16:28:17 2010 +0300
@@ -1678,14 +1678,6 @@
iCallback->HandleProperty(aProperty,aValue,aError);
iCallback = NULL;
iTaskQueue->CompleteTask();
-
- // notify client the new position during the playback
- if ((EPbPropertyPosition == aProperty) && (iProgressTimer->IsActive()))
- {
- TRAP_IGNORE(iClientList->SendMsgL(
- TMPXPlaybackMessage(TMPXPlaybackMessage::EPropertyChanged,
- EPbPropertyPosition,aValue)));
- }
}
MPX_DEBUG2("<--CMPXPlaybackEngine::HandleProperty 0x%08x", this);
}