# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1263838686 -7200 # Node ID b70d77332e66206eda8b0ca0b98038d9628aad91 # Parent 8118492f1bdf12e0da49ffe595537dcc23b4339c Revision: 201001 Kit: 201003 diff -r 8118492f1bdf -r b70d77332e66 mpxmusicplayer/app/src/mpxappui.cpp --- 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; diff -r 8118492f1bdf -r b70d77332e66 mpxmusicplayer/commonui/src/mpxalbumartutil.cpp --- 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) { diff -r 8118492f1bdf -r b70d77332e66 mpxmusicplayer/commonui/src/mpxdrmuihelper.cpp --- 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; } // ---------------------------------------------------------------------------- diff -r 8118492f1bdf -r b70d77332e66 mpxmusicplayer/commonui/src/mpximageutil.cpp --- 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; } diff -r 8118492f1bdf -r b70d77332e66 mpxmusicplayer/help/inc/mus.hlp.hrh --- 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. diff -r 8118492f1bdf -r b70d77332e66 mpxmusicplayer/mediakeyhandler/src/mpxmediakeyhandlerimp.cpp --- 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 ); } } } diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbartist.cpp --- 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(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(KMPXMediaGeneralCount, songCount); // mod by anjokela MPX_DEBUG1(" EMPXMediaGeneralCount"); diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbhandler.cpp --- 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); diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbhgplugin/src/mpxdbplugin.cpp --- 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(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 diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/src/mpxdbartist.cpp --- 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(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(KMPXMediaGeneralCount, songCount); // mod by anjokela MPX_DEBUG1(" EMPXMediaGeneralCount"); diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/serviceplugins/collectionplugins/mpxsqlitedbplugin/src/mpxdbhandler.cpp --- 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); diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/serviceplugins/playbackplugins/progressdownloadsb/src/mpxprogressdownloadsb.cpp --- 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; } diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/inc/mpxcommonplaybackviewimp.h --- 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; diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/addtracksdialog/src/mpxaddtracksdialog.cpp --- 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( iListBox->Model() ); - CAknSearchField* tempSearchField = - static_cast( 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( 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( 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( iListBox->Model() ); + lbxModel->Filter()->SetSearchField( findBox );// for laylout of list + + TRect mainPane; + AknLayoutUtils::LayoutMetricsRect( AknLayoutUtils::EMainPane, mainPane ); + SetSizeAndPosition( mainPane.Size() ); } if ( aType == KAknsMessageSkinChange ) diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp --- 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; diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h --- 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 diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp --- 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 ( 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(KMPXMediaGeneralId); - + iRestoredAlbumIndex = 0; + iSelectedAlbumIndex = 0; + for ( TInt i = 0; i < aMediaArray.Count() ; i++ ) { CMPXMedia* currentMedia( aMediaArray.AtL( i ) ); if ( (currentMedia->ValueTObjectL( 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(KMPXMediaGeneralId); - if ( id.iId1 == 0 ) - { - aMedia->SetTObjectValueL(KMPXMediaGeneralId, KMPXInvalidItemId ); - } } void CMPXCollectionViewHgContainer::HandleGainingForeground() diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp --- 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 #include #include -#include +#include #include #include #include @@ -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( 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( 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( 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( 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( 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( 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( - KMPXMediaGeneralCategory ); - if ( category == EMPXSong ) + + TMPXGeneralCategory mediaCategory( currentMedia.ValueTObjectL( KMPXMediaGeneralCategory )); + + const CMPXMedia& containerMedia = listboxArray->ContainerMedia(); + + TMPXGeneralType containerType( EMPXNoType ); + if ( containerMedia.IsSupported( KMPXMediaGeneralType ) ) + { + containerType = containerMedia.ValueTObjectL( KMPXMediaGeneralType ); + } + + TMPXGeneralCategory containerCategory( EMPXNoCategory ); + if ( containerMedia.IsSupported( KMPXMediaGeneralCategory ) ) + { + containerCategory = containerMedia.ValueTObjectL( 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( - KMPXMediaGeneralCategory ) ); if ( containerCategory == EMPXArtist ) { // artist/album level, need to specify artist ID in container ID @@ -5306,8 +5353,7 @@ criteria->SetTObjectValueL( KMPXMediaGeneralContainerId, containerId ); } - const CMPXMedia& currentMedia = listboxArray->MediaL( - iContainer->CurrentLbxItemIndex() ); + TMPXItemId id( currentMedia.ValueTObjectL( KMPXMediaGeneralId ) ); criteria->SetTObjectValueL( @@ -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( 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 ) diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp --- 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(); diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp --- 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 ); } // ----------------------------------------------------------------------------- diff -r 8118492f1bdf -r b70d77332e66 mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewimp.cpp --- 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 ); diff -r 8118492f1bdf -r b70d77332e66 musichomescreen/mcpmusicplayer/inc/applicationmonitor.h --- 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 diff -r 8118492f1bdf -r b70d77332e66 musichomescreen/mcpmusicplayer/src/applicationmonitor.cpp --- 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; } diff -r 8118492f1bdf -r b70d77332e66 musichomescreen/mcpmusicplayer/src/mcpmusicplayer.cpp --- 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(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(aPtr)->iActive = EFalse; TRAP_IGNORE( static_cast(aPtr)->ResetL() ); } static_cast(aPtr)->iMusicPlayerOpeningTimer->Cancel(); diff -r 8118492f1bdf -r b70d77332e66 musichomescreen/musicplayeractionhandlerplugin/inc/musicplayeractionhandler.h --- 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 +#include // 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 /** diff -r 8118492f1bdf -r b70d77332e66 musichomescreen/musicplayeractionhandlerplugin/src/musicplayeractionhandler.cpp --- 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 // KMPXPluginTypePlaybackUid #include // CAknTaskList +#include #include #include #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( 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( KMPXCommandGeneralId, KMPXCommandIdPlaybackGeneral ); + cmd->SetTObjectValueL( KMPXCommandGeneralDoSync, ETrue ); + cmd->SetTObjectValueL( KMPXCommandPlaybackGeneralType, aCommand ); + cmd->SetTObjectValueL( KMPXCommandPlaybackGeneralData, 0 ); + if ( mpProcId ) + { + //This attribute will be used by playbckEngine->iLastActiveProcess + cmd->SetTObjectValueL ( KMPXCommandPlaybackGeneralClientPid, mpProcId ); + } + iPlaybackUtility->CommandL( *cmd ); + CleanupStack::PopAndDestroy( cmd ); + MPX_DEBUG1("<--CMusicPlayerActionHandler::SetPlaybackCommandL()"); + } // End of File diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/data/themes/default/install/musicwidget_10207c18/hsps/00/manifest.dat --- 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 @@ 1.0 &qtn_musicwidget_configuration_desc; - SKIN(270501603 8633): mif(musicwidgeticon.mif 16384 16385) + SKIN(270501603 8633):mif(musicwidgeticon.mif 16384 16385) diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/mcpmusicplayer/inc/applicationmonitor.h --- 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 diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/mcpmusicplayer/src/applicationmonitor.cpp --- 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; } diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/mcpmusicplayer/src/mcpmusicplayer.cpp --- 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); diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/musiccontentpublisher/inc/musiccontentpublisher.h --- 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; diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/musiccontentpublisher/src/musiccontentpublisher.cpp --- 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( tmpdstitemp->dataKey ) ); TPtrC content ( reinterpret_cast( - 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 --->"); diff -r 8118492f1bdf -r b70d77332e66 musichomescreen_multiview/musicplayeractionhandlerplugin/src/musicplayeractionhandler.cpp --- 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( variant.AsTInt32() ); iPlaybackUtility->CommandL( Command ); diff -r 8118492f1bdf -r b70d77332e66 musicplayer_plat/mpx_music_shop_ui_api/inc/MMusicShopBrViewCallback.h --- 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 diff -r 8118492f1bdf -r b70d77332e66 musicplayer_plat/mpx_music_shop_ui_api/inc/MusicShopExternalInterface.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 iUrl; +#if 1 // __ALR_MUSICSHOP_SUPPORT + TUint iConnectionMode; + TUint iConnection; + TUint iConfirmCellUsage; + TUint iConfirmRoaming; +#else TUint iDefaultAccessPoint; +#endif // __ALR_MUSICSHOP_SUPPORT TInt iRskId; }; diff -r 8118492f1bdf -r b70d77332e66 musicplayer_plat/mpx_music_store_api/inc/MusicStoreUidConstants.h --- 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 diff -r 8118492f1bdf -r b70d77332e66 musicplayer_plat/mpx_music_store_api/inc/mpxfindinmusicshop.inl --- 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; iRomBased() ) + current_version = info->Version(); + if ( current_version > latestVersion ) { - err = KErrNone; - TUid uid = info->ImplementationUid(); + latestVersion = current_version; + TUid uid = info->ImplementationUid(); imp = reinterpret_cast - ( REComSession::CreateImplementationL( uid, _FOFF( CMPXFindInMShop, iDtorKey ) ) ); - break; + ( REComSession::CreateImplementationL( uid, _FOFF( CMPXFindInMShop, iDtorKey ) ) ); } } - User::LeaveIfError( err ); + plugins.ResetAndDestroy(); plugins.Close(); return imp; diff -r 8118492f1bdf -r b70d77332e66 musicplayer_plat/mpx_music_wap_adapter_cenrep_api/inc/MusicWapCenRepKeys.h --- 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