# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1273583456 -10800 # Node ID 70a8526f03f2ff0a951a2c0ef771878120ae3d6d # Parent a1247965635c09cf674651216333ba6faa1d1d6d Revision: 201017 Kit: 201019 diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/Conf/mpxmusicplayer.confml Binary file mpxmusicplayer/Conf/mpxmusicplayer.confml has changed diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/app/data/mpx_reg.rss --- a/mpxmusicplayer/app/data/mpx_reg.rss Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/app/data/mpx_reg.rss Tue May 11 16:10:56 2010 +0300 @@ -90,7 +90,9 @@ DATATYPE { priority = EDataTypePriorityMPX; type = "audio/x-wav"; }, DATATYPE { priority = EDataTypePriorityMPX; type = "audio/x-au"; }, DATATYPE { priority = EDataTypePriorityMPX; type = "audio/au"; }, - DATATYPE { priority = EDataTypePriorityMPX; type = "application/vnd.nokia.ringing-tone"; } + DATATYPE { priority = EDataTypePriorityMPX; type = "application/vnd.nokia.ringing-tone"; }, + DATATYPE { priority = EDataTypePriorityMPX; type = "audio/x-mpegurl"; }, + DATATYPE { priority = EDataTypePriorityMPX; type = "audio/mpegurl"; } }; } diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/app/src/mpxrestorepath.cpp --- a/mpxmusicplayer/app/src/mpxrestorepath.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/app/src/mpxrestorepath.cpp Tue May 11 16:10:56 2010 +0300 @@ -652,7 +652,9 @@ // USB mass storage dismounts the disk, but in that case // we do want to revert back to first song of all songs // - else if( type == EMcMsgDiskInserted && + //if refresh started save the path info + // + else if( ( type == EMcMsgDiskInserted || EMcMsgRefreshStart ) && !iUSBOngoing ) { SavePathL(); diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/commonui/bwinscw/mpxcommonuiU.DEF --- a/mpxmusicplayer/commonui/bwinscw/mpxcommonuiU.DEF Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/commonui/bwinscw/mpxcommonuiU.DEF Tue May 11 16:10:56 2010 +0300 @@ -1,60 +1,60 @@ EXPORTS - ??1CMPXAlbumArtUtil@@UAE@XZ @ 1 NONAME ; CMPXAlbumArtUtil::~CMPXAlbumArtUtil(void) - ??1CMPXLbxExtendedFeatures@@UAE@XZ @ 2 NONAME ; CMPXLbxExtendedFeatures::~CMPXLbxExtendedFeatures(void) - ??1CMPXSaveHelper@@UAE@XZ @ 3 NONAME ; CMPXSaveHelper::~CMPXSaveHelper(void) - ?AddToSavedPlaylistL@CMPXCommonUiHelper@@QAEHABVCMPXMedia@@0PAVMMPXCHelperObserver@@PAVMProgressDialogCallback@@@Z @ 4 NONAME ; int CMPXCommonUiHelper::AddToSavedPlaylistL(class CMPXMedia const &, class CMPXMedia const &, class MMPXCHelperObserver *, class MProgressDialogCallback *) - ?AllowMove@MPXTlsHelper@@SAHXZ @ 5 NONAME ; int MPXTlsHelper::AllowMove(void) - ?AvailableDriveLC@CMPXCommonUiHelper@@QAEPAVHBufC16@@H@Z @ 6 NONAME ; class HBufC16 * CMPXCommonUiHelper::AvailableDriveLC(int) - ?CancelRequest@CMPXAlbumArtUtil@@QAEXXZ @ 7 NONAME ; void CMPXAlbumArtUtil::CancelRequest(void) - ?CreatePlaylistL@CMPXCommonUiHelper@@QAEHABVCMPXMedia@@PAVMMPXCHelperObserver@@PAVMProgressDialogCallback@@@Z @ 8 NONAME ; int CMPXCommonUiHelper::CreatePlaylistL(class CMPXMedia const &, class MMPXCHelperObserver *, class MProgressDialogCallback *) - ?DefaultDriveLC@CMPXCommonUiHelper@@QAEPAVHBufC16@@XZ @ 9 NONAME ; class HBufC16 * CMPXCommonUiHelper::DefaultDriveLC(void) - ?DismissWaitNoteL@CMPXCommonUiHelper@@QAEXXZ @ 10 NONAME ; void CMPXCommonUiHelper::DismissWaitNoteL(void) - ?DisplayConfirmNoteL@CMPXCommonUiHelper@@QAEXABVTDesC16@@@Z @ 11 NONAME ; void CMPXCommonUiHelper::DisplayConfirmNoteL(class TDesC16 const &) - ?DisplayConfirmNoteL@CMPXCommonUiHelper@@QAEXH@Z @ 12 NONAME ; void CMPXCommonUiHelper::DisplayConfirmNoteL(int) - ?DisplayInfoNoteL@CMPXCommonUiHelper@@QAEXABVTDesC16@@@Z @ 13 NONAME ; void CMPXCommonUiHelper::DisplayInfoNoteL(class TDesC16 const &) - ?DisplayInfoNoteL@CMPXCommonUiHelper@@QAEXH@Z @ 14 NONAME ; void CMPXCommonUiHelper::DisplayInfoNoteL(int) - ?DisplayableDurationInTextL@CMPXCommonUiHelper@@QAEPAVHBufC16@@_J@Z @ 15 NONAME ; class HBufC16 * CMPXCommonUiHelper::DisplayableDurationInTextL(long long) - ?DisplayableDurationL@CMPXCommonUiHelper@@QAEPAVHBufC16@@_JW4TMPXDuratDisplayMode@1@@Z @ 16 NONAME ; class HBufC16 * CMPXCommonUiHelper::DisplayableDurationL(long long, enum CMPXCommonUiHelper::TMPXDuratDisplayMode) - ?DoSetAsRingingToneL@CMPXCommonUiHelper@@QAEXABVCMPXMedia@@HH@Z @ 17 NONAME ; void CMPXCommonUiHelper::DoSetAsRingingToneL(class CMPXMedia const &, int, int) - ?EnableSpeedScrollL@CMPXLbxExtendedFeatures@@QAEXH@Z @ 18 NONAME ; void CMPXLbxExtendedFeatures::EnableSpeedScrollL(int) - ?ExitOptionHiddenL@CMPXCommonUiHelper@@QAEHXZ @ 19 NONAME ; int CMPXCommonUiHelper::ExitOptionHiddenL(void) - ?ExtractAlbumArtL@CMPXAlbumArtUtil@@QAEXABVCMPXMedia@@AAVMMPXAlbumArtUtilObserver@@ABVTSize@@W4TDisplayMode@@@Z @ 20 NONAME ; void CMPXAlbumArtUtil::ExtractAlbumArtL(class CMPXMedia const &, class MMPXAlbumArtUtilObserver &, class TSize const &, enum TDisplayMode) - ?FilePath@MPXTlsHelper@@SA?AV?$TBuf@$0BAA@@@XZ @ 21 NONAME ; class TBuf<256> MPXTlsHelper::FilePath(void) - ?FindPlaylistsL@CMPXCommonUiHelper@@QAEPAVCMPXMedia@@XZ @ 22 NONAME ; class CMPXMedia * CMPXCommonUiHelper::FindPlaylistsL(void) - ?GenerateTitleL@CMPXCommonUiHelper@@QAEPAVHBufC16@@W4TMPXGeneralCategory@@ABVTDesC16@@@Z @ 23 NONAME ; class HBufC16 * CMPXCommonUiHelper::GenerateTitleL(enum TMPXGeneralCategory, class TDesC16 const &) - ?HandleErrorL@CMPXCommonUiHelper@@QAEHHPBVCMPXMedia@@PAVRFile@@@Z @ 24 NONAME ; int CMPXCommonUiHelper::HandleErrorL(int, class CMPXMedia const *, class RFile *) - ?HandleLbxKeyEventL@CMPXLbxExtendedFeatures@@QAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 25 NONAME ; enum TKeyResponse CMPXLbxExtendedFeatures::HandleLbxKeyEventL(struct TKeyEvent const &, enum TEventCode) - ?HostUid@MPXTlsHelper@@SA?AVTUid@@XZ @ 26 NONAME ; class TUid MPXTlsHelper::HostUid(void) - ?InitializeL@MPXTlsHelper@@SAXXZ @ 27 NONAME ; void MPXTlsHelper::InitializeL(void) - ?IsForegroundApplication@CMPXCommonUiHelper@@QAEHH@Z @ 28 NONAME ; int CMPXCommonUiHelper::IsForegroundApplication(int) + ?IsForegroundApplication@CMPXCommonUiHelper@@QAEHH@Z @ 1 NONAME ; int CMPXCommonUiHelper::IsForegroundApplication(int) + ?AllowMove@MPXTlsHelper@@SAHXZ @ 2 NONAME ; int MPXTlsHelper::AllowMove(void) + ?IsProfileOfflineModeL@CMPXCommonUiHelper@@QAEHXZ @ 3 NONAME ; int CMPXCommonUiHelper::IsProfileOfflineModeL(void) + ?InitializeL@MPXTlsHelper@@SAXXZ @ 4 NONAME ; void MPXTlsHelper::InitializeL(void) + ?StartCopyOperationL@CMPXSaveHelper@@QAEXABVTDesC16@@0H@Z @ 5 NONAME ; void CMPXSaveHelper::StartCopyOperationL(class TDesC16 const &, class TDesC16 const &, int) + ?SetHostUidL@MPXTlsHelper@@SAXABVTUid@@@Z @ 6 NONAME ; void MPXTlsHelper::SetHostUidL(class TUid const &) + ?LaunchMode@MPXTlsHelper@@SA?AW4TMPXLaunchMode@@XZ @ 7 NONAME ; enum TMPXLaunchMode MPXTlsHelper::LaunchMode(void) + ?IsHostMessagingL@CMPXCommonUiHelper@@QAEHXZ @ 8 NONAME ; int CMPXCommonUiHelper::IsHostMessagingL(void) + ?DoSetAsRingingToneL@CMPXCommonUiHelper@@QAEXABVCMPXMedia@@HH@Z @ 9 NONAME ; void CMPXCommonUiHelper::DoSetAsRingingToneL(class CMPXMedia const &, int, int) + ?LaunchRenameDialogL@CMPXCommonUiHelper@@QAEHABVTDesC16@@AAVTDes16@@0@Z @ 10 NONAME ; int CMPXCommonUiHelper::LaunchRenameDialogL(class TDesC16 const &, class TDes16 &, class TDesC16 const &) + ?AddToSavedPlaylistL@CMPXCommonUiHelper@@QAEHABVCMPXMedia@@0PAVMMPXCHelperObserver@@PAVMProgressDialogCallback@@@Z @ 11 NONAME ; int CMPXCommonUiHelper::AddToSavedPlaylistL(class CMPXMedia const &, class CMPXMedia const &, class MMPXCHelperObserver *, class MProgressDialogCallback *) + ?Uninitialize@MPXTlsHelper@@SAXXZ @ 12 NONAME ; void MPXTlsHelper::Uninitialize(void) + ?RemoveMiddleSoftKeyLabel@CMPXCommonUiHelper@@QAEXAAVCEikButtonGroupContainer@@@Z @ 13 NONAME ; void CMPXCommonUiHelper::RemoveMiddleSoftKeyLabel(class CEikButtonGroupContainer &) + ?CreatePlaylistL@CMPXCommonUiHelper@@QAEHABVCMPXMedia@@PAVMMPXCHelperObserver@@PAVMProgressDialogCallback@@@Z @ 14 NONAME ; int CMPXCommonUiHelper::CreatePlaylistL(class CMPXMedia const &, class MMPXCHelperObserver *, class MProgressDialogCallback *) + ?SetFilePath@MPXTlsHelper@@SAXABVTDesC16@@@Z @ 15 NONAME ; void MPXTlsHelper::SetFilePath(class TDesC16 const &) + ?NeedSave@MPXTlsHelper@@SAHXZ @ 16 NONAME ; int MPXTlsHelper::NeedSave(void) + ?ExtractAlbumArtL@CMPXAlbumArtUtil@@QAEXABVCMPXMedia@@AAVMMPXAlbumArtUtilObserver@@ABVTSize@@HW4TDisplayMode@@@Z @ 17 NONAME ; void CMPXAlbumArtUtil::ExtractAlbumArtL(class CMPXMedia const &, class MMPXAlbumArtUtilObserver &, class TSize const &, int, enum TDisplayMode) + ?DefaultDriveLC@CMPXCommonUiHelper@@QAEPAVHBufC16@@XZ @ 18 NONAME ; class HBufC16 * CMPXCommonUiHelper::DefaultDriveLC(void) + ?AvailableDriveLC@CMPXCommonUiHelper@@QAEPAVHBufC16@@H@Z @ 19 NONAME ; class HBufC16 * CMPXCommonUiHelper::AvailableDriveLC(int) + ?IsHostPodcastingAppL@CMPXCommonUiHelper@@QAEHXZ @ 20 NONAME ; int CMPXCommonUiHelper::IsHostPodcastingAppL(void) + ?DisplayableDurationL@CMPXCommonUiHelper@@QAEPAVHBufC16@@_JW4TMPXDuratDisplayMode@1@@Z @ 21 NONAME ; class HBufC16 * CMPXCommonUiHelper::DisplayableDurationL(long long, enum CMPXCommonUiHelper::TMPXDuratDisplayMode) + ?CancelCollectionOperation@CMPXCommonUiHelper@@QAEXXZ @ 22 NONAME ; void CMPXCommonUiHelper::CancelCollectionOperation(void) + ?DisplayConfirmNoteL@CMPXCommonUiHelper@@QAEXABVTDesC16@@@Z @ 23 NONAME ; void CMPXCommonUiHelper::DisplayConfirmNoteL(class TDesC16 const &) + ?MMCDriveNumber@CMPXCommonUiHelper@@SAHXZ @ 24 NONAME ; int CMPXCommonUiHelper::MMCDriveNumber(void) + ?HandleErrorL@CMPXCommonUiHelper@@QAEHHPBVCMPXMedia@@PAVRFile@@@Z @ 25 NONAME ; int CMPXCommonUiHelper::HandleErrorL(int, class CMPXMedia const *, class RFile *) + ?ExitOptionHiddenL@CMPXCommonUiHelper@@QAEHXZ @ 26 NONAME ; int CMPXCommonUiHelper::ExitOptionHiddenL(void) + ?GenerateTitleL@CMPXCommonUiHelper@@QAEPAVHBufC16@@W4TMPXGeneralCategory@@ABVTDesC16@@@Z @ 27 NONAME ; class HBufC16 * CMPXCommonUiHelper::GenerateTitleL(enum TMPXGeneralCategory, class TDesC16 const &) + ?SetMiddleSoftKeyIconL@CMPXCommonUiHelper@@QAEXAAVCEikButtonGroupContainer@@PAVCFbsBitmap@@1@Z @ 28 NONAME ; void CMPXCommonUiHelper::SetMiddleSoftKeyIconL(class CEikButtonGroupContainer &, class CFbsBitmap *, class CFbsBitmap *) ?IsHostBrowserL@CMPXCommonUiHelper@@QAEHXZ @ 29 NONAME ; int CMPXCommonUiHelper::IsHostBrowserL(void) - ?IsHostMessagingBrowserL@CMPXCommonUiHelper@@QAEHXZ @ 30 NONAME ; int CMPXCommonUiHelper::IsHostMessagingBrowserL(void) - ?IsHostMessagingL@CMPXCommonUiHelper@@QAEHXZ @ 31 NONAME ; int CMPXCommonUiHelper::IsHostMessagingL(void) - ?IsHostPodcastingAppL@CMPXCommonUiHelper@@QAEHXZ @ 32 NONAME ; int CMPXCommonUiHelper::IsHostPodcastingAppL(void) - ?IsProfileOfflineModeL@CMPXCommonUiHelper@@QAEHXZ @ 33 NONAME ; int CMPXCommonUiHelper::IsProfileOfflineModeL(void) - ?LaunchMode@MPXTlsHelper@@SA?AW4TMPXLaunchMode@@XZ @ 34 NONAME ; enum TMPXLaunchMode MPXTlsHelper::LaunchMode(void) - ?LaunchRenameDialogL@CMPXCommonUiHelper@@QAEHABVTDesC16@@AAVTDes16@@0@Z @ 35 NONAME ; int CMPXCommonUiHelper::LaunchRenameDialogL(class TDesC16 const &, class TDes16 &, class TDesC16 const &) - ?MMCDriveNumber@CMPXCommonUiHelper@@SAHXZ @ 36 NONAME ; int CMPXCommonUiHelper::MMCDriveNumber(void) - ?NeedSave@MPXTlsHelper@@SAHXZ @ 37 NONAME ; int MPXTlsHelper::NeedSave(void) - ?NewL@CMPXAlbumArtUtil@@SAPAV1@XZ @ 38 NONAME ; class CMPXAlbumArtUtil * CMPXAlbumArtUtil::NewL(void) - ?NewL@CMPXCommonUiHelper@@SAPAV1@PAVMMPXCollectionUtility@@@Z @ 39 NONAME ; class CMPXCommonUiHelper * CMPXCommonUiHelper::NewL(class MMPXCollectionUtility *) - ?NewL@CMPXLbxExtendedFeatures@@SAPAV1@PAVCEikTextListBox@@H@Z @ 40 NONAME ; class CMPXLbxExtendedFeatures * CMPXLbxExtendedFeatures::NewL(class CEikTextListBox *, int) - ?NewL@CMPXSaveHelper@@SAPAV1@PAVMMPXSaveHelperObserver@@PAVMFileManObserver@@@Z @ 41 NONAME ; class CMPXSaveHelper * CMPXSaveHelper::NewL(class MMPXSaveHelperObserver *, class MFileManObserver *) - ?RemoveMiddleSoftKeyLabel@CMPXCommonUiHelper@@QAEXAAVCEikButtonGroupContainer@@@Z @ 42 NONAME ; void CMPXCommonUiHelper::RemoveMiddleSoftKeyLabel(class CEikButtonGroupContainer &) + ?StandAloneModePId@CMPXCommonUiHelper@@SA_JXZ @ 30 NONAME ; long long CMPXCommonUiHelper::StandAloneModePId(void) + ?StartCopyOperationL@CMPXSaveHelper@@QAEXAAVRFile@@ABVTDesC16@@HH@Z @ 31 NONAME ; void CMPXSaveHelper::StartCopyOperationL(class RFile &, class TDesC16 const &, int, int) + ?CancelRequest@CMPXAlbumArtUtil@@QAEXXZ @ 32 NONAME ; void CMPXAlbumArtUtil::CancelRequest(void) + ?DisplayConfirmNoteL@CMPXCommonUiHelper@@QAEXH@Z @ 33 NONAME ; void CMPXCommonUiHelper::DisplayConfirmNoteL(int) + ?UnitConversionL@CMPXCommonUiHelper@@QAEPAVHBufC16@@_JH@Z @ 34 NONAME ; class HBufC16 * CMPXCommonUiHelper::UnitConversionL(long long, int) + ?DisplayInfoNoteL@CMPXCommonUiHelper@@QAEXABVTDesC16@@@Z @ 35 NONAME ; void CMPXCommonUiHelper::DisplayInfoNoteL(class TDesC16 const &) + ?NewL@CMPXSaveHelper@@SAPAV1@PAVMMPXSaveHelperObserver@@PAVMFileManObserver@@@Z @ 36 NONAME ; class CMPXSaveHelper * CMPXSaveHelper::NewL(class MMPXSaveHelperObserver *, class MFileManObserver *) + ?NewL@CMPXCommonUiHelper@@SAPAV1@PAVMMPXCollectionUtility@@@Z @ 37 NONAME ; class CMPXCommonUiHelper * CMPXCommonUiHelper::NewL(class MMPXCollectionUtility *) + ?DisplayInfoNoteL@CMPXCommonUiHelper@@QAEXH@Z @ 38 NONAME ; void CMPXCommonUiHelper::DisplayInfoNoteL(int) + ??1CMPXAlbumArtUtil@@UAE@XZ @ 39 NONAME ; CMPXAlbumArtUtil::~CMPXAlbumArtUtil(void) + ?IsHostMessagingBrowserL@CMPXCommonUiHelper@@QAEHXZ @ 40 NONAME ; int CMPXCommonUiHelper::IsHostMessagingBrowserL(void) + ?ShowWaitNoteL@CMPXCommonUiHelper@@QAEXAAVTDesC16@@HHPAVMProgressDialogCallback@@H@Z @ 41 NONAME ; void CMPXCommonUiHelper::ShowWaitNoteL(class TDesC16 &, int, int, class MProgressDialogCallback *, int) + ?DismissWaitNoteL@CMPXCommonUiHelper@@QAEXXZ @ 42 NONAME ; void CMPXCommonUiHelper::DismissWaitNoteL(void) ?SetAllowMove@MPXTlsHelper@@SAXH@Z @ 43 NONAME ; void MPXTlsHelper::SetAllowMove(int) - ?SetFilePath@MPXTlsHelper@@SAXABVTDesC16@@@Z @ 44 NONAME ; void MPXTlsHelper::SetFilePath(class TDesC16 const &) - ?SetHostUidL@MPXTlsHelper@@SAXABVTUid@@@Z @ 45 NONAME ; void MPXTlsHelper::SetHostUidL(class TUid const &) - ?SetLaunchModeL@MPXTlsHelper@@SAXW4TMPXLaunchMode@@@Z @ 46 NONAME ; void MPXTlsHelper::SetLaunchModeL(enum TMPXLaunchMode) - ?SetMiddleSoftKeyIconL@CMPXCommonUiHelper@@QAEXAAVCEikButtonGroupContainer@@PAVCFbsBitmap@@1@Z @ 47 NONAME ; void CMPXCommonUiHelper::SetMiddleSoftKeyIconL(class CEikButtonGroupContainer &, class CFbsBitmap *, class CFbsBitmap *) + ??1CMPXSaveHelper@@UAE@XZ @ 44 NONAME ; CMPXSaveHelper::~CMPXSaveHelper(void) + ?DisplayableDurationInTextL@CMPXCommonUiHelper@@QAEPAVHBufC16@@_J@Z @ 45 NONAME ; class HBufC16 * CMPXCommonUiHelper::DisplayableDurationInTextL(long long) + ?HandleLbxKeyEventL@CMPXLbxExtendedFeatures@@QAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 46 NONAME ; enum TKeyResponse CMPXLbxExtendedFeatures::HandleLbxKeyEventL(struct TKeyEvent const &, enum TEventCode) + ?SetStandAloneModePId@CMPXCommonUiHelper@@SAH_J@Z @ 47 NONAME ; int CMPXCommonUiHelper::SetStandAloneModePId(long long) ?SetMiddleSoftKeyLabelL@CMPXCommonUiHelper@@QAEXAAVCEikButtonGroupContainer@@HH@Z @ 48 NONAME ; void CMPXCommonUiHelper::SetMiddleSoftKeyLabelL(class CEikButtonGroupContainer &, int, int) - ?SetNeedSave@MPXTlsHelper@@SAXH@Z @ 49 NONAME ; void MPXTlsHelper::SetNeedSave(int) - ?SetStandAloneModePId@CMPXCommonUiHelper@@SAH_J@Z @ 50 NONAME ; int CMPXCommonUiHelper::SetStandAloneModePId(long long) - ?ShowWaitNoteL@CMPXCommonUiHelper@@QAEXAAVTDesC16@@HHPAVMProgressDialogCallback@@H@Z @ 51 NONAME ; void CMPXCommonUiHelper::ShowWaitNoteL(class TDesC16 &, int, int, class MProgressDialogCallback *, int) - ?SpeedNaviUpdating@CMPXLbxExtendedFeatures@@QAEXH@Z @ 52 NONAME ; void CMPXLbxExtendedFeatures::SpeedNaviUpdating(int) - ?StandAloneModePId@CMPXCommonUiHelper@@SA_JXZ @ 53 NONAME ; long long CMPXCommonUiHelper::StandAloneModePId(void) - ?StartCopyOperationL@CMPXSaveHelper@@QAEXAAVRFile@@ABVTDesC16@@HH@Z @ 54 NONAME ; void CMPXSaveHelper::StartCopyOperationL(class RFile &, class TDesC16 const &, int, int) - ?StartCopyOperationL@CMPXSaveHelper@@QAEXABVTDesC16@@0H@Z @ 55 NONAME ; void CMPXSaveHelper::StartCopyOperationL(class TDesC16 const &, class TDesC16 const &, int) - ?Uninitialize@MPXTlsHelper@@SAXXZ @ 56 NONAME ; void MPXTlsHelper::Uninitialize(void) - ?UnitConversionL@CMPXCommonUiHelper@@QAEPAVHBufC16@@_JH@Z @ 57 NONAME ; class HBufC16 * CMPXCommonUiHelper::UnitConversionL(long long, int) - ?CancelCollectionOperation@CMPXCommonUiHelper@@QAEXXZ @ 58 NONAME ; void CMPXCommonUiHelper::CancelCollectionOperation(void) + ?FindPlaylistsL@CMPXCommonUiHelper@@QAEPAVCMPXMedia@@XZ @ 49 NONAME ; class CMPXMedia * CMPXCommonUiHelper::FindPlaylistsL(void) + ?SetLaunchModeL@MPXTlsHelper@@SAXW4TMPXLaunchMode@@@Z @ 50 NONAME ; void MPXTlsHelper::SetLaunchModeL(enum TMPXLaunchMode) + ?NewL@CMPXLbxExtendedFeatures@@SAPAV1@PAVCEikTextListBox@@H@Z @ 51 NONAME ; class CMPXLbxExtendedFeatures * CMPXLbxExtendedFeatures::NewL(class CEikTextListBox *, int) + ?EnableSpeedScrollL@CMPXLbxExtendedFeatures@@QAEXH@Z @ 52 NONAME ; void CMPXLbxExtendedFeatures::EnableSpeedScrollL(int) + ?FilePath@MPXTlsHelper@@SA?AV?$TBuf@$0BAA@@@XZ @ 53 NONAME ; class TBuf<256> MPXTlsHelper::FilePath(void) + ?HostUid@MPXTlsHelper@@SA?AVTUid@@XZ @ 54 NONAME ; class TUid MPXTlsHelper::HostUid(void) + ?NewL@CMPXAlbumArtUtil@@SAPAV1@XZ @ 55 NONAME ; class CMPXAlbumArtUtil * CMPXAlbumArtUtil::NewL(void) + ?SetNeedSave@MPXTlsHelper@@SAXH@Z @ 56 NONAME ; void MPXTlsHelper::SetNeedSave(int) + ??1CMPXLbxExtendedFeatures@@UAE@XZ @ 57 NONAME ; CMPXLbxExtendedFeatures::~CMPXLbxExtendedFeatures(void) + ?SpeedNaviUpdating@CMPXLbxExtendedFeatures@@QAEXH@Z @ 58 NONAME ; void CMPXLbxExtendedFeatures::SpeedNaviUpdating(int) diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/commonui/eabi/mpxcommonuiU.DEF --- a/mpxmusicplayer/commonui/eabi/mpxcommonuiU.DEF Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/commonui/eabi/mpxcommonuiU.DEF Tue May 11 16:10:56 2010 +0300 @@ -18,7 +18,7 @@ _ZN14CMPXSaveHelperD1Ev @ 17 NONAME _ZN14CMPXSaveHelperD2Ev @ 18 NONAME _ZN16CMPXAlbumArtUtil13CancelRequestEv @ 19 NONAME - _ZN16CMPXAlbumArtUtil16ExtractAlbumArtLERK9CMPXMediaR24MMPXAlbumArtUtilObserverRK5TSize12TDisplayMode @ 20 NONAME + _ZN16CMPXAlbumArtUtil16ExtractAlbumArtLERK9CMPXMediaR24MMPXAlbumArtUtilObserverRK5TSizei12TDisplayMode @ 20 NONAME _ZN16CMPXAlbumArtUtil4NewLEv @ 21 NONAME _ZN16CMPXAlbumArtUtilD0Ev @ 22 NONAME _ZN16CMPXAlbumArtUtilD1Ev @ 23 NONAME @@ -53,18 +53,18 @@ _ZN18CMPXCommonUiHelper23IsForegroundApplicationEi @ 52 NONAME _ZN18CMPXCommonUiHelper23IsHostMessagingBrowserLEv @ 53 NONAME _ZN18CMPXCommonUiHelper24RemoveMiddleSoftKeyLabelER24CEikButtonGroupContainer @ 54 NONAME - _ZN18CMPXCommonUiHelper26DisplayableDurationInTextLEx @ 55 NONAME - _ZN18CMPXCommonUiHelper4NewLEP21MMPXCollectionUtility @ 56 NONAME - _ZN23CMPXLbxExtendedFeatures17SpeedNaviUpdatingEi @ 57 NONAME - _ZN23CMPXLbxExtendedFeatures18EnableSpeedScrollLEi @ 58 NONAME - _ZN23CMPXLbxExtendedFeatures18HandleLbxKeyEventLERK9TKeyEvent10TEventCode @ 59 NONAME - _ZN23CMPXLbxExtendedFeatures4NewLEP15CEikTextListBoxi @ 60 NONAME - _ZN23CMPXLbxExtendedFeaturesD0Ev @ 61 NONAME - _ZN23CMPXLbxExtendedFeaturesD1Ev @ 62 NONAME - _ZN23CMPXLbxExtendedFeaturesD2Ev @ 63 NONAME - _ZTI13CMPXImageUtil @ 64 NONAME ; ## - _ZTI16CMPXAlbumArtUtil @ 65 NONAME ; ## - _ZTV13CMPXImageUtil @ 66 NONAME ; ## - _ZTV16CMPXAlbumArtUtil @ 67 NONAME ; ## - _ZN18CMPXCommonUiHelper25CancelCollectionOperationEv @ 68 NONAME + _ZN18CMPXCommonUiHelper25CancelCollectionOperationEv @ 55 NONAME + _ZN18CMPXCommonUiHelper26DisplayableDurationInTextLEx @ 56 NONAME + _ZN18CMPXCommonUiHelper4NewLEP21MMPXCollectionUtility @ 57 NONAME + _ZN23CMPXLbxExtendedFeatures17SpeedNaviUpdatingEi @ 58 NONAME + _ZN23CMPXLbxExtendedFeatures18EnableSpeedScrollLEi @ 59 NONAME + _ZN23CMPXLbxExtendedFeatures18HandleLbxKeyEventLERK9TKeyEvent10TEventCode @ 60 NONAME + _ZN23CMPXLbxExtendedFeatures4NewLEP15CEikTextListBoxi @ 61 NONAME + _ZN23CMPXLbxExtendedFeaturesD0Ev @ 62 NONAME + _ZN23CMPXLbxExtendedFeaturesD1Ev @ 63 NONAME + _ZN23CMPXLbxExtendedFeaturesD2Ev @ 64 NONAME + _ZTI13CMPXImageUtil @ 65 NONAME + _ZTI16CMPXAlbumArtUtil @ 66 NONAME + _ZTV13CMPXImageUtil @ 67 NONAME + _ZTV16CMPXAlbumArtUtil @ 68 NONAME diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/commonui/loc/mpxcommonui.loc --- a/mpxmusicplayer/commonui/loc/mpxcommonui.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/commonui/loc/mpxcommonui.loc Tue May 11 16:10:56 2010 +0300 @@ -162,20 +162,20 @@ // *** Playlist *** // d:Options menu item for adding to a playlist. -// l:list_single_pane_t1_cp2/opt3 -// r:3.1 +// l:heading_pane_t1 +// r:5.2 // #define qtn_mus_options_add_to_pl "Add to a playlist" // d:Options menu item for adding to a new playlist. -// l:list_single_popup_submenu_pane_t1 -// r:3.1 +// l:list_single_pane_t1_cp2 +// r:5.2 // #define qtn_nmp_sub_add_to_playlist_new "New playlist" // d:Options menu item for adding to a saved playlist. -// l:list_single_popup_submenu_pane_t1 -// r:3.1 +// l:list_single_pane_t1_cp2 +// r:5.2 // #define qtn_nmp_sub_add_to_playlist_saved "Saved playlist" diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/commonui/src/mpxalbumartutil.cpp --- a/mpxmusicplayer/commonui/src/mpxalbumartutil.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/commonui/src/mpxalbumartutil.cpp Tue May 11 16:10:56 2010 +0300 @@ -29,17 +29,9 @@ #include "mpxalbumartutil.h" #include #include -#include - -#define THUMBNAIL_CENREP_UID 0x102830B0 - -const TUint32 KSizeAudioGridWidth = 0x12; -const TUint32 KSizeAudioGridHeight = 0x13; -const TUint32 KSizeAudioFullscreenWidth = 0x16; -const TUint32 KSizeAudioFullscreenHeight = 0x17; - _LIT( KMPXAlbumMimeType, "audio/mpeg3" ); + // ============================== MEMBER FUNCTIONS ============================ // ---------------------------------------------------------------------------- @@ -90,25 +82,10 @@ // void CMPXAlbumArtUtil::ConstructL() { - MPX_FUNC("CMPXAlbumArtUtil::ConstructL()"); - iThumbnailManager = CThumbnailManager::NewL( *this ); - iThumbnailManager->SetFlagsL( CThumbnailManager::EDefaultFlags ); - iThumbnailManager->SetQualityPreferenceL( CThumbnailManager::EOptimizeForPerformance ); - //cenrep - CRepository* repository; - repository = CRepository::NewL( TUid::Uid(THUMBNAIL_CENREP_UID)); - - TInt xSize( 0 ); - TInt ySize( 0 ); - User::LeaveIfError( repository->Get( KSizeAudioGridWidth, xSize )); - User::LeaveIfError( repository->Get( KSizeAudioGridHeight, ySize )); - iGridViewImageSize.SetSize(xSize,ySize); - - User::LeaveIfError( repository->Get( KSizeAudioFullscreenWidth, xSize )); - User::LeaveIfError( repository->Get( KSizeAudioFullscreenHeight, ySize )); - iFullScreenImageSize.SetSize(xSize,ySize); - delete repository; - repository = NULL; + MPX_FUNC("CMPXAlbumArtUtil::ConstructL()"); + iThumbnailManager = CThumbnailManager::NewL( *this ); + iThumbnailManager->SetFlagsL( CThumbnailManager::EDefaultFlags ); + iThumbnailManager->SetQualityPreferenceL( CThumbnailManager::EOptimizeForPerformance ); } // ---------------------------------------------------------------------------- @@ -118,6 +95,7 @@ EXPORT_C void CMPXAlbumArtUtil::ExtractAlbumArtL(const CMPXMedia& aMedia, MMPXAlbumArtUtilObserver& aObs, const TSize& aSize, + TBool aLargestFromCache, TDisplayMode aDisplayMode /*= EColor64K*/) { MPX_DEBUG1("CMPXAlbumArtUtil::ExtractAlbumArtL(): Entering"); @@ -150,18 +128,16 @@ aMedia.IsSupported( KMPXMediaMusicAlbumArtFileName )) { iFilename = aMedia.ValueText( KMPXMediaMusicAlbumArtFileName ).AllocL(); - if(aSize == iFullScreenImageSize) - { + + if ( aLargestFromCache ) + { iThumbnailManager->SetThumbnailSizeL(EAudioFullScreenThumbnailSize); - } - else if(aSize == iGridViewImageSize) - { - iThumbnailManager->SetThumbnailSizeL(EAudioGridThumbnailSize); - } - else - { + } + else + { iThumbnailManager->SetThumbnailSizeL(aSize); - } + } + ExtractThumbnailL(&aMedia); } else diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/mediakeyhandler/data/mpxmediakeyhandler.rss --- a/mpxmusicplayer/mediakeyhandler/data/mpxmediakeyhandler.rss Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/mediakeyhandler/data/mpxmediakeyhandler.rss Tue May 11 16:10:56 2010 +0300 @@ -40,6 +40,17 @@ // RESOURCE DEFINITIONS // ----------------------------------------------------------------------------- +// r_mpx_avsrc_name_text +// AV source name shown in AVRCP 1.4 devices. +// ----------------------------------------------------------------------------- +// +RESOURCE TBUF r_mpx_avsrc_name_text + { + buf = qtn_svk_title_music_player; + } + + +// ----------------------------------------------------------------------------- // r_mpx_volume_popup_text // Text shown in volume popup dialog. // ----------------------------------------------------------------------------- diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/mediakeyhandler/group/mpxmediakeyhandler.mmp --- a/mpxmusicplayer/mediakeyhandler/group/mpxmediakeyhandler.mmp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/mediakeyhandler/group/mpxmediakeyhandler.mmp Tue May 11 16:10:56 2010 +0300 @@ -73,6 +73,7 @@ LIBRARY remconinterfacebase.lib LIBRARY mpxplaybackutility.lib LIBRARY mpxcommon.lib +LIBRARY charconv.lib // Unicode character conversions #ifdef IAD_INCLUDE_UPNP LIBRARY upnpcommand.lib #endif diff -r a1247965635c -r 70a8526f03f2 mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp --- a/mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp Tue May 11 16:10:56 2010 +0300 @@ -27,6 +27,7 @@ #include #include #include +#include #ifdef UPNP_INCLUDED #include @@ -68,6 +69,19 @@ const TInt KTenStepsVolume = 10; const TInt KTwentyStepsVolume = 20; +const TRemConCoreApiOperationId KSupportedCoreFeatures[] = { + ERemConCoreApiVolumeUp, + ERemConCoreApiVolumeDown, + ERemConCoreApiPlay, + ERemConCoreApiStop, + ERemConCoreApiPause, + ERemConCoreApiRewind, + ERemConCoreApiFastForward, + ERemConCoreApiForward, + ERemConCoreApiBackward, + ERemConCoreApiPausePlayFunction +}; + _LIT( KMPXMediaKeyHandlerRscPath, "mpxmediakeyhandler.rsc" ); @@ -105,10 +119,24 @@ // Register to remote control framework iInterfaceSelector = CRemConInterfaceSelector::NewL(); - iCoreTarget = CRemConCoreApiTarget::NewL( *iInterfaceSelector, *this ); + + // For AVRCP 1.4 support, pass the core features to the target API. + TInt entrySize = sizeof( KSupportedCoreFeatures[0] ); + TRemConCoreApiOperationId* entries = (TRemConCoreApiOperationId*) &KSupportedCoreFeatures[0]; + TInt count = sizeof( KSupportedCoreFeatures ) / entrySize; + RArray coreFeatures( entrySize, entries, count ); + iCoreTarget = CRemConCoreApiTarget::NewL( *iInterfaceSelector, *this, coreFeatures ); + // For handling AVRCP 1.3 metadata iMetaDataHandler = MMPXMetaDataHandler::NewL(*iInterfaceSelector); - iInterfaceSelector->OpenTargetL(); + + // For AVRCP 1.4 support, make the player named. + HBufC* avsrcname = StringLoader::LoadLC( R_MPX_AVSRC_NAME_TEXT ); + HBufC8* avsrcname8 = CnvUtfConverter::ConvertFromUnicodeToUtf8L( avsrcname->Des() ); + CleanupStack::PushL( avsrcname8 ); + iInterfaceSelector->OpenTargetL(ERemConAudioPlayer, ERemConNoSubType, *avsrcname8); + CleanupStack::PopAndDestroy( avsrcname8 ); + CleanupStack::PopAndDestroy( avsrcname ); iResponseHandler = CMPXRemConKeyResponse::NewL( *iCoreTarget ); // Timer for implementing repeat diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbalbum.h --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbalbum.h Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbalbum.h Tue May 11 16:10:56 2010 +0300 @@ -31,6 +31,13 @@ public: virtual TInt HandleIsUnknownArtistL(TUint32 aId) = 0; virtual TUint32 HandleArtistForAlbumL( const TUint32 aId ) = 0; + /** + * HandleAlbumartForAlbumL. + * @param aId, The album ID. + * @param aArt, The albumart uri. + * @returns alternative albumart retrieved in the specified Album. + */ + virtual HBufC* HandleAlbumartForAlbumL( const TUint32 aId, TPtrC aArt ) = 0; }; /** * Responsible for managing all music databases @@ -95,42 +102,43 @@ * category was deleted * @param aItemExist Out parameter, ETrue if the category is not deleted after the delete, * EFalse otherwise - * @param aArtist: The ID of the artist + * @param aArtist: The ID of the artist + * @param aArt: The albumart uri */ void DecrementSongsForCategoryL(TUint32 aId, TInt aDriveId, - CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, const TUint32 aArtist); + CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, const TUint32 aArtist, const TDesC& aArt ); - /** - * Gets the details for all category items. - * @param aAttrs attributes to be returned - * @param aMediaArray returns the requested attributes for all items - */ - void GetAllCategoryItemsL(const TArray& aAttrs, - CMPXMediaArray& aMediaArray); + /** + * Gets the details for all category items. + * @param aAttrs attributes to be returned + * @param aMediaArray returns the requested attributes for all items + */ + void GetAllCategoryItemsL(const TArray& aAttrs, + CMPXMediaArray& aMediaArray); - /** - * Update a category item. - * @param aId: The ID of the category to update - * @param aMedia: The media data - * @param aDriveId: The Drive Id the name (category) belongs - * @param aItemChangedMessages: if valid on return contains a updated message if the + /** + * Update a category item. + * @param aId: The ID of the category to update + * @param aMedia: The media data + * @param aDriveId: The Drive Id the name (category) belongs + * @param aItemChangedMessages: if valid on return contains a updated message if the * category was updated - */ - void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages); + */ + void UpdateItemL(TUint32 aId, const CMPXMedia& aMedia, TInt aDriveId, CMPXMessageArray* aItemChangedMessages); - public: - /** - * Get albums count for a specified artist - * @param aId: The ID of the artist - */ - TInt GetAlbumsCountForArtistL(TUint32 aArtistId); + public: + /** + * Get albums count for a specified artist + * @param aId: The ID of the artist + */ + TInt GetAlbumsCountForArtistL(TUint32 aArtistId); - /** - * Get songs count for a specified album and a specified artist - * @param aArtistId: The ID of the artist - * @param aAlbumId: The ID of the album - */ - TInt GetSongsCountInAlbumMatchingArtistL(TUint32 aArtistId, TUint32 aAlbumId); + /** + * Get songs count for a specified album and a specified artist + * @param aArtistId: The ID of the artist + * @param aAlbumId: The ID of the album + */ + TInt GetSongsCountInAlbumMatchingArtistL(TUint32 aArtistId, TUint32 aAlbumId); private: /** @@ -149,13 +157,20 @@ * @param aValues values of each field of Album table * @return a string containing the selection criteria. The ownership is passed to the caller. */ - void GenerateAlbumFieldsValuesL(const CMPXMedia& aMedia, - CDesCArray& aFields, CDesCArray& aValues); + void GenerateAlbumFieldsValuesL(const CMPXMedia& aMedia, + CDesCArray& aFields, CDesCArray& aValues); - TBool IsUnknownArtistL(TUint32 aId); + TBool IsUnknownArtistL(TUint32 aId); - TUint32 ArtistForAlbumL(const TUint32 aId); + TUint32 ArtistForAlbumL(const TUint32 aId); + /** + * Get the Albumart of song which belongs to the specified Album. + * @param aId The ID of the album + * @param aArt albumart with the song is deleted. + * @returns alternative albumart retrieved in the specified Album. + */ + HBufC* AlbumartForAlbumL(const TUint32 aId, TPtrC aArt); private: // from MMPXTable diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbhandler.h Tue May 11 16:10:56 2010 +0300 @@ -1082,8 +1082,16 @@ /** * @see MMPXDbAlbumObserver */ - virtual TBool HandleIsUnknownArtistL(TUint32 aArtistId); - virtual TUint32 HandleArtistForAlbumL(const TUint32 aAlbumId); + virtual TBool HandleIsUnknownArtistL(TUint32 aArtistId); + virtual TUint32 HandleArtistForAlbumL(const TUint32 aAlbumId); + + /** + * Get the Albumart of song which belongs to the specified Album. + * @param aId, The Album ID. + * @param aArt, the AlbumArt uri. + * @returns alternative albumart retrieved in the specified Album. + */ + virtual HBufC* HandleAlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt); private: // From MMPXDbPlaylistObserver /** diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbmusic.h Tue May 11 16:10:56 2010 +0300 @@ -129,7 +129,7 @@ */ virtual HBufC* HandleGetAlbumNameFromIdL( TUint32 aId ) = 0; #endif // ABSTRACTAUDIOALBUM_INCLUDED - }; + }; /** * Responsible for managing the Music table @@ -245,10 +245,11 @@ * @param aComposerId returns the artist ID * @param aAbstractAlbumId returns the AbstractAlbum ID * @param aDriveId returns the song drive + * @param aArt returns the albumart uri * @return song URI. The ownership is transferred. */ HBufC* GetSongInfoL(TUint32 aSongId, TUint32& aArtistId, TUint32& aAlbumId, - TUint32& aGenreId, TUint32& aComposerId, TUint32& aAbstractAlbumId, TInt& aDriveId); + TUint32& aGenreId, TUint32& aComposerId, TUint32& aAbstractAlbumId, TInt& aDriveId, HBufC*& aArt); #else /** * Get the drive and category IDs for a specified song @@ -258,10 +259,11 @@ * @param aGenreId returns the artist ID * @param aComposerId returns the artist ID * @param aDriveId returns the song drive + * @param aArt returns the albumart uri * @return song URI. The ownership is transferred. */ HBufC* GetSongInfoL(TUint32 aSongId, TUint32& aArtistId, TUint32& aAlbumId, - TUint32& aGenreId, TUint32& aComposerId, TInt& aDriveId); + TUint32& aGenreId, TUint32& aComposerId, TInt& aDriveId, HBufC*& aArt); #endif // ABSTRACTAUDIOALBUM_INCLUDED /** * Get the song Id, title, URI, and general flags from the given song Id and/or URI @@ -527,6 +529,15 @@ * @param aId, the ID of Album */ TUint32 CMPXDbMusic::ArtistForAlbumL(const TUint32 aId); + + /** + * Get the Albumart of song which belongs to the specified Album + * @param aId, the ID of Album + * @param aArt, AlbumArt uri + * @returns alternative albumart retrieved in the specified Album. + */ + HBufC* AlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt); + /* * Check the integrity of the music basic table diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/inc/mpxdbpluginqueries.h Tue May 11 16:10:56 2010 +0300 @@ -222,11 +222,14 @@ // Select songs information from music, playlistsongs and playlistsonginfo via playlistid order by playlistsongs's ordinal _LIT(KQueryMusicGetAllSongsbyPl,"select mu.UniqueId,mu.DbFlag,mu.VolumeId,mu.Title,mu.Artist,mu.Art,0,mu.Location,pl.UniqueId as PlUId, pl.ordinal from :dbname.music as mu,:pldbname.playlistsongs as pl where mu.Deleted=0 AND mu.uniqueid = pl.songid and pl.playlistid =%u ORDER BY 10"); +#ifdef ABSTRACTAUDIOALBUM_INCLUDED +_LIT(KQueryMusicGetAllSongsInfobyPl,"SELECT Music.*,Artist.Name,Album.Name,Genre.Name,Composer.Name,pl.UniqueId as PlUId,pl.ordinal FROM :dbname.Music,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer,:pldbname.playlistsongs as pl WHERE Music.Deleted=0 AND Music.Album=Album.UniqueId AND Music.Artist=Artist.UniqueId AND Music.Genre=Genre.UniqueId AND Music.Composer=Composer.UniqueId AND Music.UniqueId=pl .songid and pl .PlaylistId=%u ORDER BY 40"); +#else _LIT(KQueryMusicGetAllSongsInfobyPl,"SELECT Music.*,Artist.Name,Album.Name,Genre.Name,Composer.Name,pl.UniqueId as PlUId,pl.ordinal FROM :dbname.Music,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer,:pldbname.playlistsongs as pl WHERE Music.Deleted=0 AND Music.Album=Album.UniqueId AND Music.Artist=Artist.UniqueId AND Music.Genre=Genre.UniqueId AND Music.Composer=Composer.UniqueId AND Music.UniqueId=pl .songid and pl .PlaylistId=%u ORDER BY 37"); - +#endif _LIT(KQuerySongsInArtistAlbum, "SELECT count(*) FROM :dbname.Music WHERE Deleted=0 AND Artist=%u AND Album=%u"); _LIT(KQueryMusicGetArtistForAlbum, "SELECT Artist FROM :dbname.Music,:dbname.Artist WHERE Music.Deleted=0 AND Music.Artist=Artist.UniqueId AND Music.Album=%u"); - +_LIT(KQueryMusicGetAlbumartForAlbum, "SELECT Art FROM :dbname.Music WHERE Music.Deleted=0 AND Music.Album=%u"); // == Category table queries ================================================== // _LIT(KCategoryTablePlaceholder, "##table##"); diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/loc/mpxcollectiondbhg.loc --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/loc/mpxcollectiondbhg.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/loc/mpxcollectiondbhg.loc Tue May 11 16:10:56 2010 +0300 @@ -76,14 +76,14 @@ #define qtn_nmp_all_by "All" // d:Title for first item in music library menu. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_all_tracks "All songs" // d:Title for second item in music library menu. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_pls "Playlists" @@ -105,8 +105,8 @@ #define qtn_mus_title_album "Album" // d:Title for fifth item in music library menu. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_genres "Genres" @@ -117,8 +117,8 @@ #define qtn_mus_title_composers "Composers" // d:Title for Most Played item in the playlists menu -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_most_played "Most played" @@ -129,8 +129,8 @@ #define qtn_mus_pl_most_played "Most played" // d:Title for Recently Played item in the playlists menu -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_recently_played "Recently played" @@ -141,8 +141,8 @@ #define qtn_mus_pl_recently_played "Recently played" // d:Title for Recently Added item in the playlists menu -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_recently_downloaded "Recently added" @@ -179,7 +179,7 @@ #define qtn_mus_title_music_menu "Music Menu" // d:Title for Artists & Albums view in portrait mode -// l:title_pane_t2/opt9 +// l:title_pane_t1/opt3 // r:5.2 // #define qtn_mus_title_artists_and_albums "Artists & Albums" @@ -203,7 +203,7 @@ #define qtn_mus_music_one_song_duration "1 song - %U" // d:Title for Songs view -// l:title_pane_t2/opt9 +// l:title_pane_t1/opt3 // r:5.2 // #define qtn_mus_title_tracks "Songs" diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbabstractalbum.cpp Tue May 11 16:10:56 2010 +0300 @@ -323,13 +323,19 @@ RSqlStatement recordset(GetCategoryRecordL(aId)); CleanupClosePushL(recordset); - - if (recordset.Next() != KSqlAtRow) + HBufC* uri = NULL; + if (recordset.Next() == KSqlAtRow) + { + uri = MPXDbCommonUtil::GetColumnTextL(recordset, EAbstractAlbumUri).AllocL(); + } + else { - User::LeaveIfError(KErrNotFound); + //entry is deleted due to garbage collection + MPX_DEBUG1("CMPXDbAbstractAlbum::GetUriL, no uri, entry is deleted due to garbage collection"); + TPtrC nullUri(KNullDesC); + uri = nullUri.AllocL(); } - HBufC* uri = MPXDbCommonUtil::GetColumnTextL(recordset, EAbstractAlbumUri).AllocL(); - CleanupStack::PopAndDestroy(&recordset); + CleanupStack::PopAndDestroy(&recordset); return uri; } diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbalbum.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbalbum.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbalbum.cpp Tue May 11 16:10:56 2010 +0300 @@ -33,6 +33,9 @@ #include "mpxdbalbum.h" // CONSTANTS +#ifdef ABSTRACTAUDIOALBUM_INCLUDED +_LIT( KAbstractAlbumExt, ".alb" ); +#endif // ABSTRACTAUDIOALBUM_INCLUDED // ============================ MEMBER FUNCTIONS ============================== @@ -202,7 +205,8 @@ TInt aDriveId, CMPXMessageArray* aItemChangedMessages, TBool& aItemExist, - const TUint32 aArtist) + const TUint32 aArtist, + const TDesC& aArt) { MPX_FUNC("CMPXDbAlbum::DecrementSongsForCategoryL"); @@ -237,8 +241,7 @@ } TUint32 artistId = recordset.ColumnInt64(EAlbumArtist); - - CleanupStack::PopAndDestroy(&recordset); + TBool itemModified = EFalse; // the current artist is equal to deleted song's artist if ( artistId == aArtist ) @@ -252,16 +255,63 @@ iDbManager.ExecuteQueryL(aDriveId, KQueryAlbumUpdate, setStr, aId); CleanupStack::PopAndDestroy(setStr); - - if (aItemChangedMessages) - { - // add the item changed message - MPXDbCommonUtil::AddItemAlbumChangedMessageL(*aItemChangedMessages, aId, EMPXItemModified, - EMPXAlbum, KDBPluginUid, ETrue, 0 ); - } + itemModified = ETrue; } } +#ifdef ABSTRACTAUDIOALBUM_INCLUDED + TBool nonEmbeddedArt = EFalse; + if (aArt.Length()>0) + { + TParsePtrC parse(aArt); + TPtrC ext(parse.Ext()); + //set flag to false, so .alb will not overwrite art field in album, artist table + // when song with embedded art + if (ext.CompareF(KAbstractAlbumExt)== 0) + { + nonEmbeddedArt = ETrue; + } + } + if (!nonEmbeddedArt) + { +#endif // ABSTRACTAUDIOALBUM_INCLUDED + TPtrC art(MPXDbCommonUtil::GetColumnTextL(recordset, EAlbumArt)); + // the current art is equal to deleted song's art + if(aArt.Length()>0 && art.Length()>0 && aArt.CompareF(art) ==0 ) + { + MPX_DEBUG2("AlbumArt of the Song to be deleted is [%S]", &aArt); + + //need to get alternative art in the same album to display + HBufC* newArt = AlbumartForAlbumL(aId, aArt); + CleanupStack::PushL(newArt); + + //update Album table only if alternative albumart found + if (newArt) + { + MPX_DEBUG1("CMPXDbAlbum::DecrementSongsForCategoryL, get newArt"); + HBufC* artReplaceSingleQuote = MPXDbCommonUtil::ProcessSingleQuotesLC( *newArt ); + _LIT( KFormatArt, "Art=\'%S\'" ); + HBufC* setStr = HBufC::NewLC(256); + setStr->Des().Format( KFormatArt, artReplaceSingleQuote ); + + iDbManager.ExecuteQueryL(aDriveId, KQueryAlbumUpdate, setStr, aId); + CleanupStack::PopAndDestroy(setStr); + CleanupStack::PopAndDestroy(artReplaceSingleQuote); + itemModified = ETrue; + } + CleanupStack::PopAndDestroy(newArt); + } +#ifdef ABSTRACTAUDIOALBUM_INCLUDED + } +#endif // ABSTRACTAUDIOALBUM_INCLUDED + if (aItemChangedMessages && itemModified) + { + // add the item changed message + MPXDbCommonUtil::AddItemAlbumChangedMessageL(*aItemChangedMessages, aId, EMPXItemModified, + EMPXAlbum, KDBPluginUid, ETrue, 0 ); + } + CleanupStack::PopAndDestroy(&recordset); + // decrement the number of songs for the category query = PreProcessStringLC(KQueryCategoryDecrementSongCount); iDbManager.ExecuteQueryL(aDriveId, *query, aId); @@ -510,6 +560,15 @@ } // ---------------------------------------------------------------------------- +// CMPXDbAlbum::AlbumartForAlbumL +// ---------------------------------------------------------------------------- +// +HBufC* CMPXDbAlbum::AlbumartForAlbumL(const TUint32 aId, TPtrC aArt) + { + return iObserver.HandleAlbumartForAlbumL(aId, aArt); + } + +// ---------------------------------------------------------------------------- // CMPXDbAlbum::CreateTableL // ---------------------------------------------------------------------------- // diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp Tue May 11 16:10:56 2010 +0300 @@ -2114,6 +2114,7 @@ TUint32 albumID(0); TUint32 genreID(0); TUint32 composerID(0); + HBufC* art(NULL); #ifdef ABSTRACTAUDIOALBUM_INCLUDED TUint32 abstractAlbumID(0); #endif // ABSTRACTAUDIOALBUM_INCLUDED @@ -2121,11 +2122,12 @@ // Get information from the Music table first #ifdef ABSTRACTAUDIOALBUM_INCLUDED - HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, abstractAlbumID, drive); + HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, abstractAlbumID, drive, art); #else - HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, drive); + HBufC* uri = iDbMusic->GetSongInfoL(aSongId, artistID, albumID, genreID, composerID, drive, art); #endif // ABSTRACTAUDIOALBUM_INCLUDED + CleanupStack::PushL(art); // add the URI to the return array CleanupStack::PushL(uri); aUriArray.AppendL(*uri); @@ -2134,9 +2136,10 @@ // Update the category records TBool categoryExist( EFalse ); iDbArtist->DecrementSongsForCategoryL(artistID, drive, &aItemChangedMessages, categoryExist); - iDbAlbum->DecrementSongsForCategoryL(albumID, drive, &aItemChangedMessages, categoryExist, artistID); + iDbAlbum->DecrementSongsForCategoryL(albumID, drive, &aItemChangedMessages, categoryExist, artistID, *art); iDbGenre->DecrementSongsForCategoryL(genreID, drive, &aItemChangedMessages, categoryExist); iDbComposer->DecrementSongsForCategoryL(composerID, drive, &aItemChangedMessages, categoryExist); + CleanupStack::PopAndDestroy(art); #ifdef ABSTRACTAUDIOALBUM_INCLUDED if (abstractAlbumID) { @@ -3355,10 +3358,23 @@ return iDbArtist->IsUnknownArtistL(aArtistId); } +// --------------------------------------------------------------------------- +// CMPXDbHandler::HandleArtistForAlbumL +// --------------------------------------------------------------------------- +// TUint32 CMPXDbHandler::HandleArtistForAlbumL(const TUint32 aAlbumId) { return iDbMusic->ArtistForAlbumL(aAlbumId); } + +// --------------------------------------------------------------------------- +// CMPXDbHandler::HandleAlbumartForAlbumL +// --------------------------------------------------------------------------- +// +HBufC* CMPXDbHandler::HandleAlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt) + { + return iDbMusic->AlbumartForAlbumL(aAlbumId, aArt); + } #ifdef ABSTRACTAUDIOALBUM_INCLUDED // ---------------------------------------------------------------------------------------------------------- // CMPXDbHandler::HandleGetAlbumNameForSongL diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbmusic.cpp Tue May 11 16:10:56 2010 +0300 @@ -448,7 +448,8 @@ #ifdef ABSTRACTAUDIOALBUM_INCLUDED TUint32& aAbstractAlbumId, #endif // ABSTRACTAUDIOALBUM_INCLUDED - TInt& aDriveId) + TInt& aDriveId, + HBufC*& aArt) { MPX_FUNC("CMPXDbMusic::GetSongInfoL"); @@ -469,6 +470,7 @@ #ifdef ABSTRACTAUDIOALBUM_INCLUDED aAbstractAlbumId = recordset.ColumnInt64(EMusicAbstractAlbum); #endif // ABSTRACTAUDIOALBUM_INCLUDED + aArt = MPXDbCommonUtil::GetColumnTextL(recordset, EMusicArt).AllocL(); HBufC* uri = ConstructUriL(recordset); CleanupStack::PopAndDestroy(&recordset); @@ -1063,6 +1065,31 @@ } // ---------------------------------------------------------------------------- +// CMPXDbMusic::AlbumartForAlbumL +// ---------------------------------------------------------------------------- +// +HBufC* CMPXDbMusic::AlbumartForAlbumL(const TUint32 aAlbumId, TPtrC aArt) + { + MPX_FUNC("CMPXDbMusic::AlbumartForAlbumL"); + RSqlStatement recordset(iDbManager.ExecuteSelectQueryL(KQueryMusicGetAlbumartForAlbum, aAlbumId)); + HBufC* albumart(NULL); + + CleanupClosePushL(recordset); + TInt err(KErrNone); + while ((err = recordset.Next()) == KSqlAtRow) + { + TPtrC art(MPXDbCommonUtil::GetColumnTextL(recordset, KMPXTableDefaultIndex)); + if (art.Length()>0 && art.Compare(KNullDesC)!=0 && art.CompareF(aArt)!=0 ) + { + albumart = art.AllocL(); + break; + } + } + + CleanupStack::PopAndDestroy(&recordset); + return albumart; + } +// ---------------------------------------------------------------------------- // CMPXDbMusic::SongExistsL // ---------------------------------------------------------------------------- // @@ -1150,11 +1177,19 @@ MPX_DEBUG1(" !aMedia.IsSupported(KMPXMediaGeneralId)"); TUint32 songId(aMusicTable.ColumnInt64(EMusicUniqueId)); TInt columnCount(aMusicTable.ColumnCount()); +#ifdef ABSTRACTAUDIOALBUM_INCLUDED + if(columnCount == 40 && aMusicTable.ColumnIndex(_L("PlUId"))==38) + { + TUint32 pListUId(aMusicTable.ColumnInt64(38)); + aMedia.SetTObjectValueL(KMPXMediaGeneralId, TMPXItemId(pListUId, songId)); + } +#else if(columnCount == 37 && aMusicTable.ColumnIndex(_L("PlUId"))==35) { TUint32 pListUId(aMusicTable.ColumnInt64(35)); aMedia.SetTObjectValueL(KMPXMediaGeneralId, TMPXItemId(pListUId, songId)); } +#endif else { aMedia.SetTObjectValueL(KMPXMediaGeneralId, songId); diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/loc/mpxcollectiondb.loc --- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/loc/mpxcollectiondb.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/loc/mpxcollectiondb.loc Tue May 11 16:10:56 2010 +0300 @@ -77,14 +77,14 @@ #define qtn_nmp_all_by "All" // d:Title for first item in music library menu. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_all_tracks "All songs" // d:Title for second item in music library menu. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_pls "Playlists" @@ -106,8 +106,8 @@ #define qtn_mus_title_album "Album" // d:Title for fifth item in music library menu. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_genres "Genres" diff -r a1247965635c -r 70a8526f03f2 mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp --- a/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp Tue May 11 16:10:56 2010 +0300 @@ -320,6 +320,7 @@ break; } case EPbCmdPause: + { if ( EPbDlStateDownloadCompleted == iDownloadState && iConsumeStarted ) { ConsumeRights( ContentAccess::EPause ); @@ -327,6 +328,7 @@ TInt ret = iMStreamControl->Pause(); iObs->HandlePluginEvent(MMPXPlaybackPluginObserver::EPPaused, 0, ret); break; + } case EPbCmdStop: iMStreamControl->Stop(); iObs->HandlePluginEvent(MMPXPlaybackPluginObserver::EPStopped, diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/inc/mpxmetadataeditordialog.h --- a/mpxplugins/viewplugins/inc/mpxmetadataeditordialog.h Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/inc/mpxmetadataeditordialog.h Tue May 11 16:10:56 2010 +0300 @@ -662,6 +662,7 @@ CIdle* iIdle; TBool iTryingExit; DRM::CDrmUiHandling* iDrmUiHandler; + MMPXPlaybackUtility* iPlaybackUtility; // not own, but need to close }; #endif // MPXMETADATAEDITORDIALOG_H diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/collectionview/loc/mpxcollectionview.loc --- a/mpxplugins/viewplugins/views/collectionview/loc/mpxcollectionview.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/collectionview/loc/mpxcollectionview.loc Tue May 11 16:10:56 2010 +0300 @@ -258,7 +258,7 @@ // d:Collection details popup label. // d:Label for collection details popup, available phone memory. -// l:list_single_heading_pane_t1_cp2 +// l:list_single_heading_pane_t2_cp2 // r:5.0 // #define qtn_nmp_details_phone_memory "Phone Memory" @@ -371,8 +371,9 @@ // #define qtn_nmp_prmpt_new_name "New name:" -// d:Unknown in listbox. -// l:list_single_graphic_pane_t1 +// d:Text for an item with unknown description +// d:Part of text for wait note +// l:popup_note_wait_window // r:5.0 // #define qtn_mp_list_unknown "Unknown" @@ -390,8 +391,8 @@ #define qtn_mus_title_unknown_album "Unknown album" // d:Unknown genre in title. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_unknown_genre "Unknown genre" diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/collectionviewhg/loc/mpxcollectionviewhg.loc --- a/mpxplugins/viewplugins/views/collectionviewhg/loc/mpxcollectionviewhg.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/collectionviewhg/loc/mpxcollectionviewhg.loc Tue May 11 16:10:56 2010 +0300 @@ -406,8 +406,8 @@ #define qtn_mus_title_unknown_album "Unknown album" // d:Unknown genre in title. -// l:title_pane_t2/opt9 -// r:5.0 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_unknown_genre "Unknown genre" diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp --- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp Tue May 11 16:10:56 2010 +0300 @@ -4359,7 +4359,16 @@ { if( iCurrentViewType == EMPXViewMediawall ) { - ShowAlbumSongsDialogL( aResults ); + // do not call ShowAlbumSongsDialogL if song count = 0 + // otherwise panic occurs + if( songArray->Count() ) + { + ShowAlbumSongsDialogL( aResults ); + } + else + { + iMediaWall->StartOpeningAnimationL( EFalse ); + } } else { @@ -4478,7 +4487,8 @@ TInt songCount = songArray->Count(); CDesC16ArrayFlat* songList = new (ELeave) CDesC16ArrayFlat(songCount); - + CleanupStack::PushL(songList); + if ( songCount > 1 ) { HBufC* shuffleText = StringLoader::LoadLC( @@ -4528,6 +4538,7 @@ CTextListBoxModel* model = listBox->Model(); model->SetItemTextArray( songList ); + CleanupStack::Pop(); // songList model->SetOwnershipType( ELbmOwnsItemArray ); CleanupStack::Pop( dialog ); iDialog = dialog; diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/commonplaybackview/loc/mpxcommonplaybackview.loc --- a/mpxplugins/viewplugins/views/commonplaybackview/loc/mpxcommonplaybackview.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/commonplaybackview/loc/mpxcommonplaybackview.loc Tue May 11 16:10:56 2010 +0300 @@ -59,8 +59,8 @@ // d:Text in title pane // d:Player view -// l:title_pane_t2/opt9 -// r:3.1 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_nmp_title_now_playing "Now Playing" diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewcontainer.cpp --- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewcontainer.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewcontainer.cpp Tue May 11 16:10:56 2010 +0300 @@ -725,8 +725,6 @@ } DrawDeferred(); - //Window().Invalidate( iAlbumArtRect ); - //Window().Invalidate( iSliderPaneRect ); } // --------------------------------------------------------------------------- @@ -805,8 +803,6 @@ else if ( aType == KEikDynamicLayoutVariantSwitch ) { iLayoutObserver->HandleLayoutChange(); - UpdateBackgroundSkinControlContext( Rect() ); - } else { @@ -1267,7 +1263,7 @@ MTouchFeedback* feedback = MTouchFeedback::Instance(); if (feedback) { - feedback->InstantFeedback(ETouchFeedbackBasic); + feedback->InstantFeedback(ETouchFeedbackPopUp); } if ( iCommandObserver ) diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp --- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp Tue May 11 16:10:56 2010 +0300 @@ -162,10 +162,6 @@ _LIT(KMPXRnRealAudioMimeType, "audio/vnd.rn-realaudio"); #endif -#define THUMBNAIL_CENREP_UID 0x102830B0 // from thumbnailmanageruids.hrh -const TUint32 KSizeAudioFullscreenWidth = 0x16; -const TUint32 KSizeAudioFullscreenHeight = 0x17; - // ======== MEMBER FUNCTIONS ======== @@ -215,16 +211,6 @@ CleanupStack::PopAndDestroy( repository ); repository = NULL; - repository = CRepository::NewLC( TUid::Uid(THUMBNAIL_CENREP_UID)); - - TInt xSize( 0 ); - TInt ySize( 0 ); - User::LeaveIfError( repository->Get( KSizeAudioFullscreenWidth, xSize )); - User::LeaveIfError( repository->Get( KSizeAudioFullscreenHeight, ySize )); - iFullScreenImageSize.SetSize(xSize,ySize); - CleanupStack::PopAndDestroy( repository ); - repository = NULL; - iChangeRTForAllProfiles = static_cast( flags & KMPXChangeRTForAll ); @@ -757,12 +743,13 @@ const TDesC& album = aMedia->ValueText( KMPXMediaGeneralUri ); if(!iOldUri || iOldUri->Compare(album)!= 0) { + TRect albumArtRect( iLayout->IndicatorLayout( ClientRect(), EAlbumArtArea )); // Request for pre-generated TN size MPX_TRAP( err, iMPXUtility->ExtractAlbumArtL( *aMedia, *iContainer, - iFullScreenImageSize ); ); + albumArtRect.Size() ); ); // cancel timer if ( iTNRequestTimer->IsActive()) @@ -968,6 +955,7 @@ TInt err = freqMHzStr.Num( freqMHz, realFormat ); if ( err > 0 ) { + AknTextUtils::LanguageSpecificNumberConversion( freqMHzStr ); HBufC* labelFormatText = StringLoader::LoadL( R_MPX_FM_FREQUENCY_LABEL, freqMHzStr ); @@ -2566,28 +2554,20 @@ // Set title // Ignore errors from updating title pane since if that is not // updated, still want to activate view - TRAP_IGNORE( + TRAP_IGNORE( UpdateTitlePaneL() ); + + if ( !AknLayoutUtils::PenEnabled() ) { - UpdateTitlePaneL(); - CAknNavigationControlContainer* naviPane( - static_cast - ( StatusPane()->ControlL( TUid::Uid( EEikStatusPaneUidNavi )))); - if ( naviPane ) + CEikButtonGroupContainer* cba = Cba(); + if ( cba ) { - naviPane->PushDefaultL(); +#ifdef __ENABLE_MSK + iCommonUiHelper->SetMiddleSoftKeyLabelL( + *cba, + R_TEXT_SOFTKEY_EMPTY, + EAknSoftkeyForwardKeyEvent ); +#endif // __ENABLE_MSK } - } ); - - CEikButtonGroupContainer* cba = Cba(); - if ( cba ) - { - -#ifdef __ENABLE_MSK - iCommonUiHelper->SetMiddleSoftKeyLabelL( - *cba, - R_TEXT_SOFTKEY_EMPTY, - EAknSoftkeyForwardKeyEvent ); -#endif // __ENABLE_MSK } iPlaybackState = iPlaybackUtility->StateL(); @@ -3039,11 +3019,6 @@ } iContainer->SetRect( ClientRect() ); - delete iOldUri; - iOldUri = NULL; - // Update album art - TRAP_IGNORE( UpdateAlbumArtL( iMedia )); - TRAP_IGNORE( UpdateTrackInfoL( iMedia )); iContainer->DrawDeferred(); } } @@ -3878,7 +3853,7 @@ { MPX_FUNC("CMPXCommonPlaybackViewImp::UpdateMiddleSoftKeyDisplayL"); - if (iContainer) + if (iContainer && !AknLayoutUtils::PenEnabled() ) { CEikButtonGroupContainer* cba = Cba(); if (cba) @@ -3997,6 +3972,7 @@ TInt CMPXCommonPlaybackViewImp::HandleDelayedError( TAny* aPtr ) { TInt ret( KErrNone ); + TInt index( KErrNotFound ); CMPXCommonPlaybackViewImp* pv = reinterpret_cast( aPtr ); pv->iDelayedErrorTimer->Cancel(); // compare index @@ -4011,8 +3987,11 @@ { return ret; } - - if ( pv->iErrIndex == pl->Index() ) + if ( pl ) + { + index = pl->Index(); + } + if ( pv->iErrIndex == index ) { MPX_TRAP( ret, pv->HandleErrorL( pv->iLastDelayedErr ) ); } @@ -4056,7 +4035,8 @@ pv->iMPXUtility->ExtractAlbumArtL( *pv->iMedia, *pv->iContainer, - albumArtRect.Size() ); ); + albumArtRect.Size(), + EFalse ); ); } } diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/metadataeditordialog/loc/mpxmetadataeditordialog.loc --- a/mpxplugins/viewplugins/views/metadataeditordialog/loc/mpxmetadataeditordialog.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/metadataeditordialog/loc/mpxmetadataeditordialog.loc Tue May 11 16:10:56 2010 +0300 @@ -423,8 +423,8 @@ // d:Text in title pane // d:Form title -// l:title_pane_t1 -// r:3.1 +// l:title_pane_t1/opt3 +// r:5.2 // #define qtn_mus_title_details_track "Song details" diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp --- a/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp Tue May 11 16:10:56 2010 +0300 @@ -2975,7 +2975,9 @@ { HBufC* stringBuf = iCommonUiHelper->UnitConversionL(sizeNum); CleanupStack::PushL(stringBuf); - SetControlTextL(EMPXMetadataEditorDlgCtrlIdSize, *stringBuf, + TPtr stringBufPtr = stringBuf->Des(); + AknTextUtils::DisplayTextLanguageSpecificNumberConversion(stringBufPtr); + SetControlTextL(EMPXMetadataEditorDlgCtrlIdSize, stringBufPtr, KNullDesC); CleanupStack::PopAndDestroy(stringBuf); } @@ -3026,6 +3028,7 @@ { modDatePtr.Append( KMPXSpace ); modDatePtr.Append( modTimePtr ); + AknTextUtils::DisplayTextLanguageSpecificNumberConversion(modDatePtr); SetControlTextL(EMPXMetadataEditorDlgCtrlIdLastModified, modDatePtr, KNullDesC); diff -r a1247965635c -r 70a8526f03f2 mpxplugins/viewplugins/views/waitnotedialog/loc/mpxwaitnotedialog.loc --- a/mpxplugins/viewplugins/views/waitnotedialog/loc/mpxwaitnotedialog.loc Tue Apr 27 16:34:37 2010 +0300 +++ b/mpxplugins/viewplugins/views/waitnotedialog/loc/mpxwaitnotedialog.loc Tue May 11 16:10:56 2010 +0300 @@ -94,7 +94,7 @@ // l:popup_note_wait_window // r:3.1 // -#define qtn_nmp_note_usb_connection_in_progress "USB connection in progress" +#define qtn_nmp_note_usb_connection_in_progress "USB connection active" // d:Wait note shown when a disk format operation is in progress // l:popup_note_wait_window @@ -114,4 +114,9 @@ // #define qtn_mus_note_updating_library "Updating Library. \n Please wait." +// d:Wait note shown when MTP connection in progress +// l:popup_note_wait_window +// r:5.2 +// +#define qtn_mus_note_media_transfer_in_progress "Media transfer in progress" // End of File diff -r a1247965635c -r 70a8526f03f2 musichomescreen_multiview/mcpmusicplayer/src/aiplayerpluginengine.cpp --- a/musichomescreen_multiview/mcpmusicplayer/src/aiplayerpluginengine.cpp Tue Apr 27 16:34:37 2010 +0300 +++ b/musichomescreen_multiview/mcpmusicplayer/src/aiplayerpluginengine.cpp Tue May 11 16:10:56 2010 +0300 @@ -200,7 +200,8 @@ TRAPD(err,iAlbumArtUtil->ExtractAlbumArtL( *iMedia, *this, - TSize(70,70))); + TSize(70,70), + EFalse)); if (err != KErrNone) { diff -r a1247965635c -r 70a8526f03f2 musicplayer_plat/mpx_music_player_commonui_api/inc/mpxalbumartutil.h --- a/musicplayer_plat/mpx_music_player_commonui_api/inc/mpxalbumartutil.h Tue Apr 27 16:34:37 2010 +0300 +++ b/musicplayer_plat/mpx_music_player_commonui_api/inc/mpxalbumartutil.h Tue May 11 16:10:56 2010 +0300 @@ -54,12 +54,15 @@ * TMPXAttribute( KMPXMediaIdGeneral, EMPXMediaGeneralUri ) * @param aObs callback after the operation completed. * @param aSize The size of the required destination BMP. + * @param aLargestFromCache ETrue, get the largest available from image cache, EFalse + * get the size specified in aSize. * @param aDisplayMode the display mode of the destination BMP * @return bitmap object */ IMPORT_C void ExtractAlbumArtL(const CMPXMedia& aProp, MMPXAlbumArtUtilObserver& aObs, const TSize& aSize, + TBool aLargestFromCache = ETrue, TDisplayMode aDisplayMode = EColor64K); /** @@ -124,8 +127,6 @@ CThumbnailManager* iThumbnailManager; // Owned TDisplayMode iDisplayMode ; //Owned TSize iImageSize; - TSize iFullScreenImageSize; - TSize iGridViewImageSize; TInt iReqId; HBufC* iFilename; MMPXAlbumArtUtilObserver* iObserver;