--- a/mpxmusicplayer/app/src/mpxappui.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxmusicplayer/app/src/mpxappui.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -2001,14 +2001,20 @@
{
if ( !IsEmbedded() )
{
- CMPXCollectionPath* cPath = iCollectionUtility->Collection().PathL ( );
- CleanupStack::PushL ( cPath );
TBool usbDiskRemovalEvent(EFalse);
if ( (op == EMcMsgDiskRemoved) && iIsUsbOnGoing )
{
usbDiskRemovalEvent = ETrue;
}
-
+ else
+ {
+ MPX_DEBUG1( "CMPXAppUi::HandleBroadcastMessageL. MMC ejected and the application needs to close." );
+ RunAppShutter();
+ return;
+ }
+
+ CMPXCollectionPath* cPath = iCollectionUtility->Collection().PathL ( );
+ CleanupStack::PushL ( cPath );
if ( cPath->Levels ( )> 1 && !iFormattingOnGoing && !usbDiskRemovalEvent &&
iCurrentViewType.iUid != KMPXPluginTypePlaybackUid )
{
@@ -3631,14 +3637,9 @@
{
TRAP( err, iCoeEnv->SimulateKeyEventL(key,EEventKey); )
}
-
- // Options/Exit selected, close also the MM suite
- if( aCommand == EAknCmdExit )
- {
- LaunchMmViewL( KMmMessage );
- }
- }
-
+ }
+
+ TBool needToExit( EFalse );
if ( iSaveMode != EMPXSaveModeIdle )
{
iCancelFileMan = ETrue;
@@ -3656,7 +3657,16 @@
TRAP_IGNORE( manager.ClearSelectPlayersL() );
iPlaybackUtility->CommandL( EPbCmdClose );
}
-
+ needToExit = ETrue;
+ }
+
+ if( aCommand == EAknCmdExit )
+ {
+ // Options/Exit selected, close also the MM suite
+ LaunchMmViewL( KMmMessage );
+ }
+ if( needToExit )
+ {
Exit();
}
break;
--- a/mpxmusicplayer/commonui/src/mpxalbumartutil.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxmusicplayer/commonui/src/mpxalbumartutil.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -64,6 +64,7 @@
{
if (iArtUtil)
{
+ iArtUtil->CancelRequest();
delete iArtUtil;
}
if(iFilename)
@@ -121,8 +122,16 @@
{
MPX_DEBUG1("CMPXAlbumArtUtil::ExtractAlbumArtL(): Entering");
MPX_DEBUG_THREAD("CMPXAlbumArtUtil::ExtractAlbumArtL()");
- delete iArtUtil;
- iArtUtil = NULL;
+ if(iFilename)
+ {
+ delete iFilename;
+ iFilename = NULL;
+ }
+ if ( iArtUtil )
+ {
+ delete iArtUtil;
+ iArtUtil = NULL;
+ }
iArtUtil = CMPXImageUtil::NewL(aObs);
iDisplayMode = aDisplayMode;
iImageSize = aSize;
@@ -132,6 +141,7 @@
{
if ( aMedia.ValueText( KMPXMediaMusicAlbumArtFileName ).Length() == 0)
{
+ iReqId = 0;
User::Leave( KErrNotFound );
}
}
@@ -139,8 +149,6 @@
if ( aMedia.IsSupported( KMPXMediaGeneralUri ) &&
aMedia.IsSupported( KMPXMediaMusicAlbumArtFileName ))
{
- delete iFilename;
- iFilename = NULL;
iFilename = aMedia.ValueText( KMPXMediaMusicAlbumArtFileName ).AllocL();
if(aSize == iFullScreenImageSize)
{
@@ -173,6 +181,12 @@
if ( iArtUtil )
{
iArtUtil->CancelRequest();
+ delete iArtUtil;
+ iArtUtil = 0;
+ }
+ if ( iThumbnailManager && iReqId > 0 )
+ {
+ iThumbnailManager->CancelRequest(iReqId);
}
iReqId = 0;
MPX_DEBUG1("CMPXAlbumArtUtil::CancelRequest(): Exiting");
@@ -203,7 +217,7 @@
TPtrC data = metaCont.Field( aFieldId );
if(data.Length()==0)
{
- iObserver->ExtractAlbumArtCompleted( NULL, KErrNotFound );
+ User::Leave( KErrNotFound );
}
ret = MPXUser::Alloc8L(data);
@@ -258,12 +272,12 @@
delete tempBitmap;
}
}
- else
+ else if(iReqId == aId)
{
iObserver->ExtractAlbumArtCompleted( NULL, KErrNotFound );
}
}
- else
+ else if (iArtUtil && iFilename)
{
TRAPD( err,
HBufC8* art( ExtractBinaryMetaDataLC(iFilename->Des(),EMetaDataJpeg ));
@@ -276,6 +290,7 @@
}
}
+ iReqId = 0;
}
// -----------------------------------------------------------------------------
@@ -302,6 +317,10 @@
{
CThumbnailObjectSource* source = CThumbnailObjectSource::NewLC( album, KMPXAlbumMimeType );
TInt ret = NULL;
+ if(iThumbnailManager && iReqId >0)
+ {
+ iThumbnailManager->CancelRequest( iReqId );
+ }
TRAPD(err, iReqId = TInt (iThumbnailManager->GetThumbnailL( *source, (TAny*)ret)));
if( err != KErrNone)
{
--- a/mpxmusicplayer/commonui/src/mpxdrmuihelper.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxmusicplayer/commonui/src/mpxdrmuihelper.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -502,6 +502,7 @@
TInt /*aOperationId*/,
TInt /*aError*/ )
{
+ iRightsValid = ETrue;
}
// ----------------------------------------------------------------------------
@@ -512,6 +513,7 @@
TInt /*aOperationId*/,
TInt /*aError*/ )
{
+ iRightsValid = ETrue;
}
// ----------------------------------------------------------------------------
--- a/mpxmusicplayer/commonui/src/mpximageutil.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxmusicplayer/commonui/src/mpximageutil.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -240,6 +240,11 @@
default: // some error
{
iState = EIdle;
+ if ( iBitmap )
+ {
+ delete iBitmap;
+ iBitmap = NULL;
+ }
iObserver.ExtractAlbumArtCompleted(iBitmap,iStatus.Int());
break;
}
--- a/mpxmusicplayer/help/inc/mus.hlp.hrh Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxmusicplayer/help/inc/mus.hlp.hrh Mon Jan 18 20:18:06 2010 +0200
@@ -2,9 +2,9 @@
* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
* All rights reserved.
* This component and the accompanying materials are made available
-* under the terms of the License "Symbian Foundation License v1.0"
+* under the terms of "Eclipse Public License v1.0"
* which accompanies this distribution, and is available
-* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
*
* Initial Contributors:
* Nokia Corporation - initial contribution.
--- a/mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -297,20 +297,32 @@
if ( forwardCommand )
{
iVolumeEventCount++;
+
+ TInt volume(0);
+ TFileName subPlayerName;
+ TMPXPlaybackPlayerType currentPlayerType = EPbLocal;
+ GetSubPlayerInfoL(subPlayerName, currentPlayerType);
- TInt volume = iUpnpVolume % ( KPbPlaybackVolumeLevelMax / iVolumeSteps )
- + iCurrentVol * KPbPlaybackVolumeLevelMax / iVolumeSteps;
-
- if ( volume < KMPXMinVolume )
- {
- volume = KMPXMinVolume;
- }
- if ( volume > KMPXMaxVolume )
- {
- volume = KMPXMaxVolume;
- }
-
- iObserver->HandleMediaKeyCommand( aCommandId, volume );
+ if ( currentPlayerType == EPbRemote )
+ {
+ volume = iUpnpVolume % ( KPbPlaybackVolumeLevelMax / iVolumeSteps )
+ + iCurrentVol * KPbPlaybackVolumeLevelMax / iVolumeSteps;
+ }
+ else
+ {
+ volume = iCurrentVol * KPbPlaybackVolumeLevelMax/iVolumeSteps;
+ }
+
+ if ( volume < KMPXMinVolume )
+ {
+ volume = KMPXMinVolume;
+ }
+ if ( volume > KMPXMaxVolume )
+ {
+ volume = KMPXMaxVolume;
+ }
+
+ iObserver->HandleMediaKeyCommand( aCommandId, volume );
}
}
}
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbartist.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbartist.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -241,7 +241,9 @@
// aMedia.SetTObjectValueL<TInt>(KMPXMediaGeneralCount,albumCount);
// MPX_DEBUG1(" EMPXMediaGeneralCount");
// MPX_DEBUG2(" AlbumCount[%d]", albumCount);
- TInt songCount = aRecord.ColumnInt64(EArtistSongCount);
+ // get songs count from all drives
+ TInt songCount = GetSongsCountL( KDbManagerAllDrives,
+ aRecord.ColumnInt64( EArtistUniqueId ) );
aMedia.SetTObjectValueL<TInt>(KMPXMediaGeneralCount, songCount); // mod by anjokela
MPX_DEBUG1(" EMPXMediaGeneralCount");
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -2789,6 +2789,15 @@
MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemInserted,
aCategory, KDBPluginUid);
}
+ // when the added item's category is Genre or Composer,
+ // and it is NOT a new record,
+ // we should send the item number changed message
+ else if ( ( aCategory == EMPXGenre || aCategory == EMPXComposer ) &&
+ !newRecord && aItemChangedMessages )
+ {
+ MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemModified,
+ aCategory, KDBPluginUid);
+ }
aItemExist = !newRecord;
MPX_PERF_END(CMPXDbHandler_AddCategoryItemL);
@@ -2825,6 +2834,14 @@
MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemInserted,
aCategory, KDBPluginUid);
}
+ // when the added item's category is Artist, and it is NOT a new record,
+ // we should send the item number changed message
+ else if ( aCategory == EMPXArtist &&
+ !newRecord && aItemChangedMessages )
+ {
+ MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemModified,
+ aCategory, KDBPluginUid);
+ }
aItemExist = !newRecord;
MPX_PERF_END(CMPXDbHandler_AddCategoryItemL);
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -1408,6 +1408,25 @@
iDbHandler->GetSongsMatchingPlaylistL(aPath.Id (idIndex).iId2, aAttrs, aArray);
}
+
+ // Add "Shuffle" item
+ if (aArray->Count() > 2)
+ {
+ MPXDbCommonUtil::PrependMediaL(*aArray, *iShuffleAllText,
+ EMPXItem, EMPXCommand, 0, 0, 0, 1);
+ aArray->AtL(1)->SetTObjectValueL(KMPXMediaColDetailNumberOfItems, aArray->Count()-2);
+
+ TInt pPath(0);
+ CMPXMedia* pMedia = aArray->AtL(0);
+ if (pMedia->IsSupported(KMPXMediaGeneralValue))
+ {
+ pPath = pMedia->ValueTObjectL<TInt>(KMPXMediaGeneralValue);
+ MPX_ASSERT(pPath);
+ }
+ //Update path to include the additional id.
+ ((CMPXCollectionPath*)pPath)->InsertL(0,0);
+ }
+
SetMediaGeneralAttributesL(aEntries, EMPXItem, EMPXPlaylist, aPath.Id(idIndex).iId2);
// populate EMPXMediaGeneralNonPermissibleActions
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/src/mpxdbartist.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/src/mpxdbartist.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -244,7 +244,9 @@
// aMedia.SetTObjectValueL<TInt>(KMPXMediaGeneralCount,albumCount);
// MPX_DEBUG1(" EMPXMediaGeneralCount");
// MPX_DEBUG2(" AlbumCount[%d]", albumCount);
- TInt songCount = aRecord.ColumnInt64(EArtistSongCount);
+ // get songs count from all drives
+ TInt songCount = GetSongsCountL( KDbManagerAllDrives,
+ aRecord.ColumnInt64( EArtistUniqueId ) );
aMedia.SetTObjectValueL<TInt>(KMPXMediaGeneralCount, songCount); // mod by anjokela
MPX_DEBUG1(" EMPXMediaGeneralCount");
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/src/mpxdbhandler.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/src/mpxdbhandler.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -2789,6 +2789,15 @@
MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemInserted,
aCategory, KDBPluginUid);
}
+ // when the added item's category is Genre or Composer,
+ // and it is NOT a new record,
+ // we should send the item number changed message
+ else if ( ( aCategory == EMPXGenre || aCategory == EMPXComposer ) &&
+ !newRecord && aItemChangedMessages )
+ {
+ MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemModified,
+ aCategory, KDBPluginUid);
+ }
aItemExist = !newRecord;
MPX_PERF_END(CMPXDbHandler_AddCategoryItemL);
@@ -2825,6 +2834,14 @@
MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemInserted,
aCategory, KDBPluginUid);
}
+ // when the added item's category is Artist, and it is NOT a new record,
+ // we should send the item number changed message
+ else if ( aCategory == EMPXArtist &&
+ !newRecord && aItemChangedMessages )
+ {
+ MPXDbCommonUtil::AddItemChangedMessageL(*aItemChangedMessages, id, EMPXItemModified,
+ aCategory, KDBPluginUid);
+ }
aItemExist = !newRecord;
MPX_PERF_END(CMPXDbHandler_AddCategoryItemL);
--- a/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -1442,7 +1442,9 @@
//
void CMPXProgressDownloadSB::MoveDownloadedFileToMusicFolderL()
{
- if ( iFileSaved || ( (*iPdPath).Length() == 0 ) )
+ if ( iFileSaved ||
+ ( (*iPdPath).Length() == 0 ) ||
+ iMAudioProgDLSource->GetDownloadStatus() == MProgDLSource::EDeleted )
{
return;
}
--- a/mpxplugins/viewplugins/inc/mpxcommonplaybackviewimp.h Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/inc/mpxcommonplaybackviewimp.h Mon Jan 18 20:18:06 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: MPX common playback view implementation
-* Version : %version: da1mmcf#41.1.6.1.1.1.8 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: da1mmcf#41.1.6.1.1.1.9 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -656,7 +656,8 @@
CMPXPSKeyWatcher* iPSKeyWatcher; // own
CMPXCenRepWatcher* iCRWatcher; // own
TInt iFMTxFreqKHz;
-
+ TInt iFmTxActivity;
+
// View utility.
MMPXViewUtility* iViewUtility;
--- a/mpxplugins/viewplugins/views/addtracksdialog/src/mpxaddtracksdialog.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/addtracksdialog/src/mpxaddtracksdialog.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -590,12 +590,11 @@
CAknFilteredTextListBoxModel* lbxModel =
static_cast<CAknFilteredTextListBoxModel*>( iListBox->Model() );
- CAknSearchField* tempSearchField =
- static_cast<CAknSearchField*>( lbxModel->Filter()->FindBox() );
+ CAknSearchField* findBox = FindBox();
lbxModel->Filter()->SetSearchField( NULL );//for find the items
// Update item array
iLbxFilterItems->HandleItemArrayChangeL();
- lbxModel->Filter()->SetSearchField( tempSearchField );// for laylout of list
+ lbxModel->Filter()->SetSearchField( findBox );// for laylout of list
TInt itemCount = CurrentListItemCount();
if ( itemCount )
@@ -1508,9 +1507,13 @@
TRAP_IGNORE( findBox->ResetL() );
iListBox->SetFocus( ETrue );
+ CAknFilteredTextListBoxModel* lbxModel =
+ static_cast<CAknFilteredTextListBoxModel*>( iListBox->Model() );
+ lbxModel->Filter()->SetSearchField( findBox );// for laylout of list
TRect mainPane;
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane );
SetSizeAndPosition( mainPane.Size() );
+ DrawDeferred();
break;
}
default:
@@ -1537,6 +1540,10 @@
TKeyResponse res = EKeyWasNotConsumed;
TBool updateCBA = EFalse;
CAknSearchField* findbox = FindBox();
+
+ CAknFilteredTextListBoxModel* lbxModel =
+ static_cast<CAknFilteredTextListBoxModel*>( iListBox->Model() );
+ lbxModel->Filter()->SetSearchField( NULL );//for find the items
if ( aType == EEventKey )
{
@@ -1647,9 +1654,12 @@
TRAP_IGNORE( findBox->ResetL() );
iListBox->SetFocus( ETrue );
+ lbxModel->Filter()->SetSearchField( findBox );// for laylout of list
+
TRect mainPane;
AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane );
SetSizeAndPosition( mainPane.Size() );
+ iListBox->DrawDeferred();
res = EKeyWasConsumed;
}
else
@@ -1687,9 +1697,14 @@
if ( aType == KEikDynamicLayoutVariantSwitch )
{
- TRect rect;
- AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, rect );
- SetRect( rect );
+ CAknSearchField* findBox = FindBox();
+ CAknFilteredTextListBoxModel* lbxModel =
+ static_cast<CAknFilteredTextListBoxModel*>( iListBox->Model() );
+ lbxModel->Filter()->SetSearchField( findBox );// for laylout of list
+
+ TRect mainPane;
+ AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane );
+ SetSizeAndPosition( mainPane.Size() );
}
if ( aType == KAknsMessageSkinChange )
--- a/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -5962,7 +5962,14 @@
aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdSend, SendOptionVisibilityL() );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
+ if ( iCollectionReady )
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
+ }
aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
}
break;
--- a/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h Mon Jan 18 20:18:06 2010 +0200
@@ -407,7 +407,7 @@
* containing info for currently selected items used by playlist
* does not own this object
*/
- void PrepareMediaForSelectedItemsL( CMPXMedia& aMedia );
+ void PrepareMediaForSelectedItemsL( CMPXMedia& aMedia, TMPXGeneralCategory aContainerCategory, TMPXGeneralType aContainerType );
/**
* Populates media object with information needed for save to
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -176,6 +176,7 @@
delete iMediaWall;
delete iMwListWidget;
delete iListWidget;
+ delete iOrigIcon;
delete iCommonUiHelper;
CancelTNRequest();
iThumbnailReqMap.Close();
@@ -458,6 +459,10 @@
newIcon->SetPictureOwnedExternally( EFalse );
iContextPane = static_cast<CAknContextPane*>
( sp->ControlL( TUid::Uid( EEikStatusPaneUidContext ) ) );
+ if ( iOrigIcon )
+ {
+ delete iOrigIcon;
+ }
iOrigIcon = iContextPane->SwapPicture( newIcon );
CleanupStack::Pop( 3 ); // bitmap, mask, newIcon
}
@@ -473,6 +478,7 @@
{
CEikImage* newIcon = iContextPane->SwapPicture( iOrigIcon );
delete newIcon;
+ iOrigIcon = NULL;
}
}
@@ -1099,6 +1105,10 @@
{
iListWidget->SetEmptyTextL( aText );
}
+ else if ( iMediaWall && aText != KNullDesC )
+ {
+ iMediaWall->SetEmptyTextL( aText );
+ }
}
// -----------------------------------------------------------------------------
@@ -1673,7 +1683,7 @@
// ----------------------------------------------------------------------------
CHgScroller* CMPXCollectionViewHgContainer::CurrentListWidget()
{
- CHgScroller* current = 0;
+ CHgScroller* current = NULL;
switch (iCurrentViewType)
{
case EMPXViewTBone:
@@ -1941,7 +1951,7 @@
iView->ProcessCommandL( EMPXCmdCommonEnterKey );
}
}
- else if ( iContext == EContextGroupSong )
+ else if ( iContext == EContextGroupSong || iContext == EContextItemPlaylist )
{
// Check if shuffle play all was selected.
if (!ShufflePlayAllL(aIndex))
@@ -2524,7 +2534,7 @@
CGulIcon* iconCopy = CGulIcon::NewL(bitmap, mask);
iconCopy->SetBitmapsOwnedExternally(ETrue);
-
+ CleanupStack::PushL( iconCopy );
if ( iMediaWall )
{
iMediaWall->SetDefaultIconL(iconCopy);
@@ -2537,6 +2547,7 @@
{
delete iconCopy;
}
+ CleanupStack::Pop( iconCopy );
iCurrentDefaultIcon = defaultIcon;
}
@@ -2593,7 +2604,7 @@
CGulIcon* iconCopy = CGulIcon::NewL(bitmap, mask);
iconCopy->SetBitmapsOwnedExternally(ETrue);
-
+ CleanupStack::PushL( iconCopy );
// TODO, fix this to use currentviewtype
if ( iMediaWall && defaultIcon != EMPXDefaultIconNotSet )
@@ -2608,6 +2619,7 @@
{
delete iconCopy;
}
+ CleanupStack::Pop( iconCopy );
}
@@ -3918,7 +3930,18 @@
if ( type == EMPXItem && category == EMPXCommand )
{
shuffle = ETrue;
- iPlaylistHelper->InitPlaylistL(shuffle);
+ if ( iContext == EContextItemPlaylist )
+ {
+ CMPXCollectionPath* cpath = iCollectionUtility->Collection().PathL();
+ CleanupStack::PushL( cpath );
+ cpath->Remove(0); // we want to remove index 0 which is shuffle item
+ iPlaylistHelper->InitPlaylistL(*cpath, shuffle);
+ CleanupStack::PopAndDestroy( cpath );
+ }
+ else
+ {
+ iPlaylistHelper->InitPlaylistL(shuffle);
+ }
}
return shuffle;
@@ -4354,21 +4377,26 @@
MPX_FUNC( "CMPXCollectionViewHgContainer::RestoreSelectedAlbumItemL" );
CMPXMedia* restoredAlbum = CMPXMedia::NewL();
+ CleanupStack::PushL( restoredAlbum );
ReadFromStreamFileL(restoredAlbum);
TMPXItemId id=restoredAlbum->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
-
+ iRestoredAlbumIndex = 0;
+ iSelectedAlbumIndex = 0;
+
for ( TInt i = 0; i < aMediaArray.Count() ; i++ )
{
CMPXMedia* currentMedia( aMediaArray.AtL( i ) );
if ( (currentMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == id) ||
- (id == KMPXInvalidItemId && currentMedia->ValueText(KMPXMediaGeneralTitle).Compare( restoredAlbum->ValueText(KMPXMediaGeneralTitle) ) == 0 ) )
+ (id.iId1 == 0 && currentMedia->ValueText(KMPXMediaGeneralTitle).Compare( restoredAlbum->ValueText(KMPXMediaGeneralTitle) ) == 0 ) )
{
iRestoredAlbumIndex = i;
iSelectedAlbumIndex = i;
break;
}
}
+
+ CleanupStack::PopAndDestroy( restoredAlbum );
}
// ----------------------------------------------------------------------------
@@ -4440,12 +4468,6 @@
CleanupStack::PopAndDestroy( store );
}
- // for corrupted Media
- TMPXItemId id=aMedia->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
- if ( id.iId1 == 0 )
- {
- aMedia->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, KMPXInvalidItemId );
- }
}
void CMPXCollectionViewHgContainer::HandleGainingForeground()
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -35,7 +35,7 @@
#include <avkon.rsg>
#include <avkon.mbg>
#include <sendui.h>
-#include <cmessagedata.h>
+#include <CMessageData.h>
#include <centralrepository.h>
#include <mprofileengine.h>
#include <akndlgshut.h>
@@ -3341,27 +3341,77 @@
// Prepares media object for selected items
// -----------------------------------------------------------------------------
//
-void CMPXCollectionViewHgImp::PrepareMediaForSelectedItemsL( CMPXMedia& aMedia )
+void CMPXCollectionViewHgImp::PrepareMediaForSelectedItemsL( CMPXMedia& aMedia, TMPXGeneralCategory aContainerCategory, TMPXGeneralType aContainerType )
{
MPX_FUNC( "CMPXCollectionViewHgImp::PrepareMediaForSelectedItemsL" );
CMPXMediaArray* mediaArray( CMPXMediaArray::NewL() );
CleanupStack::PushL( mediaArray );
- CMPXCommonListBoxArrayBase* listBoxArray =
- iContainer->ListBoxArray();
- TInt count( iSelectionIndexCache->Count() );
CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
CleanupStack::PushL( path );
TMPXItemId id( path->Id( 0 ) );
MPX_DEBUG2( "CMPXCollectionViewHgImp::PrepareMediaForSelectedItemsL collection ID = 0x%x", id.iId1 );
CleanupStack::PopAndDestroy( path );
-
- if ( count > 0 )
- {
- if ( count == 1 )
- {
- // marked one item, if it's not valid, ignore the command
- const CMPXMedia& listBoxMedia = listBoxArray->MediaL( iSelectionIndexCache->At(0) );
+
+ //support for TBone view add to playlist
+ if ( aContainerCategory == EMPXAlbum && aContainerType == EMPXItem)
+ {
+ CMPXMedia* media = iContainer->SelectedItemMediaL();
+ if ( media->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == KMPXInvalidItemId )
+ {
+ // leave with special error code, this error
+ // should not trigger any error message, the operation should
+ // be terminated silently
+ User::Leave( KMPXErrDataNotReady );
+ }
+ else
+ {
+ CMPXMedia* entry( PopulateMediaLC( *media, id ) );
+ mediaArray->AppendL( entry );
+ CleanupStack::Pop( entry );
+ }
+ }
+
+ else
+ {
+ TInt count( iSelectionIndexCache->Count() );
+ CMPXCommonListBoxArrayBase* listBoxArray =
+ iContainer->ListBoxArray();
+ if ( count > 0 )
+ {
+
+ if ( count == 1 )
+ {
+ // marked one item, if it's not valid, ignore the command
+ const CMPXMedia& listBoxMedia = listBoxArray->MediaL( iSelectionIndexCache->At(0) );
+ if ( listBoxMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == KMPXInvalidItemId )
+ {
+ // leave with special error code, this error
+ // should not trigger any error message, the operation should
+ // be terminated silently
+ User::Leave( KMPXErrDataNotReady );
+ }
+
+ }
+ for ( TInt i = 0; i < count; i++ )
+ {
+ const CMPXMedia& listBoxMedia = listBoxArray->MediaL( iSelectionIndexCache->At(i) );
+ if ( listBoxMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == KMPXInvalidItemId )
+ {
+ // item not ready, cache this command and execute
+ // it when the data becomes valid
+ User::Leave( KMPXErrDataNotReadyCacheCommand );
+ }
+ CMPXMedia* entry( PopulateMediaLC( listBoxMedia, id ) );
+ mediaArray->AppendL( entry );
+ CleanupStack::Pop( entry );
+ }
+ }
+
+ else
+ {
+ const CMPXMedia& listBoxMedia = listBoxArray->MediaL(
+ iContainer->CurrentLbxItemIndex() );
if ( listBoxMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == KMPXInvalidItemId )
{
// leave with special error code, this error
@@ -3369,44 +3419,20 @@
// be terminated silently
User::Leave( KMPXErrDataNotReady );
}
- }
- for ( TInt i = 0; i < count; i++ )
- {
- const CMPXMedia& listBoxMedia = listBoxArray->MediaL( iSelectionIndexCache->At(i) );
- if ( listBoxMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == KMPXInvalidItemId )
- {
- // item not ready, cache this command and execute
- // it when the data becomes valid
- User::Leave( KMPXErrDataNotReadyCacheCommand );
- }
- CMPXMedia* entry( PopulateMediaLC( listBoxMedia, id ) );
- mediaArray->AppendL( entry );
- CleanupStack::Pop( entry );
- }
- }
- else
- {
- const CMPXMedia& listBoxMedia = listBoxArray->MediaL(
- iContainer->CurrentLbxItemIndex() );
- if ( listBoxMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == KMPXInvalidItemId )
- {
- // leave with special error code, this error
- // should not trigger any error message, the operation should
- // be terminated silently
- User::Leave( KMPXErrDataNotReady );
- }
- else
- {
- CMPXMedia* entry( PopulateMediaLC( listBoxMedia, id ) );
- mediaArray->AppendL( entry );
- CleanupStack::Pop( entry );
- }
- }
- aMedia.SetTObjectValueL( KMPXMediaGeneralCollectionId, id );
- aMedia.SetCObjectValueL( KMPXMediaArrayContents, mediaArray );
- aMedia.SetTObjectValueL( KMPXMediaArrayCount, mediaArray->Count() );
- iNumSongAddedToPlaylist = mediaArray->Count();
- CleanupStack::PopAndDestroy( mediaArray );
+ else
+ {
+ CMPXMedia* entry( PopulateMediaLC( listBoxMedia, id ) );
+ mediaArray->AppendL( entry );
+ CleanupStack::Pop( entry );
+ }
+ }
+ }
+
+ aMedia.SetTObjectValueL( KMPXMediaGeneralCollectionId, id );
+ aMedia.SetCObjectValueL( KMPXMediaArrayContents, mediaArray );
+ aMedia.SetTObjectValueL( KMPXMediaArrayCount, mediaArray->Count() );
+ iNumSongAddedToPlaylist = mediaArray->Count();
+ CleanupStack::PopAndDestroy( mediaArray );
}
// -----------------------------------------------------------------------------
@@ -3583,11 +3609,7 @@
const TDesC& location = aMedia.ValueText( KMPXMediaGeneralUri );
if ( location.Length() == 0 || ConeUtils::FileExists( location ) )
{
-#ifdef SINGLE_CLICK_INCLUDED
- HandleListBoxEventL( NULL, EEventItemSingleClicked );
-#else
HandleListBoxEventL( NULL, EEventItemClicked );
-#endif
HBufC* buf = HBufC::NewLC( 5 ); // magic number, array granularity
buf->Des().AppendNum( iContainer->CurrentLbxItemIndex() );
// Activate view via View Framework
@@ -3976,23 +3998,39 @@
}
// USB flags
//
+ CEikMenuBar* menuBar( MenuBar() );
+#ifdef SINGLE_CLICK_INCLUDED
+ iContainer->EnableMarking( EFalse );
+ menuBar->SetMenuTitleResourceId( R_MPX_COLLECTION_VIEW_MENUBAR_NO_MARKING );
+#else
+ iContainer->EnableMarking( ETrue );
+ menuBar->SetMenuTitleResourceId( R_MPX_COLLECTION_VIEW_MENUBAR );
+#endif
+ TBool IsUSBEvent( EFalse );
if( type == EMcMsgUSBMassStorageStart || type == EMcMsgUSBMTPStart )
{
iUSBOnGoing = ETrue;
+ IsUSBEvent = ETrue;
}
else if( type == EMcMsgUSBMassStorageEnd || type == EMcMsgUSBMTPEnd )
{
iUSBOnGoing = EFalse;
+ IsUSBEvent = ETrue;
RProperty::Set( KMPXViewPSUid,
KMPXUSBUnblockingPSStatus,
EMPXUSBUnblockingPSStatusUninitialized );
}
else if( type == EMcMsgUSBMTPNotActive )
{
+ IsUSBEvent = ETrue;
RProperty::Set( KMPXViewPSUid,
KMPXUSBUnblockingPSStatus,
EMPXUSBUnblockingPSStatusActive );
- }
+ }
+ if( IsUSBEvent && menuBar && menuBar->IsDisplayed() )
+ {
+ menuBar->StopDisplayingMenuBar();
+ }
if ( iContainer && iIsEmbedded && type == EMcMsgUSBMassStorageEnd )
{
@@ -5200,19 +5238,35 @@
// flag used only in the case when songs are added incrementally
iIsAddingToPlaylist = ETrue;
iNumSongAddedToPlaylist = -1;
- TMPXGeneralCategory category( EMPXNoCategory );
- CMPXCommonListBoxArrayBase* array(
- iContainer->ListBoxArray() );
- const CMPXMedia& media = array->MediaL(
+
+ CMPXCommonListBoxArrayBase* listboxArray(
+ iContainer->ListBoxArray() );
+
+ const CMPXMedia& currentMedia = listboxArray->MediaL(
iContainer->CurrentLbxItemIndex() );
- category = media.ValueTObjectL<TMPXGeneralCategory>(
- KMPXMediaGeneralCategory );
- if ( category == EMPXSong )
+
+ TMPXGeneralCategory mediaCategory( currentMedia.ValueTObjectL<TMPXGeneralCategory>( KMPXMediaGeneralCategory ));
+
+ const CMPXMedia& containerMedia = listboxArray->ContainerMedia();
+
+ TMPXGeneralType containerType( EMPXNoType );
+ if ( containerMedia.IsSupported( KMPXMediaGeneralType ) )
+ {
+ containerType = containerMedia.ValueTObjectL<TMPXGeneralType>( KMPXMediaGeneralType );
+ }
+
+ TMPXGeneralCategory containerCategory( EMPXNoCategory );
+ if ( containerMedia.IsSupported( KMPXMediaGeneralCategory ) )
+ {
+ containerCategory = containerMedia.ValueTObjectL<TMPXGeneralCategory>( KMPXMediaGeneralCategory );
+ }
+
+ if ( mediaCategory == EMPXSong || (containerCategory == EMPXAlbum && containerType== EMPXItem) )
{
CMPXMedia* tracks = CMPXMedia::NewL();
CleanupStack::PushL( tracks );
- MPX_TRAPD( err, PrepareMediaForSelectedItemsL( *tracks ) );
+ MPX_TRAPD( err, PrepareMediaForSelectedItemsL( *tracks, containerCategory, containerType ) );
if ( err == KErrNone )
{
TBool ret = EFalse;
@@ -5291,13 +5345,6 @@
EMPXMediaGeneralType | EMPXMediaGeneralCategory ) );
CMPXMedia* criteria = CMPXMedia::NewL();
CleanupStack::PushL( criteria );
- CMPXCommonListBoxArrayBase* listboxArray =
- iContainer->ListBoxArray();
- const CMPXMedia& containerMedia =
- listboxArray->ContainerMedia();
- TMPXGeneralCategory containerCategory(
- containerMedia.ValueTObjectL<TMPXGeneralCategory>(
- KMPXMediaGeneralCategory ) );
if ( containerCategory == EMPXArtist )
{
// artist/album level, need to specify artist ID in container ID
@@ -5306,8 +5353,7 @@
criteria->SetTObjectValueL<TMPXItemId>(
KMPXMediaGeneralContainerId, containerId );
}
- const CMPXMedia& currentMedia = listboxArray->MediaL(
- iContainer->CurrentLbxItemIndex() );
+
TMPXItemId id(
currentMedia.ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) );
criteria->SetTObjectValueL<TMPXGeneralType>(
@@ -6000,7 +6046,7 @@
case EMPXAlbum:
case EMPXArtist:
{
- // Album & Artist view
+ // Artists & Albums view
aMenuPane->SetItemDimmed( EMPXCmdGoToArtistAlbums, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdGoToGenre, ETrue );
break;
@@ -6040,6 +6086,8 @@
TInt currentItem( iContainer->CurrentLbxItemIndex() );
TBool isListEmpty( currentItem < 0 );
TInt selectionCount( 0 );
+
+ iSelectionIndexCache = iContainer->CurrentSelectionIndicesL(); // not owned
if ( iSelectionIndexCache)
{
selectionCount = iSelectionIndexCache->Count();
@@ -6067,18 +6115,24 @@
// Always dim the find in hg implementation
aMenuPane->SetItemDimmed( EMPXCmdFind, ETrue );
- MMPXPlaybackUtility* pdPlaybackUtility;
- pdPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( KProgressDownloadUid ) );
- MMPXSource* pdsource( pdPlaybackUtility->Source() );
- MMPXSource* source( iPlaybackUtility->Source() );
- TBool hideNowPlaying;
- hideNowPlaying = ( (pdsource == 0)
- && (source == 0));
- pdPlaybackUtility->Close();
- if ( hideNowPlaying )
- {
- aMenuPane->SetItemDimmed( EMPXCmdGoToNowPlaying, ETrue );
- }
+
+ // Determine if we should hide "Goto now playing" option.
+ TBool hideNowPlaying(EFalse);
+ MMPXSource* source( iPlaybackUtility->Source() );
+ if ( source == 0 )
+ {
+ MMPXPlaybackUtility* pdPlaybackUtility;
+ pdPlaybackUtility = MMPXPlaybackUtility::UtilityL( TUid::Uid( KProgressDownloadUid ) );
+ hideNowPlaying = pdPlaybackUtility->Source() ? EFalse : ETrue;
+ pdPlaybackUtility->Close();
+ }
+ if (usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive)
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdRefreshLibrary, ETrue );
+ }
+
+ aMenuPane->SetItemDimmed( EMPXCmdGoToNowPlaying, hideNowPlaying );
+
if ( !isListEmpty )
{
const CMPXMedia& media = array->MediaL( currentItem );
@@ -6091,12 +6145,13 @@
#ifdef SINGLE_CLICK_INCLUDED
if ( containerType == EMPXGroup && containerCategory == EMPXAlbum )
{
- // album view
+ // Artists & Albums view
switch ( category )
{
case EMPXAlbum:
{
- if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
+ TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
+ if ( landscapeOrientation )
{
aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
@@ -6105,18 +6160,32 @@
aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
}
else
{
- aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
- aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
- aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
+ if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
+ }
+ else
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdCreatePlaylist, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdAddToPlaylist, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdAddSongs, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdReorder, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdSend, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdDelete, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
+ aMenuPane->SetItemDimmed( EMPXCmdPlayItem, EFalse );
+ }
}
break;
}
@@ -6229,12 +6298,21 @@
}
}
aMenuPane->SetItemDimmed( EMPXCmdRemove, ETrue );
+ TInt trackCount (0);
+ if(media.IsSupported(KMPXMediaGeneralCount))
+ {
+ trackCount = media.ValueTObjectL<TInt>( KMPXMediaGeneralCount );
+ }
+ if( trackCount < 1 )
+ {
+ aMenuPane->SetItemDimmed( EMPXCmdPlayItem, ETrue );
+ }
break;
}
#ifdef SINGLE_CLICK_INCLUDED
case EMPXAlbum:
{
- // album contents view
+ // Album > Tracks view
if ( iContainer->IsSelectedItemASong() )
{
if ( usbUnblockingStatus == EMPXUSBUnblockingPSStatusActive )
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -353,6 +353,7 @@
#endif
iIsffButtonPressed = EFalse;
iDelayedErrorTimer = CPeriodic::NewL( CActive::EPriorityStandard );
+ iFmTxActivity = EFmTxStateUnknown;
}
@@ -899,6 +900,7 @@
}
}
}
+ iFmTxActivity = value;
MPX_DEBUG4( "CMPXCommonPlaybackViewImp::UpdateFMTransmitterInfoL iFMTxFreqKHz %d freqKHz %d aForceUpdate %d", iFMTxFreqKHz, freqKHz, aForceUpdate);
if ( iFMTxFreqKHz != freqKHz || aForceUpdate )
@@ -2414,7 +2416,11 @@
case EMPXCmdVolumeUnMute:
case EMPXCmdVolumeChanged:
{
- AppUi()->HandleCommandL( aCommand );
+ //Do not try to update volume if FMTx (transmission) is on.
+ if (iFmTxActivity != EFmTxStateActive)
+ {
+ AppUi()->HandleCommandL( aCommand );
+ }
break;
}
default:
@@ -2508,7 +2514,6 @@
| ECoeStackFlagRefusesAllKeys );
toolbar->MakeVisible( ETrue );
toolbar->HideItemsAndDrawOnlyBackground(EFalse);
- toolbar->SetSkinBackgroundId(KAknsIIDQsnBgScreenMp);
toolbar->SetToolbarVisibility(ETrue);
}
PrepareStatusPaneForPlaybackViewL();
--- a/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -882,7 +882,7 @@
if ( ( IdOfFocusControl() == EMPXMetadataEditorDlgCtrlIdGenre ) ||
( IdOfFocusControl() == EMPXMetadataEditorDlgCtrlIdLibrary ) )
{
- aMenuPane->SetItemDimmed( EMPXCmdSongDetailsChange, EFalse );
+ aMenuPane->SetItemDimmed( EMPXCmdSongDetailsChange, ETrue );
}
else
{
@@ -2498,7 +2498,7 @@
{
MPX_FUNC( "CMPXMetadataEditorDialog::PostLayoutDynInitL" );
CAknForm::PostLayoutDynInitL();
- SetEditableL( ETrue );
+ SetEditableL( EFalse );
}
// -----------------------------------------------------------------------------
--- a/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewimp.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewimp.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -12,7 +12,7 @@
* Contributors:
*
* Description: Implementation of Upnp Playback view
-* Version : %version: da1mmcf#35.1.3.1.4 % << Don't touch! Updated by Synergy at check-out.
+* Version : %version: e003sa33#35.1.3.1.5 % << Don't touch! Updated by Synergy at check-out.
*
*/
@@ -245,7 +245,8 @@
EPbAccessoryWirelessHeadset == mode ||
EPbAccessoryMusicStand == mode ||
EPbAccessoryTVOut == mode ||
- EPbAccessoryHeadphones == mode );
+ EPbAccessoryHeadphones == mode ||
+ EPbAccessoryHDMI == mode );
#else
resetToLocal = ( EPbAccessoryHeadset == mode ||
EPbAccessoryLoopset == mode );
--- a/musichomescreen/mcpmusicplayer/inc/applicationmonitor.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen/mcpmusicplayer/inc/applicationmonitor.h Mon Jan 18 20:18:06 2010 +0200
@@ -83,6 +83,7 @@
private: // data
MApplicationMonitorObserver& iObserver;
RThread iThread;
+ TUid iAppUid;
};
#endif // C_APPLICATIONMONITOR_H
--- a/musichomescreen/mcpmusicplayer/src/applicationmonitor.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen/mcpmusicplayer/src/applicationmonitor.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -87,6 +87,7 @@
TUint64 threadId(0);
TBool taskExists(EFalse);
TInt status = KErrNone;
+ iAppUid = aAppUid;
if(aRootAppIndication)
{
CAknTaskList* taskList = CAknTaskList::NewL( wsSession );
@@ -131,22 +132,22 @@
MPX_DEBUG1("CApplicationMonitor::RunL <---");
switch (iStatus.Int())
{
- case EExitKill:
- case EExitTerminate:
- case EExitPanic:
- MPX_DEBUG1("CApplicationMonitor::RunL kill\terminate\panic");
- iObserver.HandleApplicationClosedL((TExitType) iStatus.Int());
+ case EExitPending:
+ MPX_DEBUG1("CApplicationMonitor::RunL reason = EExitPending");
+ iThread.Close();
+ TRAPD(err, StartL( iAppUid ) );
+ if (KErrNone != err)
+ {
+ MPX_DEBUG1("CApplicationMonitor::RunL reason = EExitPending but thread is really gone");
+ iObserver.HandleApplicationClosedL((TExitType) iStatus.Int());
+ }
break;
case KErrCancel:
- case KErrNoMemory:
- MPX_DEBUG1("CApplicationMonitor::RunL cancel\memory");
+ MPX_DEBUG1("CApplicationMonitor::RunL cancel");
break;
- case EExitPending:
default:
- MPX_DEBUG1("CApplicationMonitor::RunL exitpendin\default");
- // Listen again
- iThread.Logon(iStatus);
- SetActive();
+ MPX_DEBUG2("CApplicationMonitor::RunL reason = %d", iStatus.Int());
+ iObserver.HandleApplicationClosedL((TExitType) iStatus.Int());
break;
}
MPX_DEBUG1("CApplicationMonitor::RunL --->");
@@ -171,9 +172,6 @@
TInt CApplicationMonitor::RunError(TInt /*aError*/)
{
MPX_DEBUG1("CApplicationMonitor::RunError <---");
- // Listen again
- iThread.Logon(iStatus);
- SetActive();
MPX_DEBUG1("CApplicationMonitor::RunError --->");
return KErrNone;
}
--- a/musichomescreen/mcpmusicplayer/src/mcpmusicplayer.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen/mcpmusicplayer/src/mcpmusicplayer.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -655,6 +655,7 @@
case EMPlayerStatePlaying:
{
MPX_DEBUG1("CMCPMusicPlayer::DoUpdatePlayerStateL EMPlayerStatePlaying");
+ iMusicPlayerOpeningTimer->Cancel();
UpdateToolBarL(TBK::KSkeep_L|TBK::KPause|TBK::KSkeep_R);
break;
}
@@ -1275,31 +1276,12 @@
//
TInt CMCPMusicPlayer::MusicPlayerOpeningTimerCallback( TAny* aPtr )
{
- MPX_DEBUG1("CMCPMusicPlayer::MusicPlayerOpeningTimerCallback <---");
- RWsSession wsSession;
- TInt error = wsSession.Connect();
- if ( error != KErrNone )
- {
- return error;
- }
-
- TBool taskExists( EFalse );
- CAknTaskList* taskList( NULL );
- TRAPD( err, taskList = CAknTaskList::NewL( wsSession ) );
- if ( err == KErrNone )
+ MPX_DEBUG1("CMCPMusicPlayer::MusicPlayerOpeningTimerCallback <---");
+ if ( EMPlayerStatePlaying != static_cast<CMCPMusicPlayer*>(aPtr)->iEngine->PlayerState() )
{
- MPX_DEBUG2("CMCPMusicPlayer::MusicPlayerOpeningTimerCallback "
- "error = %d occur when creating CAknTaskList", err);
- TApaTask task = taskList->FindRootApp( TUid::Uid( KMusicPlayerAppUidAsTInt ) );
- delete taskList;
- taskExists = task.Exists();
- }
- wsSession.Close();
-
- if ( !taskExists )
- {
- MPX_DEBUG1("CMCPMusicPlayer::MusicPlayerOpeningTimerCallback Music Player not opened");
- //Reset the widget and menu, music player is not running
+ MPX_DEBUG1("CMCPMusicPlayer::MusicPlayerOpeningTimerCallback Music Player not Playing");
+ //Reset the widget and menu, music player is not running and playing.
+ static_cast<CMCPMusicPlayer*>(aPtr)->iActive = EFalse;
TRAP_IGNORE( static_cast<CMCPMusicPlayer*>(aPtr)->ResetL() );
}
static_cast<CMCPMusicPlayer*>(aPtr)->iMusicPlayerOpeningTimer->Cancel();
--- a/musichomescreen/musicplayeractionhandlerplugin/inc/musicplayeractionhandler.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen/musicplayeractionhandlerplugin/inc/musicplayeractionhandler.h Mon Jan 18 20:18:06 2010 +0200
@@ -20,6 +20,7 @@
#define C_MUSICPLAYERACTIONHANDLER_H
#include <ahplugin.h>
+#include <mpxplaybackcommanddefs.h>
// FORWARD DECLARATION
class CLiwMap;
@@ -120,6 +121,11 @@
TInt ExtractVariantL( const CLiwMap* aMap, TLiwVariant& aVariant,
const TDesC8& aMapName );
+ /**
+ * Sets the playback command.
+ * @param aCommand commandType.
+ */
+ void SetPlaybackCommandL( TMPXPlaybackCommand aCommand );
private: // data
/**
--- a/musichomescreen/musicplayeractionhandlerplugin/src/musicplayeractionhandler.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen/musicplayeractionhandlerplugin/src/musicplayeractionhandler.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -27,6 +27,7 @@
#include <mpxmusicplayerviewplugin.hrh> // KMPXPluginTypePlaybackUid
#include <AknTaskList.h> // CAknTaskList
+#include <mpxcommandgeneraldefs.h>
#include <mpxcommonuihelper.h>
#include <mpxcollectionhelperfactory.h>
#include "musicplayeractionhandler.h"
@@ -36,6 +37,8 @@
const TInt KPlayerMusicPlayerParameterGranularity = 50;
const TUid KMusicPlayerAppUid = { 0x102072C3 };
+const TInt KMPXStandAloneProcessIDTop32( 1 );
+const TInt KMPXStandAloneProcessIDBottom32( 2 );
// RProperty key to identify the case when Music Player launching
// in the background
const TInt KMPXLaunchingOnBackground( 100 );
@@ -121,7 +124,7 @@
{
TMPXPlaybackCommand Command;
Command = static_cast<TMPXPlaybackCommand>( variant.AsTInt32() );
- iPlaybackUtility->CommandL( Command );
+ SetPlaybackCommandL( Command );
}
CleanupStack::PopAndDestroy( &variant);
MPX_DEBUG1("<--CMusicPlayerActionHandler::ExecutePlaybackCommandL()");
@@ -429,5 +432,45 @@
return errCode;
}
+// ---------------------------------------------------------------------------
+// Set the command to playbackUtility
+// ---------------------------------------------------------------------------
+//
+void CMusicPlayerActionHandler::SetPlaybackCommandL( TMPXPlaybackCommand aCommand )
+ {
+ MPX_DEBUG1("-->CMusicPlayerActionHandler::SetPlaybackCommandL()");
+ //Try to get musicplay StandAloneMode process id
+ TInt procId( 0 );
+ TUint64 mpProcId( 0 );
+ TInt err( RProperty::Get( KMusicPlayerAppUid, KMPXStandAloneProcessIDTop32, procId ) );
+ if ( err == KErrNone )
+ {
+ mpProcId = TUint64( procId ) << 32;
+ err = RProperty::Get( KMusicPlayerAppUid, KMPXStandAloneProcessIDBottom32, procId );
+ if ( err == KErrNone )
+ {
+ mpProcId += procId;
+ }
+ else
+ {
+ mpProcId = 0;
+ }
+ }
+
+ CMPXCommand* cmd( CMPXCommand::NewL() );
+ CleanupStack::PushL( cmd );
+ cmd->SetTObjectValueL<TInt>( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral );
+ cmd->SetTObjectValueL<TBool>( KMPXCommandGeneralDoSync, ETrue );
+ cmd->SetTObjectValueL<TInt>( KMPXCommandPlaybackGeneralType, aCommand );
+ cmd->SetTObjectValueL<TInt>( KMPXCommandPlaybackGeneralData, 0 );
+ if ( mpProcId )
+ {
+ //This attribute will be used by playbckEngine->iLastActiveProcess
+ cmd->SetTObjectValueL<TProcessId> ( KMPXCommandPlaybackGeneralClientPid, mpProcId );
+ }
+ iPlaybackUtility->CommandL( *cmd );
+ CleanupStack::PopAndDestroy( cmd );
+ MPX_DEBUG1("<--CMusicPlayerActionHandler::SetPlaybackCommandL()");
+ }
// End of File
--- a/musichomescreen_multiview/data/themes/default/install/musicwidget_10207c18/hsps/00/manifest.dat Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/data/themes/default/install/musicwidget_10207c18/hsps/00/manifest.dat Mon Jan 18 20:18:06 2010 +0200
@@ -21,7 +21,7 @@
<version>1.0</version>
<description>&qtn_musicwidget_configuration_desc;</description>
- <filelogo>SKIN(270501603 8633): mif(musicwidgeticon.mif 16384 16385)</filelogo>
+ <filelogo>SKIN(270501603 8633):mif(musicwidgeticon.mif 16384 16385)</filelogo>
<!-- configuration -->
--- a/musichomescreen_multiview/mcpmusicplayer/inc/applicationmonitor.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/mcpmusicplayer/inc/applicationmonitor.h Mon Jan 18 20:18:06 2010 +0200
@@ -83,6 +83,7 @@
private: // data
MApplicationMonitorObserver& iObserver;
RThread iThread;
+ TUid iAppUid;
};
#endif // C_APPLICATIONMONITOR_H
--- a/musichomescreen_multiview/mcpmusicplayer/src/applicationmonitor.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/mcpmusicplayer/src/applicationmonitor.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -87,6 +87,7 @@
TUint64 threadId(0);
TBool taskExists(EFalse);
TInt status = KErrNone;
+ iAppUid = aAppUid;
if(aRootAppIndication)
{
CAknTaskList* taskList = CAknTaskList::NewL( wsSession );
@@ -131,22 +132,22 @@
MPX_DEBUG1("CApplicationMonitor::RunL <---");
switch (iStatus.Int())
{
- case EExitKill:
- case EExitTerminate:
- case EExitPanic:
- MPX_DEBUG1("CApplicationMonitor::RunL kill\terminate\panic");
- iObserver.HandleApplicationClosedL((TExitType) iStatus.Int());
+ case EExitPending:
+ MPX_DEBUG1("CApplicationMonitor::RunL reason = EExitPending");
+ iThread.Close();
+ TRAPD(err, StartL( iAppUid ) );
+ if (KErrNone != err)
+ {
+ MPX_DEBUG1("CApplicationMonitor::RunL reason = EExitPending but thread is really gone");
+ iObserver.HandleApplicationClosedL((TExitType) iStatus.Int());
+ }
break;
case KErrCancel:
- case KErrNoMemory:
- MPX_DEBUG1("CApplicationMonitor::RunL cancel\memory");
+ MPX_DEBUG1("CApplicationMonitor::RunL cancel");
break;
- case EExitPending:
default:
- MPX_DEBUG1("CApplicationMonitor::RunL exitpendin\default");
- // Listen again
- iThread.Logon(iStatus);
- SetActive();
+ MPX_DEBUG2("CApplicationMonitor::RunL reason = %d", iStatus.Int());
+ iObserver.HandleApplicationClosedL((TExitType) iStatus.Int());
break;
}
MPX_DEBUG1("CApplicationMonitor::RunL --->");
@@ -171,9 +172,6 @@
TInt CApplicationMonitor::RunError(TInt /*aError*/)
{
MPX_DEBUG1("CApplicationMonitor::RunError <---");
- // Listen again
- iThread.Logon(iStatus);
- SetActive();
MPX_DEBUG1("CApplicationMonitor::RunError --->");
return KErrNone;
}
--- a/musichomescreen_multiview/mcpmusicplayer/src/mcpmusicplayer.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/mcpmusicplayer/src/mcpmusicplayer.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -656,7 +656,7 @@
MPX_DEBUG1("CMCPMusicPlayer::ActivateL we are active now");
iMHObserver->PublishTextL( this, EMusicWidgetDefaultText, KEmpty );
- InstallGoToAlbumL(EMusicWidgetTrigger1);
+ InstallGoToNowPlayingL(EMusicWidgetTrigger1);
InstallGoToLastPlayedL(EMusicMenuMusicInfoTrigger, EFalse);
iMHObserver->PublishTextL(this, EMusicMenuMusicInfoLine1,
KNowPlaying);
--- a/musichomescreen_multiview/musiccontentpublisher/inc/musiccontentpublisher.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/musiccontentpublisher/inc/musiccontentpublisher.h Mon Jan 18 20:18:06 2010 +0200
@@ -403,7 +403,8 @@
HBufC* iGoToMusicBuffer;
CMCPHarvesterPublisherObserver* iHPObserver;
- TBool iIsPublisherActive;
+ TBool iWidgetForeground;
+ TBool iWidgetActivated;
HBufC* iInstanceId;
--- a/musichomescreen_multiview/musiccontentpublisher/src/musiccontentpublisher.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/musiccontentpublisher/src/musiccontentpublisher.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -78,12 +78,9 @@
// Constructor
// ---------------------------------------------------------------------------
//
-CMusicContentPublisher::CMusicContentPublisher( MLiwInterface* aCPSInterface )
+CMusicContentPublisher::CMusicContentPublisher( MLiwInterface* aCPSInterface ):
+ iCPSInterface (aCPSInterface)
{
- iCPSInterface = aCPSInterface;
- iActivePlugin=NULL;
- iIsPublisherActive = EFalse;
-
}
// ---------------------------------------------------------------------------
@@ -307,14 +304,14 @@
TPtrC8 dataKey ( reinterpret_cast<const TUint8*>(
tmpdstitemp->dataKey ) );
TPtrC content ( reinterpret_cast<const TUint16*>(
- tmpdstitemp->content) );
+ tmpdstitemp->content) );
aType.Set(type);
aDataKey.Set(dataKey);
if ( !content.Compare( KWildCard ) )
{
- aContent.Set( iInstanceId->Des() );
+ aContent.Set(iInstanceId ? iInstanceId->Des(): KNullDesC() );
}
else
{
@@ -680,7 +677,7 @@
}
else
{
- if ( iIsPublisherActive )
+ if ( iWidgetForeground )
{
iCPSInterface->ExecuteCmdL( KAdd , *inParam, *outParam );
}
@@ -780,7 +777,7 @@
}
else
{
- if ( iIsPublisherActive )
+ if ( iWidgetForeground )
{
iCPSInterface->ExecuteCmdL( KAdd , *inParam, *outParam );
}
@@ -921,7 +918,7 @@
}
else
{
- if ( iIsPublisherActive )
+ if ( iWidgetForeground )
{
iCPSInterface->ExecuteCmdL( KAdd , *inParam, *outParam );
}
@@ -990,7 +987,7 @@
}
else
{
- if ( iIsPublisherActive )
+ if ( iWidgetForeground )
{
iCPSInterface->ExecuteCmdL( KAdd , *inParam, *outParam );
}
@@ -1076,17 +1073,18 @@
void CMusicContentPublisher::HandlePublisherNotificationL( const TDesC& aContentId, const TDesC8& aTrigger )
{
MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL <---");
- if ( aTrigger == KMyActive )
+ if ( aTrigger == KMyActive && !iWidgetActivated)
{
+ iWidgetActivated = ETrue;
MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL activate");
if ( !iInstanceId )
{
iInstanceId = aContentId.AllocL();
- //Reset The Widget
- MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL activate --> Reset Widget");
- RDebug::Print(aContentId);
+ //Reset The Widget
+ MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL activate --> Reset Widget");
+ RDebug::Print(aContentId);
PublishImageL(NULL,EMusicWidgetImage1,KEmpty);
- InstallGoToAlbumL( EMusicWidgetTrigger1 );
+ InstallGoToAlbumL( EMusicWidgetTrigger1 );
PublishTextL( NULL,EMusicWidgetText1, KEmpty );
PublishImageL(NULL,EMusicWidgetToolbarB1,KEmpty);
PublishImageL(NULL,EMusicWidgetToolbarB2,KEmpty);
@@ -1095,7 +1093,7 @@
InstallEmptyActionL(EMusicWidgetTB2Trigger);
InstallEmptyActionL(EMusicWidgetTB3Trigger);
PublishTextL( NULL,EMusicWidgetDefaultText, iGoToMusicBuffer->Des() );
- InstallGoToAlbumL( EMusicWidgetTrigger2 );
+ InstallGoToAlbumL( EMusicWidgetTrigger2 );
}
else
{
@@ -1104,8 +1102,9 @@
iInstanceId = aContentId.AllocL();
}
}
- else if ( aTrigger == KMyDeActive)
+ else if ( aTrigger == KMyDeActive && iWidgetActivated)
{
+ iWidgetActivated = EFalse;
MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL deactivate");
//Removing al the CPS entrys to prevent flicker of old text and unwanted images (old/expired handles).
RemoveL( EMusicWidgetImage1 );
@@ -1115,15 +1114,15 @@
RemoveL( EMusicWidgetToolbarB3 );
RemoveL( EMusicWidgetDefaultText );
}
- else if ( aTrigger == KMySuspend)
+ else if ( aTrigger == KMySuspend && iWidgetActivated && iWidgetForeground)
{
MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL suspend");
- iIsPublisherActive = EFalse;
+ iWidgetForeground = EFalse;
}
- else if ( aTrigger == KMyResume)
+ else if ( aTrigger == KMyResume && iWidgetActivated && !iWidgetForeground)
{
MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL resume");
- iIsPublisherActive = ETrue;
+ iWidgetForeground = ETrue;
DoPublishL();
}
MPX_DEBUG1("CMusicContentPublisher::HandlePublisherNotificationL --->");
--- a/musichomescreen_multiview/musicplayeractionhandlerplugin/src/musicplayeractionhandler.cpp Thu Jan 07 12:45:53 2010 +0200
+++ b/musichomescreen_multiview/musicplayeractionhandlerplugin/src/musicplayeractionhandler.cpp Mon Jan 18 20:18:06 2010 +0200
@@ -67,7 +67,7 @@
MPX_DEBUG1("-->CMusicPlayerActionHandler::ConstructL()");
//iPlaybackUtility = MMPXPlaybackUtility::UtilityL( KPbModeActivePlayer );
- iPlaybackUtility = MMPXPlaybackUtility::NewL( KMusicPlayerAppUid);
+ //iPlaybackUtility = MMPXPlaybackUtility::NewL( KMusicPlayerAppUid);
MPX_DEBUG1("<--CMusicPlayerActionHandler::ConstructL()");
}
@@ -122,6 +122,10 @@
errCode = ExtractVariantL( aMap, variant, KCommand );
if ( errCode == KErrNone )
{
+ if ( !iPlaybackUtility ) // Ensure that the utility exists
+ {
+ iPlaybackUtility = MMPXPlaybackUtility::NewL( KMusicPlayerAppUid);
+ }
TMPXPlaybackCommand Command;
Command = static_cast<TMPXPlaybackCommand>( variant.AsTInt32() );
iPlaybackUtility->CommandL( Command );
--- a/musicplayer_plat/mpx_music_shop_ui_api/inc/MMusicShopBrViewCallback.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musicplayer_plat/mpx_music_shop_ui_api/inc/MMusicShopBrViewCallback.h Mon Jan 18 20:18:06 2010 +0200
@@ -33,13 +33,7 @@
*/
class MMusicShopBrViewCallback
{
- public:
- enum TMusDownloadControlCommandId
- {
- EPauseDownload = 0x01, // pause
- EResumeDownload, // resume
- ECancelDownload // cancel
- };
+
/**
* Activate the MusicShop application view based on view id
*
@@ -50,13 +44,6 @@
*/
virtual void ActivateMusicShopViewL (TUid aViewId) = 0;
- /**
- * Handle pause/resume/cancel download related commands from Music Player playback view.
- *
- * @since S60 3.2.3
- * @param aControlDownloadCommandId pause/resume/cancel download command id.
- */
- virtual void HandleDownloadCommandL ( TMusDownloadControlCommandId aControlDownloadCommandId ) = 0;
};
#endif //M_MUSICSHOP_BR_VIEW_CALLBACK_H
--- a/musicplayer_plat/mpx_music_shop_ui_api/inc/MusicShopExternalInterface.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musicplayer_plat/mpx_music_shop_ui_api/inc/MusicShopExternalInterface.h Mon Jan 18 20:18:06 2010 +0200
@@ -36,7 +36,14 @@
{
public: // member variable
TBuf<KMaxUrlLength> iUrl;
+#if 1 // __ALR_MUSICSHOP_SUPPORT
+ TUint iConnectionMode;
+ TUint iConnection;
+ TUint iConfirmCellUsage;
+ TUint iConfirmRoaming;
+#else
TUint iDefaultAccessPoint;
+#endif // __ALR_MUSICSHOP_SUPPORT
TInt iRskId;
};
--- a/musicplayer_plat/mpx_music_store_api/inc/MusicStoreUidConstants.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musicplayer_plat/mpx_music_store_api/inc/MusicStoreUidConstants.h Mon Jan 18 20:18:06 2010 +0200
@@ -22,8 +22,8 @@
#define MUSICSTOREAPPUIDCONST_H
// Music Shop Wrapper (or Music Store)
-// use by Music Player for the "Find in Music Shop"
-const TUid KUidMusicStore = { 0x10207BF5 }; // UID used in MusicStoreApp.cpp
+// use by Music Player for the "Find in Music Shop"
+const TUid KUidMusicStore = { 0x101FFB51 }; // UID used in MusicStoreApp.cpp
#endif // MUSICSTOREAPPUIDCONST_H
--- a/musicplayer_plat/mpx_music_store_api/inc/mpxfindinmusicshop.inl Thu Jan 07 12:45:53 2010 +0200
+++ b/musicplayer_plat/mpx_music_store_api/inc/mpxfindinmusicshop.inl Mon Jan 18 20:18:06 2010 +0200
@@ -48,20 +48,23 @@
CMPXFindInMShop* imp = NULL;
RImplInfoPtrArray plugins;
REComSession::ListImplementationsL( KSchemeHandlerDefinitionUid, plugins );
- TInt err = KErrNotFound;
+
+ TInt latestVersion(KErrNotFound);
+ TInt current_version(0);
+ // Find largest version number from the plugins
for( TInt i=0; i<plugins.Count(); ++i )
{
CImplementationInformation* info = plugins[i];
- if( info->RomBased() )
+ current_version = info->Version();
+ if ( current_version > latestVersion )
{
- err = KErrNone;
- TUid uid = info->ImplementationUid();
+ latestVersion = current_version;
+ TUid uid = info->ImplementationUid();
imp = reinterpret_cast<CMPXFindInMShop*>
- ( REComSession::CreateImplementationL( uid, _FOFF( CMPXFindInMShop, iDtorKey ) ) );
- break;
+ ( REComSession::CreateImplementationL( uid, _FOFF( CMPXFindInMShop, iDtorKey ) ) );
}
}
- User::LeaveIfError( err );
+
plugins.ResetAndDestroy();
plugins.Close();
return imp;
--- a/musicplayer_plat/mpx_music_wap_adapter_cenrep_api/inc/MusicWapCenRepKeys.h Thu Jan 07 12:45:53 2010 +0200
+++ b/musicplayer_plat/mpx_music_wap_adapter_cenrep_api/inc/MusicWapCenRepKeys.h Mon Jan 18 20:18:06 2010 +0200
@@ -21,7 +21,7 @@
#define MUSICWAPADAPTERCRKEYS_H
// CenRep UID for Music Store
-const TUid KCRUidMusicShopSettings = {0x10207BF5};
+const TUid KCRUidMusicShopSettings = {0x101FFB51};
const TUint32 KMusicShopToProxy = 0x00000001;
const TUint32 KMusicShopBookmarkName = 0x00000002;
@@ -30,17 +30,48 @@
const TUint32 KMusicShopAuthName = 0x00000005;
const TUint32 KMusicShopAuthSecret = 0x00000006;
const TUint32 KMusicShopSearchURI = 0x00000007;
+#if 0 // NO __ALR_MUSICSHOP_SUPPORT
const TUint32 KMusicShopIAP = 0x00000008;
+#endif // NO __ALR_MUSICSHOP_SUPPORT
const TUint32 KMusicShopFeatureFlagSupport = 0x00000009;
const TUint32 KMusicShopAppWrapperSupport = 0x0000000A;
+#if 0 // NO __ALR_MUSICSHOP_SUPPORT
const TUint32 KMusicShopAlwaysAsk = 0x0000000B;
+#endif // NO __ALR_MUSICSHOP_SUPPORT
const TUint32 KMusicShopHideSetting = 0x0000000C;
const TUint32 KMusicShopVersion = 0x0000000D;
+#if 1 // __ALR_MUSICSHOP_SUPPORT
+const TUint32 KMusicShopConnectionMode = 0x0000000E;
+const TUint32 KMusicShopConnectionId = 0x0000000F;
+const TUint32 KMusicShopConfirmCellUsage = 0x00000010;
+const TUint32 KMusicShopConfirmRoaming = 0x00000011;
+#endif // __ALR_MUSICSHOP_SUPPORT
+// Feature flag for Nokia Music Services
+const TUint32 KMusicServiceFeatureFlagSupport = 0x00000012;
+// Feature flag for Nokia Music Services (3-item toolbar)
+const TUint32 KMusicShopHomeLink = 0x000000013;
+const TUint32 KMusicShopAccountLink = 0x000000014;
+// Feature flag for OTA Streaming and download with WLAN AP only
+const TUint32 KMusicShopOtaWlanOnly = 0x000000015;
+//
+// Bit definitions for KMusicShopFeatureFlagSupport
+//
+const TUint32 KSupportRTSP = 0x00000001;
+const TUint32 KSupportWLan = 0x00000002;
+const TUint32 KSupportMusicShopWrapper = 0x00000004;
+const TUint32 KSupportMusicShopSettings = 0x00000008;
+const TUint32 KSupportMusicShopDownloadUi = 0x00000010;
-#define KSupportRTSP 0x00000001;
-#define KSupportWLan 0x00000002;
-#define KSupportMusicShopWrapper 0x00000004;
-#define KSupportMusicShopSettings 0x00000008;
+//
+// Bit definitions for KMusicServiceFeatureFlagSupport
+// This is the capability of Music Store client on device.
+// Must agree with Music Servie on the scheme when adding new
+// feature on device.
+//
+const TUint32 KSupportCwnIMEISending = 0x00000001;
+const TUint32 KSupportHTTPStreaming = 0x00000002;
+const TUint32 KSupportOmaDownloadDescriptor = 0x00000004;
+const TUint32 KSupportMusicShopRedirection = 0x00000008;
#endif // MUSICWAPADAPTERCRKEYS_H