--- a/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Tue Apr 27 17:09:22 2010 +0300
+++ b/mmappcomponents/mmmtpdataprovider/src/cmmmtpdpmetadatampxaccess.cpp Tue May 11 16:40:32 2010 +0300
@@ -62,6 +62,8 @@
_LIT( KMpxCollectionGetReference, "MpxCollectionGetReference" );
_LIT( KMpxCollectionFindAllLValidate, "MpxCollectionValidate" );
_LIT( KMpxCollectionFindAllLBeforeAdd, "MpxCollectionFindAllLBeforeAdd" );
+_LIT( KMpxCollectionFindAllLModified, "MpxCollectionFindAllLModified" );
+_LIT( KMpxCollectionCleanupDeletedMediasL, "KMpxCollectionCleanupDeletedMediasL" );
_LIT( KSetMetadataValue, "SetMetadataValueL" );
#endif
@@ -80,7 +82,8 @@
}
CMmMtpDpMetadataMpxAccess::CMmMtpDpMetadataMpxAccess( RFs& aRfs ):
- iRfs( aRfs )
+ iRfs( aRfs ),
+ iSampleData( NULL )
{
// Do nothing
}
@@ -111,6 +114,8 @@
iCollectionHelper = NULL;
}
+ delete iSampleData;
+
// for performance measurement purpose
#if defined(_DEBUG) || defined(MMMTPDP_PERFLOG)
delete iPerfLog;
@@ -393,7 +398,10 @@
searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
searchMedia->SetTObjectValueL<TMPXItemId>( KMPXMediaGeneralId,
KMtpInvalidSongID );
- searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot );
+ if ( iStoreRoot.Length() > 0 )
+ {
+ searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot );
+ }
RArray<TMPXAttribute> songAttributes;
CleanupClosePushL( songAttributes ); // + songAttributes
@@ -455,8 +463,10 @@
PRINT( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::FindWMPMediaLC searchMedia setup with no problems" ) );
+ PERFLOGSTART(KMpxCollectionFindAllLModified);
CMPXMedia* foundMedia = CollectionHelperL()->FindAllL( *searchMedia,
songAttributes.Array() );
+ PERFLOGSTOP(KMpxCollectionFindAllLModified);
PRINT( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::FindWMPMediaLC foundMedia assigned from FindAllL" ) );
CleanupStack::PopAndDestroy( &songAttributes ); // - songAttributes
@@ -587,7 +597,9 @@
// as there is NOT a separate database for deleted files.
PRINT( _L( "MM MTP <> Deleting metadata for deleted files" ) );
+ PERFLOGSTART( KMpxCollectionCleanupDeletedMediasL );
CollectionHelperL()->CleanupDeletedMediasL();
+ PERFLOGSTOP( KMpxCollectionCleanupDeletedMediasL );
PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::UpdateMusicCollectionL" ) );
}
@@ -685,6 +697,9 @@
CollectionHelperL()->SetL( media );
PERFLOGSTOP( KMpxCollectionSetL );
+ delete iSampleData;
+ iSampleData = NULL;
+
CleanupStack::PopAndDestroy( 2, &contentIDs ); // - media, contentIDs
PRINT( _L( "MM MTP <= CMmMtpDpMetadataMpxAccess::SetObjectMetadataValueL" ) );
@@ -881,16 +896,19 @@
const TDesC& suid = aMediaProp.ValueText( KMPXMediaGeneralUri );
PRINT2( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL SampleData numElements = %d, suid = %S" ), numElements, &suid );
- HBufC8* sampleData = HBufC8::NewLC( numElements * sizeof( TUint8 ) );
- TPtr8 samplePtr = sampleData->Des();
+ delete iSampleData;
+ iSampleData = NULL;
+
+ iSampleData = HBufC8::NewL( numElements * sizeof( TUint8 ) );
+ TPtr8 samplePtr = iSampleData->Des();
mtpTypeArray.ToDes( samplePtr );
RFile sampleFile;
CleanupClosePushL( sampleFile );
User::LeaveIfError( sampleFile.Replace( iRfs, suid, EFileWrite ) );
User::LeaveIfError( sampleFile.Write( samplePtr ) );
+ aMediaProp.SetTObjectValueL<TInt>( KMPXMediaMTPSampleData, (TInt)iSampleData );
+ aMediaProp.SetTObjectValueL<TBool>( attrib, ETrue );
CleanupStack::PopAndDestroy( &sampleFile );
- CleanupStack::PopAndDestroy( sampleData );
- aMediaProp.SetTObjectValueL<TBool>( attrib, ETrue );
PRINT1( _L( "MM MTP <> CMmMtpDpMetadataMpxAccess::SetMetadataValueL SampleData is ready = %u" ), 1 );
}
break;
@@ -926,7 +944,9 @@
searchMedia->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXSong );
searchMedia->SetTextValueL( KMPXMediaGeneralUri, aFullFileName );
- searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot );
+
+ TParsePtrC parse( aFullFileName );
+ searchMedia->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
RArray<TMPXAttribute> songAttributes;
CleanupClosePushL( songAttributes ); // + songAttributes
@@ -1158,7 +1178,7 @@
TParsePtrC parse( aRefFileArray[j] );
media->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
media->SetTObjectValueL( KMPXMediaGeneralModified, EFalse );
-
+
// Add media into array contents
abstractMediaArray->AppendL( media );
@@ -1568,7 +1588,9 @@
searchMedia->SetTObjectValueL( KMPXMediaGeneralType, EMPXItem );
searchMedia->SetTObjectValueL( KMPXMediaGeneralCategory, EMPXPlaylist );
searchMedia->SetTextValueL( KMPXMediaGeneralUri, aSuid );
- searchMedia->SetTextValueL( KMPXMediaGeneralDrive, iStoreRoot );
+
+ TParsePtrC parse( aSuid );
+ searchMedia->SetTextValueL( KMPXMediaGeneralDrive, parse.Drive() );
RArray<TMPXAttribute> playlistAttributes;
CleanupClosePushL( playlistAttributes ); // + playlistAttributes