--- a/mmappcomponents/collectionhelper/inc/mpxcollectionhelperimp.h Fri Jun 25 17:07:52 2010 -0500
+++ b/mmappcomponents/collectionhelper/inc/mpxcollectionhelperimp.h Fri Jul 09 17:03:16 2010 -0500
@@ -19,6 +19,9 @@
#ifndef CMPXCOLLECTIONHELPERIMP_H
#define CMPXCOLLECTIONHELPERIMP_H
+#include <thumbnailmanager.h>
+#include <thumbnailmanagerobserver.h>
+
#include "mpxcollectionhelper.h"
#include "mpxharvesterutilityobserver.h"
#include "mpxmediatorobserver.h"
@@ -41,7 +44,8 @@
NONSHARABLE_CLASS( CMPXCollectionHelperImp ): public CBase,
public MMPXCollectionHelper,
public MMPXHarvesterUtilityObserver,
- public MMPXMediatorObserver
+ public MMPXMediatorObserver,
+ public MThumbnailManagerObserver
{
public:
@@ -695,6 +699,18 @@
*/
void HandleFileGetMediaCompletedL( CMPXMedia* aMedia, TInt aErr );
+public:
+ /**
+ * From MThumbnailManagerObserver
+ */
+ void ThumbnailPreviewReady( MThumbnailData& aThumbnail,
+ TThumbnailRequestId aId );
+ /**
+ * From MThumbnailManagerObserver
+ */
+ void ThumbnailReady( TInt aError,
+ MThumbnailData& aThumbnail,
+ TThumbnailRequestId aId );
private:
/**
@@ -702,6 +718,13 @@
* @param aMedia media item to add to the collection
*/
void DoAddToCollectionL( CMPXMedia* aMedia );
+
+ /**
+ * Rename the thumbnail through thumbnail manager
+ * @param aOldUri exiting uri of the song
+ * @param aNewUri new uri of the song
+ */
+ void RenameThumbnailL( const TDesC& aOldUri, const TDesC& aNewUri );
protected:
@@ -720,7 +743,8 @@
MMPXHarvesterUtility* iHvsUtility;
MMPXCollectionUtility* iCollectionUtil;
CMPXCollectionMediator* iMediator;
-
+
+ CThumbnailManager* iTNManager; // owned
MMPXCollectionHelperObserver* iObserver; // not owned
TUid iMusicCollectionId;
TBool iInitialized;
--- a/mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp Fri Jun 25 17:07:52 2010 -0500
+++ b/mmappcomponents/collectionhelper/src/mpxcollectionhelperimp.cpp Fri Jul 09 17:03:16 2010 -0500
@@ -25,6 +25,7 @@
#include <mpxcollectionutility.h>
#include <mpxharvesterutility.h>
#include <mpxmediageneraldefs.h>
+#include <mpxmediamusicdefs.h>
#include <mpxmediacontainerdefs.h>
#include <mpxuser.h>
#include <mpxcollectionplugin.hrh>
@@ -45,6 +46,7 @@
// ---------------------------------------------------------------------------
//
CMPXCollectionHelperImp::CMPXCollectionHelperImp()
+ : iTNManager(NULL)
{
}
@@ -59,7 +61,7 @@
iCollectionUtil = MMPXCollectionUtility::NewL();
iMediator = CMPXCollectionMediator::NewL( iCollectionUtil->Collection(),
this );
-
+
RArray<TUid> ary;
CleanupClosePushL( ary );
ary.AppendL( TUid::Uid(EMPXCollectionPluginMusic) );
@@ -111,6 +113,8 @@
iCollectionUtil->Close();
}
delete iMediator;
+
+ delete iTNManager;
}
@@ -416,11 +420,28 @@
RArray<TMPXAttribute> attributes;
CleanupClosePushL( attributes );
attributes.AppendL(KMPXMediaGeneralId);
+ attributes.AppendL(KMPXMediaMusicAlbumArtFileName);
CMPXMedia* media = GetL(aOldUri, attributes.Array(), aItemCat);
CleanupStack::PopAndDestroy(&attributes);
CleanupStack::PushL(media);
+ const TDesC& fileName(media->ValueText(KMPXMediaMusicAlbumArtFileName));
+
+ // the songs have embedded albumart.
+ if(fileName.CompareF(aOldUri) == 0)
+ {
+ // change the Art filename to the new Uri
+ media->SetTextValueL(KMPXMediaMusicAlbumArtFileName, aNewUri);
+
+ // Rename the thumbnail
+ TRAPD(err, RenameThumbnailL(aOldUri, aNewUri));
+ if(KErrNone != err)
+ {
+ MPX_DEBUG2("Thumbnail renames failed. Err: %d", err);
+ }
+ }
+
// change file path to the new file path
media->SetTextValueL(KMPXMediaGeneralUri, aNewUri);
@@ -735,4 +756,41 @@
delete this;
}
+// ---------------------------------------------------------------------------
+// Rename the thumbnail through TNM
+// ---------------------------------------------------------------------------
+//
+void CMPXCollectionHelperImp::RenameThumbnailL( const TDesC& aOldUri,
+ const TDesC& aNewUri )
+ {
+ MPX_FUNC("CMPXCollectionHelperImp::RenameThumbnailL");
+
+ // Create Thumbnail Manager instance when use first time.
+ if(NULL == iTNManager)
+ {
+ iTNManager = CThumbnailManager::NewL( *this );
+ }
+
+ // Rename thumbnail
+ iTNManager->RenameThumbnailsL(aOldUri, aNewUri, 0);
+ }
+
+// ---------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::ThumbnailReady
+// Callback but not used here
+// ---------------------------------------------------------------------------
+void CMPXCollectionHelperImp::ThumbnailPreviewReady(
+ MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
+ {
+ }
+
+
+// ---------------------------------------------------------------------------
+// CMPXDbAbstractAlbum::ThumbnailReady
+// Callback but not used here
+// ---------------------------------------------------------------------------
+void CMPXCollectionHelperImp::ThumbnailReady( TInt /*aError*/,
+ MThumbnailData& /*aThumbnail*/, TThumbnailRequestId /*aId*/ )
+ {
+ }
// End of file
--- a/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp Fri Jun 25 17:07:52 2010 -0500
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxfileinfoutility.cpp Fri Jul 09 17:03:16 2010 -0500
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: This class is responsible for reading file info
-* Version : %version: da1mmcf#5.1.3.1.6.2.1 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#5.1.3.1.6.2.2 % << Don't touch! Updated by Synergy at check-out.
*
* Copyright © 2005 Nokia. All rights reserved.
*/
@@ -163,9 +163,6 @@
buf->Ptr(0),
dataSource));
- MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()- AddDataSink()");
- User::LeaveIfError(iController->AddDataSink(KUidMmfAudioOutput,
- KNullDesC8));
CleanupStack::PopAndDestroy(buf);
MPX_DEBUG1("CMPXFileInfoUtility::OpenFileL()--->");
--- a/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Fri Jun 25 17:07:52 2010 -0500
+++ b/mmappcomponents/harvester/metadataextractor/src/mpxmetadataextractor.cpp Fri Jul 09 17:03:16 2010 -0500
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Extracts metadata from a file
-* Version : %version: da1mmcf#38.1.4.2.6.1.5.3.4 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#38.1.4.2.6.1.5.3.5 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -432,6 +432,50 @@
}
break;
}
+ case EMetaDataSampleRate:
+ {
+ const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
+
+ // Verify if WMA, get the sample rate
+ if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
+ {
+ MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
+
+ // Perform the sample rate conversion
+ TLex lexer( *value );
+ TInt32 sampleRate ( 0 );
+ lexer.Val( sampleRate );
+
+ iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioSamplerate,
+ sampleRate );
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- sample rate = %i", sampleRate);
+ }
+ break;
+ }
+ case EMetaDataBitRate:
+ {
+ const TDesC& mimeType = iMedia->ValueText( KMPXMediaGeneralMimeType );
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL, mimeType = %S", &mimeType);
+
+ // Verify if WMA, get the duration
+ if( mimeType.Compare(KWmaMimeType) == 0 || mimeType.Compare(KWmaCafMimeType) == 0 )
+ {
+ MPX_DEBUG1("CMPXMetadataExtractor::SetMediaPropertiesL- WMA");
+
+ // Perform the duration conversion
+ TLex lexer( *value );
+ TInt32 bitRate ( 0 );
+ lexer.Val( bitRate );
+
+ iMedia->SetTObjectValueL<TUint>( KMPXMediaAudioBitrate,
+ bitRate );
+
+ MPX_DEBUG2("CMPXMetadataExtractor::SetMediaPropertiesL- duration = %i", bitRate);
+ }
+ break;
+ }
case EMetaDataOriginalArtist: // fall through
case EMetaDataVendor: // fall through
case EMetaDataRating: // fall through
--- a/mmappfw_plat/harvester_utility_api/tsrc/Conf/mpxharvestertest.cfg Fri Jun 25 17:07:52 2010 -0500
+++ b/mmappfw_plat/harvester_utility_api/tsrc/Conf/mpxharvestertest.cfg Fri Jul 09 17:03:16 2010 -0500
@@ -142,8 +142,8 @@
[Test]
title Delete files synchronously
create mpxharvestertest utility
+utility CopyTestFile mpxtest1.mp3 mpxtest2.mp3
pause 2000
-utility CopyTestFile mpxtest1.mp3 mpxtest2.mp3
utility CreateUtility
utility AddFileByPath mpxtest1.mp3
waittestclass utility
--- a/mpx/commonframework/group/bld.inf Fri Jun 25 17:07:52 2010 -0500
+++ b/mpx/commonframework/group/bld.inf Fri Jul 09 17:03:16 2010 -0500
@@ -23,9 +23,9 @@
PRJ_EXPORTS
// Secure backup & restore
-backup_registration.xml /epoc32/release/winscw/urel/z/private/101ffc02/backup_registration.xml
-backup_registration.xml /epoc32/release/winscw/udeb/z/private/101ffc02/backup_registration.xml
-backup_registration.xml /epoc32/data/z/private/101ffc02/backup_registration.xml
+backup_registration.xml z:/private/101ffc02/backup_registration.xml
+
+
../rom/mpxcommonframework.iby CORE_MW_LAYER_IBY_EXPORT_PATH(mpxcommonframework.iby)