Revision: 20051
authorDremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
Thu, 07 Jan 2010 12:45:53 +0200
changeset 1 8118492f1bdf
parent 0 ff3acec5bc43
child 2 b70d77332e66
Revision: 20051 Kit: 201001
mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/inc/mpxpodcastdbpluginqueries.h
mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp
mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp
mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgcontainer.h
mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h
mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp
mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp
mpxplugins/viewplugins/views/commonplaybackview/bwinscw/mpxcommonplaybackviewU.DEF
mpxplugins/viewplugins/views/commonplaybackview/eabi/mpxcommonplaybackviewU.DEF
mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewcontainer.cpp
mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp
mpxplugins/viewplugins/views/commonplaybackview/src/mpxplaybackviewinfolabel.cpp
mpxplugins/viewplugins/views/inc/mpxcbahandler.h
mpxplugins/viewplugins/views/inc/mpxcommonplaybackviewcontainer.h
mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp
mpxplugins/viewplugins/views/pdplaybackview/inc/mpxpdplaybackviewcontainer.h
mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewcontainer.cpp
mpxplugins/viewplugins/views/pdsbplaybackview/inc/mpxpdsbplaybackviewcontainer.h
mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewcontainer.cpp
mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewimp.cpp
mpxplugins/viewplugins/views/upnpplaybackdialog/inc/mpxupnpplaybackdialogcustomcontrol.h
mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialogcustomcontrol.cpp
mpxplugins/viewplugins/views/upnpplaybackview/inc/mpxupnpplaybackviewcontainer.h
mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewcontainer.cpp
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/inc/mpxpodcastdbpluginqueries.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/inc/mpxpodcastdbpluginqueries.h	Thu Jan 07 12:45:53 2010 +0200
@@ -66,7 +66,7 @@
 _LIT(KQueryPodcastCleanup, "DELETE FROM :dbname.Podcast WHERE Deleted=1");
 
 _LIT(KQueryPodcastGetTitle, "SELECT Title FROM :dbname.Podcast WHERE Deleted=0 AND UniqueId=%u");
-_LIT(KQueryPodcastVolume, "SELECT VolumeId FROM :dbname.Podcast WHERE Deleted=0 AND UniqueId=%u");
+_LIT(KQueryPodcastVolume, "SELECT VolumeId FROM :dbname.Podcast WHERE UniqueId=%u");
 _LIT(KQueryPodcastAllVolumeIds, "SELECT VolumeId FROM :dbname.Podcast WHERE Deleted=0");
 
 // LTAN-79N8ND/EVXG-7FABHC: temporary fix.  Symbian 9.4 SQLite cannot resolve column number correctly,
@@ -94,7 +94,7 @@
 //       optimized query is faster by more than 100ms.
 
 // categories included
-_LIT(KQueryPodcastGetEpisode, "SELECT Podcast.*,Artist.Name,Album.Name,Genre.Name,Composer.Name FROM :dbname.Podcast,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer WHERE Podcast.Deleted=0 AND Podcast.UniqueId=%u AND Podcast.Album=Album.UniqueId AND Podcast.Artist=Artist.UniqueId AND Podcast.Genre=Genre.UniqueId AND Podcast.Composer=Composer.UniqueId");
+_LIT(KQueryPodcastGetEpisode, "SELECT Podcast.*,Artist.Name,Album.Name,Genre.Name,Composer.Name FROM :dbname.Podcast,:dbname.Artist,:dbname.Album,:dbname.Genre,:dbname.Composer WHERE Podcast.UniqueId=%u AND Podcast.Album=Album.UniqueId AND Podcast.Artist=Artist.UniqueId AND Podcast.Genre=Genre.UniqueId AND Podcast.Composer=Composer.UniqueId");
 
 // LTAN-79N8ND/EVXG-7FABHC: temporary fix.  Symbian 9.4 SQLite cannot resolve column number correctly,
 // Use column number instead of column name for ORDER BY, needed when FROM uses more than 1 table
--- a/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/serviceplugins/collectionplugins/mpxsqlitepodcastdbplugin/src/mpxdbpodcast.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -134,15 +134,25 @@
 
     TUint32 episodeId(MPXDbCommonUtil::GenerateUniqueIdL(iDbManager.Fs(), EMPXCollection,
         aMedia.ValueText(KMPXMediaGeneralUri), EFalse));
-    if (EpisodeExistsL(episodeId))
+    if ( EpisodeExistsL( episodeId ))
         {
-        DoUpdateEpisodeL(episodeId, aMedia, NULL);
+        // Return deleted file paths to caller
+        CDesCArray* fp = new( ELeave ) CDesCArrayFlat( 1 );
+        CleanupStack::PushL( fp );
+
+        // a list of change event messages a result of the item being removed
+        CMPXMessageArray* itemChangedMessages = CMPXMediaArray::NewL();
+        CleanupStack::PushL( itemChangedMessages );
+        
+        DeleteEpisodeL( episodeId, *fp, *itemChangedMessages, ETrue );
+        
+        CleanupStack::PopAndDestroy( itemChangedMessages );
+        CleanupStack::PopAndDestroy( fp );
         }
-    else
-        {
-        // add the song
-        DoAddEpisodeL(episodeId, aMedia, aDrive, NULL);
-        }
+    // add the song
+    DoAddEpisodeL(episodeId, aMedia, aDrive, NULL);
+
+    
 
     return episodeId;
     }
--- a/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/collectionview/src/mpxcollectionviewimp.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -3863,7 +3863,7 @@
                                 EMPXUSBUnblockingPSStatusActive );
 				}
             
-            if ( iIsEmbedded && type == EMcMsgUSBMassStorageEnd )
+            if ( iContainer && iIsEmbedded && type == EMcMsgUSBMassStorageEnd )
             	{
             	DoIncrementalOpenL();
             	}
--- a/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgcontainer.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgcontainer.h	Thu Jan 07 12:45:53 2010 +0200
@@ -52,6 +52,7 @@
 class MMPXPlaybackUtility;
 class MMpxCbaHandler;
 class TAknsItemID;
+class CAsyncOneShot;
 
 // CLASS DECLARATION
 
@@ -70,6 +71,7 @@
     , public MMPXCollectionFindObserver
     , public MHgVgMediaWallObserver
     , public MMpxTNLoaderObserver
+    , public MCoeForegroundObserver
 	{
 public:
 
@@ -448,6 +450,9 @@
 
     TTypeUid::Ptr MopSupplyObject(TTypeUid aId);
 
+    void HandleGainingForeground();
+    
+    void HandleLosingForeground();
 
 // from base class MCoeControlObserver
 
@@ -538,6 +543,13 @@
 	
 	CMPXMedia* SelectedItemMediaL();
 	
+	/**
+     * Determines if current view is TBoneview
+     *
+     * @return ETrue if current view is TBoneview, EFalse otherwise
+     */
+	TBool IsTBoneView();
+	
 private:
 
     /**
@@ -686,6 +698,8 @@
     void PlayPlaylistL(TInt aIndex);
     void PlayGenreL(TInt aIndex);
 
+    static TInt AsyncCallback( TAny* aPtr );
+    
 private: // data member
 
     /**
@@ -803,7 +817,9 @@
     TViewType iCurrentViewType;
     TViewType iPrevViewType;
     TFindOp iFindOp;
-
+    TBool iIsForeground;
+    TBool iDelayedControlCreation;
+    CAsyncCallBack* iAsyncCallBack;
     };
 
 #endif  // CMPXCOLLECTIONVIEWHGCONTAINER_H
--- a/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/inc/mpxcollectionviewhgimp.h	Thu Jan 07 12:45:53 2010 +0200
@@ -130,6 +130,13 @@
      *
      */
     void DeleteSelectedItemsL(TInt aCommand);
+    
+	/**
+     * Delete the selected items in TBone view
+     * @param aCommand the command that triggered the deletion
+     *
+     */
+    void DeleteSelectedTBoneItemsL( TInt aCommand );
 
     /**
      * Updates list box
@@ -368,6 +375,11 @@
      * Handle send command
      */
     void DoSendL();
+   
+   /**
+     * Handle send command in TBone view
+     */
+    void DoSendTBoneListItemL( TMPXItemId aContainerId );
 
     /**
      * Handle send playlist command
@@ -825,6 +837,8 @@
 
  	void ChangeCbaVisibility( TBool aVisible );
 
+ 	void UpdateCba();
+ 	
     void HandleInitMusicMenuPaneL(CEikMenuPane* aMenuPane );
 
     void OpenAllSongsL();
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgcontainer.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -199,6 +199,14 @@
 
     delete iPlaylist;
     delete iPlaylistHelper;
+
+    if( iAsyncCallBack )
+        {
+        iAsyncCallBack->Cancel();
+        }
+    delete iAsyncCallBack;
+
+    iCoeEnv->RemoveForegroundObserver( *this );
     }
 
 // ---------------------------------------------------------------------------
@@ -253,11 +261,15 @@
 
     CreateIconArrayL();
 
+    iIsForeground = ETrue;
+    iCoeEnv->AddForegroundObserverL( *this );
+
+    TCallBack callback(CMPXCollectionViewHgContainer::AsyncCallback, this);
+    iAsyncCallBack = new (ELeave) CAsyncCallBack( CActive::EPriorityStandard );
+    iAsyncCallBack->Set(callback);
+
     CreateWindowL();
     ActivateL();
-    DrawableWindow()->SetPointerCapture( RWindowBase::TCaptureDisabled );
-    SetPointerCapture( EFalse );
-    CapturesPointer();
     }
 
 // -----------------------------------------------------------------------------
@@ -714,13 +726,27 @@
             }
         else if ( aType == KEikDynamicLayoutVariantSwitch )
             {
+            if( iCurrentViewType == EMPXViewTBone )
+                {
+				iCollectionUtility->Collection().BackL();
+                }
+            else
+                {
+                // Coe env is in middle if notifying observers (controls).
+                // Just to be save, lets just create a small async callback and then
+                // call HandleLbxItemAdditionL
+                if( !iAsyncCallBack->IsActive() )
+                    {
+                    iAsyncCallBack->CallBack();
+                    }
+                }
+
+            if( iCbaHandler )
+                iCbaHandler->UpdateCba();
+
             TRect clientRect = ((CAknView*)iView)->ClientRect();
-
+            SetRect( clientRect );
             iBgContext->SetRect(((CAknAppUi*)iCoeEnv->AppUi())->ApplicationRect());
-
-            // In current design we switch to different type of control in
-            // all orientation switches.
-            HandleLbxItemAdditionL();
             }
         );
     }
@@ -1085,7 +1111,7 @@
 
     CHgScroller* list = CurrentListWidget();
 
-    if( list )
+    if( list && aIndex < list->ItemCount() )
         {
         CHgItem* item = &list->ItemL(aIndex);
         SetDetailIndicatorL(item, aIndex);
@@ -1361,9 +1387,9 @@
 //
 void CMPXCollectionViewHgContainer::ResizeListL(const CMPXMediaArray& aMediaArray, TInt aCount)
     {
-    TRect clientRect = ((CAknView*)iView)->ClientRect();
     if( iListWidget )
         {
+        TRect clientRect = ((CAknView*)iView)->ClientRect();
         TInt index = iListWidget->SelectedIndex();
         iListWidget->InitScreenL( clientRect );
         iListWidget->Reset();
@@ -1380,14 +1406,18 @@
         }
     else if( iMediaWall )
         {
-        TInt index = iMediaWall->SelectedIndex();
-        iMediaWall->InitScreenL( clientRect );
+        // In case of mediawall components we switch to different view type if orientation changes
+        // so there is no need to set new client rect for mediawall.
+
         iMediaWall->Reset();
         if ( aCount )
             {
             iMediaWall->ResizeL( aCount );
             ProvideDataWithoutThumbnailsMwL(aMediaArray);
-            iMediaWall->SetSelectedIndex( CurrentLbxItemIndex() );
+            TInt index = CurrentLbxItemIndex();
+            index = index >= 0 ? index : 0;
+            iMediaWall->SetSelectedIndex( index );
+            OpenAlbumL( index );
             }
         else
             {
@@ -1468,6 +1498,14 @@
     TRect mediaWallRect = TRect(clientRect.iTl, TPoint(clientRect.iBr.iX, 250));
     TRect mwListRect = TRect(TPoint(clientRect.iTl.iX, 250), clientRect.iBr);
 
+    if( iMediaWall )
+        {
+        delete iMediaWall;
+        iMediaWall = 0;
+        delete iMwListWidget;
+        iMwListWidget = 0;
+        }
+
     if ( !iMediaWall )
 		{
 		iMediaWall = CHgVgMediaWall::NewL (
@@ -1478,6 +1516,9 @@
 				this,
 				DefaultIconL() );
 
+		if( !iIsForeground )
+		    iMediaWall->HandleLosingForeground();
+
 		iMediaWall->SetMopParent(this);
 		iMediaWall->EnableScrollBufferL(*this, KMPXListBufferSizeWithMediaWall, KMPXListBufferSizeWithMediaWall/4);
         iMediaWall->SetSelectionObserver(*this);
@@ -1541,6 +1582,14 @@
 	((CAknAppUi*)iCoeEnv->AppUi())->StatusPane()->MakeVisible(EFalse);
 	iThumbnailManager->SetSizeL( EAudioFullScreenThumbnailSize );
 
+    if( iMediaWall )
+        {
+        delete iMediaWall;
+        iMediaWall = 0;
+        delete iMwListWidget;
+        iMwListWidget = 0;
+        }
+
 	if (!iMediaWall)
 	    {
         iMediaWall = CHgVgMediaWall::NewL(
@@ -1550,6 +1599,10 @@
                 ETrue,
                 this,
                 DefaultIconL() );
+
+        if( !iIsForeground )
+            iMediaWall->HandleLosingForeground();
+
         iMediaWall->SetMopParent(this);
         iMediaWall->SetSelectionObserver(*this);
         iMediaWall->SetObserver( this ); // softkey visibility event observer
@@ -1586,7 +1639,6 @@
             iMediaWall->SetSelectedIndex( iAlbumIndex );
 
         iMediaWall->DrawDeferred();
-	    iMediaWall->RefreshScreen(0);
 	    }
 
 	iDefaultIconSet = ETrue;
@@ -1642,6 +1694,19 @@
     }
 
 // ----------------------------------------------------------------------------
+// Check if the current view is TBoneView.
+// ----------------------------------------------------------------------------
+TBool CMPXCollectionViewHgContainer::IsTBoneView()
+    {
+    TBool tBoneView = EFalse;
+    
+    if( EMPXViewTBone == iCurrentViewType )
+        tBoneView = ETrue;
+    
+    return tBoneView;
+    }
+	
+// ----------------------------------------------------------------------------
 // Resolve the current view type based on the browsing context
 // ----------------------------------------------------------------------------
 void CMPXCollectionViewHgContainer::ResolveCurrentViewType()
@@ -1686,25 +1751,28 @@
         {
         case EMPXViewCoverFlow:
             {
-            iMediaWall->MakeVisible( EFalse );
-            iMediaWall->SetFocus( EFalse );
-            iMediaWall->DisableScrollBuffer();
+            if( iCurrentViewType != EMPXViewTBone )
+                {
+                delete iMediaWall;
+                iMediaWall = 0;
+                }
             break;
             }
         case EMPXViewTBone:
             {
-            iMediaWall->MakeVisible( EFalse );
-            iMediaWall->DisableScrollBuffer();
-            iMwListWidget->MakeVisible( EFalse );
-            iMwListWidget->Reset();
+            if( iCurrentViewType != EMPXViewCoverFlow )
+                {
+                delete iMediaWall;
+                iMediaWall = 0;
+                }
+            delete iMwListWidget;
+            iMwListWidget = 0;
             break;
             }
         case EMPXViewList:
             {
-            iListWidget->MakeVisible( EFalse );
-            iListWidget->SetFocus( EFalse );
-            iListWidget->DisableScrollBuffer();
-            iListWidget->Reset();
+            delete iListWidget;
+            iListWidget = 0;
             break;
             }
         default:
@@ -1721,7 +1789,7 @@
     MPX_FUNC( "CMPXCollectionViewHgContainer::IsSelectedItemASong" );
 
 	TBool res(EFalse);
-    if ( iContext == EContextItemAlbum  )
+    if ( iContext == EContextItemAlbum || iContext == EContextGroupSong )
         {
     	CHgScroller* listWidget = CurrentListWidget();
 		if ( listWidget->SelectedIndex() == 0 &&
@@ -1752,7 +1820,14 @@
     CHgScroller* listWidget = CurrentListWidget();
     if (listWidget && songs)
         {
-        song = songs->AtL(listWidget->SelectedIndex());
+        if (listWidget->ItemCount() > 1)
+            {
+            song = songs->AtL(listWidget->SelectedIndex()-1);
+            }
+        else
+            {
+            song = songs->AtL(listWidget->SelectedIndex());
+            }
         }
     return song;
     }
@@ -1766,25 +1841,43 @@
     {
     MPX_FUNC( "CMPXCollectionViewHgContainer::HandleItemCommanddL" );
 
-    if ( iContext == EContextGroupAlbum && aCommand == EMPXCmdPlay )
-        {
-    	CHgScroller* listWidget = CurrentListWidget();
-		iSelectedAlbumIndex = listWidget->SelectedIndex();
-        SaveSelectedAlbumItemL(iSelectedAlbumIndex);
-		// Open first song of album & playlist for entire album is created.
-		PlayAlbumL(iSelectedAlbumIndex);
-        }
-    else if ( iContext == EContextGroupPlaylist && aCommand == EMPXCmdPlay )
+    if( aCommand == EMPXCmdPlay )
         {
-    	CHgScroller* listWidget = CurrentListWidget();
-		TInt index = listWidget->SelectedIndex();
-		PlayPlaylistL(index);
-        }
-    else if ( iContext == EContextGroupGenre && aCommand == EMPXCmdPlay )
-        {
-        CHgScroller* listWidget = CurrentListWidget();
-        TInt index = listWidget->SelectedIndex();
-        PlayGenreL(index);
+        switch( iCurrentViewType )
+            {
+            case EMPXViewCoverFlow:
+            case EMPXViewTBone:
+                {
+                iSelectedAlbumIndex = iMediaWall->SelectedIndex();
+                SaveSelectedAlbumItemL(iSelectedAlbumIndex);
+                // Open first song of album & playlist for entire album is created.
+                UpdatePathAndOpenL(0, ETrue);
+                break;
+                }
+            case EMPXViewList:
+                {
+                if ( iContext == EContextGroupAlbum  )
+                    {
+                    iSelectedAlbumIndex = iListWidget->SelectedIndex();
+                    SaveSelectedAlbumItemL(iSelectedAlbumIndex);
+                    // Open first song of album & playlist for entire album is created.
+                    PlayAlbumL(iSelectedAlbumIndex);
+                    }
+                else if ( iContext == EContextGroupPlaylist  )
+                    {
+                    TInt index = iListWidget->SelectedIndex();
+                    PlayPlaylistL(index);
+                    }
+                else if ( iContext == EContextGroupGenre  )
+                    {
+                    TInt index = iListWidget->SelectedIndex();
+                    PlayGenreL(index);
+                    }
+                break;
+                }
+            default:
+                break;
+            }
         }
     }
 
@@ -2225,6 +2318,11 @@
 //
 void CMPXCollectionViewHgContainer::RefreshL(TInt aIndex)
     {
+    if( !iIsForeground )
+        {
+        return;
+        }
+
     MPX_FUNC( "CMPXCollectionViewHgContainer::Refresh" );
 
 	TInt mediaCount = iListBoxArray->MediaArray().Count();
@@ -2435,6 +2533,10 @@
 		{
 		iListWidget->SetDefaultIconL(iconCopy);
 		}
+	else
+		{
+		delete iconCopy;
+		}
 	iCurrentDefaultIcon = defaultIcon;
 	}
 
@@ -2502,6 +2604,10 @@
 		{
         iListWidget->ItemL(aIndex).SetIcon(iconCopy);
 		}
+	else
+		{
+		delete iconCopy;
+		}
 	}
 
 
@@ -4045,8 +4151,11 @@
     CAknPopupList* dialog = CAknPopupList::NewL(listBox, R_MPX_COLLECTION_ALBUMSONGS_LIST_CBA,
             AknPopupLayouts::EDynMenuWindow );
 
+	CleanupStack::PushL( dialog );
+
     listBox->ConstructL( dialog,
             EAknListBoxSelectionList | EAknListBoxScrollBarSizeExcluded  );
+	CleanupStack::Pop( dialog );
 
     listBox->CreateScrollBarFrameL( ETrue );
     listBox->ScrollBarFrame()->SetScrollBarVisibilityL( CEikScrollBarFrame::EOff,
@@ -4071,6 +4180,7 @@
 
     if ( songCount > 1 )
         {
+		// Todo: Use localized string.
         songList->AppendL( _L("Shuffle All") );
         }
 
@@ -4251,7 +4361,8 @@
         {
         CMPXMedia* currentMedia( aMediaArray.AtL( i ) );
 
-        if ( currentMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == id )
+        if ( (currentMedia->ValueTObjectL<TMPXItemId>( KMPXMediaGeneralId ) == id) || 
+             (id == KMPXInvalidItemId && currentMedia->ValueText(KMPXMediaGeneralTitle).Compare( restoredAlbum->ValueText(KMPXMediaGeneralTitle) ) == 0 )  )
             {
             iRestoredAlbumIndex = i;
             iSelectedAlbumIndex = i;
@@ -4329,7 +4440,32 @@
         CleanupStack::PopAndDestroy( store );
         }
 
+    // for corrupted Media
+    TMPXItemId id=aMedia->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);    
+    if ( id.iId1 == 0 )
+        {
+        aMedia->SetTObjectValueL<TMPXItemId>(KMPXMediaGeneralId, KMPXInvalidItemId );
+        }
     }
 
+void CMPXCollectionViewHgContainer::HandleGainingForeground()
+    {
+    iIsForeground = ETrue;
+    }
+
+void CMPXCollectionViewHgContainer::HandleLosingForeground()
+    {
+    iIsForeground = EFalse;
+    }
+
+TInt CMPXCollectionViewHgContainer::AsyncCallback( TAny* aPtr )
+    {
+    CMPXCollectionViewHgContainer* self = static_cast<CMPXCollectionViewHgContainer*>(aPtr);
+    if( self )
+        {
+        self->HandleLbxItemAdditionL();
+        }
+    return KErrNone;
+    }
 
 //  End of File
--- a/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/collectionviewhg/src/mpxcollectionviewhgimp.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -619,6 +619,123 @@
     }
 
 // ---------------------------------------------------------------------------
+// Delete the selected items in TBone View
+// ---------------------------------------------------------------------------
+//
+void CMPXCollectionViewHgImp::DeleteSelectedTBoneItemsL(TInt aCommand)
+    {
+    MPX_FUNC( "CMPXCollectionViewHgImp::DeleteSelectedTBoneItemsL" );
+     // if reorder mode is on, or something is currently deleting, disable delete
+    TBool isIgnore( iContainer->IsInReorderMode() || iIsDeleting );
+
+    if ( !isIgnore  && iCollectionReady )
+        {
+        CMPXCommonListBoxArrayBase* listboxArray( iContainer->ListBoxArray() );
+        const CMPXMedia& containerMedia( listboxArray->ContainerMedia() );
+
+        TMPXGeneralType containerType(
+            containerMedia.ValueTObjectL<TMPXGeneralType>(
+                KMPXMediaGeneralType ) );
+        TMPXGeneralCategory containerCategory(
+            containerMedia.ValueTObjectL<TMPXGeneralCategory>(
+                KMPXMediaGeneralCategory ) );
+
+        const TMPXItemId containerId = containerMedia.ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+
+        HBufC* promptTxt( NULL );
+        HBufC* waitNoteText( NULL );
+        TInt waitNoteCBA( R_AVKON_SOFTKEYS_EMPTY );
+        
+        // Create a copy of collection path
+        CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
+        CleanupStack::PushL( path );
+
+        if ( containerType == EMPXItem && containerCategory == EMPXAlbum )    
+            {             
+             //get the media object of the selected track in TBone View
+            CMPXMedia* albumTrack = iContainer->SelectedItemMediaL();
+            
+            TMPXGeneralType mediaType(
+                    albumTrack->ValueTObjectL<TMPXGeneralType>(
+                            KMPXMediaGeneralType ) );
+            TMPXGeneralCategory mediaCategory(
+                    albumTrack->ValueTObjectL<TMPXGeneralCategory>(
+                    KMPXMediaGeneralCategory ) );
+
+            if ( mediaType == EMPXItem && mediaCategory == EMPXSong )
+                {
+                // tracks level in Tbone View
+                TMPXItemId trackId = albumTrack->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+                const TDesC& trackTitle( albumTrack->ValueText( KMPXMediaGeneralTitle ) );
+                // create the item path to delete
+                 path->Back();
+                 path->Back();
+                 path->AppendL(containerId);
+                 path->AppendL(trackId);
+
+                waitNoteText = StringLoader::LoadLC(
+                    R_MPX_QTN_ALBUM_WAITING_DELETING, trackTitle );
+                promptTxt = StringLoader::LoadLC(
+                    R_MPX_QTN_QUERY_COMMON_CONF_DELETE,
+                    trackTitle );
+
+                iConfirmationDlg = CAknQueryDialog::NewL(
+                CAknQueryDialog::EConfirmationTone );
+
+                waitNoteCBA = R_MPX_COLLECTION_WAITNOTE_SOFTKEYS_EMPTY_STOP;
+                
+                iConfirmationDlg->SetPromptL( *promptTxt );
+                CleanupStack::PopAndDestroy( promptTxt );
+                TBool performDelete(EFalse);
+                if(iCachedCommand == aCommand)
+                   {
+                   performDelete = ETrue;
+                   }
+                if (!performDelete)
+                    {
+                    if ( iConfirmationDlg->ExecuteLD( R_MPX_CUI_DELETE_CONFIRMATION_QUERY ) )
+                        {
+                        performDelete = ETrue;
+                        }
+                    }
+                if (performDelete)
+                    {
+                    HandleCommandL( EMPXCmdIgnoreExternalCommand );
+                    MPX_PERF_START_EX( MPX_PERF_SHOW_WAITNOTE );
+                    if(iCachedCommand != aCommand)
+                        {
+                        iIsWaitNoteCanceled = EFalse;
+                        StartProgressNoteL();
+                        TPtr buf = waitNoteText->Des();
+                        UpdateProcessL(0, buf);
+                        }
+                    if ( !iIsWaitNoteCanceled )
+                        {
+                        iIsDeleting = ETrue;
+                        iCollectionUiHelper->DeleteL( *path, this );
+                        }
+                    else if( iContainer )
+                        {
+                        // delete was canceled before it even began, clear marked items
+                        iContainer->ClearLbxSelection();
+                        }
+                    iIsWaitNoteCanceled = EFalse;
+        
+                    if(iContainer->FindBoxVisibility())
+                        {
+                        iContainer->EnableFindBox(EFalse);
+                        }
+                    }
+                iConfirmationDlg = NULL;
+                CleanupStack::PopAndDestroy( waitNoteText );
+                }
+            }
+        CleanupStack::PopAndDestroy( path );
+        }
+    }
+
+
+// ---------------------------------------------------------------------------
 // Delete the selected items
 // ---------------------------------------------------------------------------
 //
@@ -2783,6 +2900,45 @@
     return isHidden;
     }
 
+
+
+// -----------------------------------------------------------------------------
+// Handle send command in TBone view.
+// -----------------------------------------------------------------------------
+//
+void CMPXCollectionViewHgImp::DoSendTBoneListItemL(TMPXItemId aContainerId)
+    {
+
+    MPX_FUNC( "CMPXCollectionViewHgImp::DoSendTBoneListItemL" );
+    
+    CMPXCollectionPath* path( iCollectionUtility->Collection().PathL() );
+    CleanupStack::PushL( path );
+    
+    CMPXMedia* albumTrack = iContainer->SelectedItemMediaL();
+    TMPXItemId trackId = albumTrack->ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+
+    path->Back();
+    path->Back();
+    path->AppendL(aContainerId);
+    path->AppendL(trackId); 
+
+    RArray<TMPXAttribute> attrs;
+    CleanupClosePushL(attrs);
+    attrs.Append(
+        TMPXAttribute( KMPXMediaIdGeneral,
+            EMPXMediaGeneralUri | EMPXMediaGeneralSize |
+            EMPXMediaGeneralCollectionId |
+            EMPXMediaGeneralFlags | EMPXMediaGeneralId |
+            EMPXMediaGeneralType | EMPXMediaGeneralCategory ) );
+    iCurrentMediaLOp = EMPXOpMediaLSend;
+    iCollectionUtility->Collection().MediaL( *path, attrs.Array() );
+    CleanupStack::PopAndDestroy( &attrs );
+    CleanupStack::PopAndDestroy( path );
+}
+
+
+
+
 // -----------------------------------------------------------------------------
 // Handle send command.
 // -----------------------------------------------------------------------------
@@ -3838,7 +3994,7 @@
                                 EMPXUSBUnblockingPSStatusActive );
 				}
 
-            if ( iIsEmbedded && type == EMcMsgUSBMassStorageEnd )
+            if ( iContainer && iIsEmbedded && type == EMcMsgUSBMassStorageEnd )
             	{
             	DoIncrementalOpenL();
             	}
@@ -5182,7 +5338,14 @@
         case EMPXCmdRemove:
             {
             StoreListboxItemIndexL();
-            DeleteSelectedItemsL(aCommand);
+            if ( iContainer->IsTBoneView() )
+                {
+                DeleteSelectedTBoneItemsL(aCommand);
+                }
+            else
+                {
+                DeleteSelectedItemsL(aCommand);    
+                }
             break;
             }
         case EMPXCmdSend:
@@ -5196,7 +5359,13 @@
             TMPXGeneralCategory category(
                 media.ValueTObjectL<TMPXGeneralCategory>( KMPXMediaGeneralCategory ) );
 
-            if ( iContainer->CurrentSelectionIndicesL()->Count() == 0 &&
+            if( type == EMPXItem && category == EMPXAlbum && 
+                    iContainer->IsTBoneView() )
+                {
+                const TMPXItemId containerId = media.ValueTObjectL<TMPXItemId>(KMPXMediaGeneralId);
+                DoSendTBoneListItemL(containerId);
+                }
+            else if ( iContainer->CurrentSelectionIndicesL()->Count() == 0 &&
                 type == EMPXItem &&
                 category == EMPXPlaylist )
                 {
@@ -5524,11 +5693,20 @@
                             StopDisplayingMenuBar();
                             }
                         iPlayIndex = KErrNotFound;
-                        if(iCollectionCacheReady)
-                            {
-                            iCollectionUtility->Collection().OpenL( currentItem, EMPXOpenPlaylistOnly );
-                            iFirstIncrementalBatch = ETrue;
-                            }
+
+                        if (iContainer->IsSelectedItemASong())
+							{
+							if(iCollectionCacheReady)
+								{
+								iCollectionUtility->Collection().OpenL( currentItem, EMPXOpenPlaylistOnly );
+								iFirstIncrementalBatch = ETrue;
+								}
+							}
+						else
+							{
+							iContainer->HandleItemCommandL(EMPXCmdPlay);
+							}
+
                         }
                     }
                 else
@@ -6437,8 +6615,7 @@
                                 // and album art
                                 aMenuPane->SetItemDimmed( EMPXCmdSongDetails,
                                     fileDetailVisibility );
-                                aMenuPane->SetItemDimmed( EMPXCmdAlbumArt,
-                                    fileDetailVisibility );
+                                aMenuPane->SetItemDimmed( EMPXCmdAlbumArt, ETrue );
 #ifdef SINGLE_CLICK_INCLUDED
                                 aMenuPane->SetItemDimmed( EMPXCmdUseAsCascade, ETrue );  
 #else
@@ -7713,6 +7890,47 @@
 		}
     }
 
+void CMPXCollectionViewHgImp::UpdateCba()
+    {
+    TRAP_IGNORE( 
+        {
+        CMPXCollectionPath* cpath( iCollectionUtility->Collection().PathL() );
+        CleanupStack::PushL( cpath );
+    
+        CMPXCommonListBoxArrayBase* listboxArray(
+            iContainer->ListBoxArray() );
+        const CMPXMedia& media( listboxArray->ContainerMedia() );
+    
+        TMPXGeneralType containerType( EMPXNoType );
+        if ( media.IsSupported( KMPXMediaGeneralType ) )
+            {
+            containerType = media.ValueTObjectL<TMPXGeneralType>( KMPXMediaGeneralType );
+            }
+    
+        TMPXGeneralCategory containerCategory( EMPXNoCategory );
+        if ( media.IsSupported( KMPXMediaGeneralCategory ) )
+            {
+            containerCategory = media.ValueTObjectL<TMPXGeneralCategory>( KMPXMediaGeneralCategory );
+            }
+        TBool landscapeOrientation = Layout_Meta_Data::IsLandscapeOrientation();
+        CEikButtonGroupContainer* cba = Cba();
+        if ( cba && containerType == EMPXGroup && containerCategory == EMPXAlbum && landscapeOrientation )
+            {
+            cba->SetCommandSetL( R_MPX_COLLECTION_TRANSPARENT_CBA );
+            cba->MakeVisible( EFalse );
+            cba->DrawDeferred();
+            }
+        else if ( cba )
+            {
+            cba->SetCommandSetL(
+                ( cpath->Levels() == 3 && !iIsEmbedded ) ?
+                R_MPX_OPTIONS_HIDE_CBA : R_AVKON_SOFTKEYS_OPTIONS_BACK );
+            cba->MakeVisible( ETrue );
+            cba->DrawDeferred();
+            }
+        CleanupStack::PopAndDestroy(cpath);
+        });
+    }
 
 // -----------------------------------------------------------------------------
 // CMPXCollectionViewHgImp::OpenAllSongsL
--- a/mpxplugins/viewplugins/views/commonplaybackview/bwinscw/mpxcommonplaybackviewU.DEF	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/bwinscw/mpxcommonplaybackviewU.DEF	Thu Jan 07 12:45:53 2010 +0200
@@ -8,105 +8,104 @@
 	?UpdateTimeIndicatorsL@CMPXCommonPlaybackViewContainer@@UAEXHH@Z @ 7 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateTimeIndicatorsL(int, int)
 	?DisplayConfirmionNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 8 NONAME ; void CMPXCommonPlaybackViewImp::DisplayConfirmionNoteL(int)
 	?HandlePlaybackMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 9 NONAME ; void CMPXCommonPlaybackViewImp::HandlePlaybackMessage(class CMPXMedia *, int)
-	?CreateBackgroundImagesL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 10 NONAME ; void CMPXCommonPlaybackViewContainer::CreateBackgroundImagesL(void)
-	?HandleSettingChange@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@K@Z @ 11 NONAME ; void CMPXCommonPlaybackViewImp::HandleSettingChange(class TUid const &, unsigned long)
-	?HandleForegroundEventL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 12 NONAME ; void CMPXCommonPlaybackViewImp::HandleForegroundEventL(int)
-	?HandleErrorL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 13 NONAME ; void CMPXCommonPlaybackViewImp::HandleErrorL(int)
-	?GetCurrentPlayerDetails@CMPXCommonPlaybackViewImp@@MAEXXZ @ 14 NONAME ; void CMPXCommonPlaybackViewImp::GetCurrentPlayerDetails(void)
-	?UpdateDurationLabelL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 15 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateDurationLabelL(int)
-	?RedrawRect@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@AAVCBitmapContext@@@Z @ 16 NONAME ; void CMPXCommonPlaybackViewContainer::RedrawRect(class TRect const &, class CBitmapContext &) const
-	?DoHandleStateChangedL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@H@Z @ 17 NONAME ; void CMPXCommonPlaybackViewImp::DoHandleStateChangedL(enum TMPXPlaybackState, int)
-	?DisplayInfoNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 18 NONAME ; void CMPXCommonPlaybackViewImp::DisplayInfoNoteL(int)
-	?RequestMediaL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 19 NONAME ; void CMPXCommonPlaybackViewImp::RequestMediaL(int)
-	?HandleStatusPaneSizeChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 20 NONAME ; void CMPXCommonPlaybackViewImp::HandleStatusPaneSizeChange(void)
-	?UpdateTrackInfoL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 21 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackInfoL(class CMPXMedia const *)
-	?PrepareMediaForPlaylistLC@CMPXCommonPlaybackViewImp@@MAEPAVCMPXMedia@@ABV2@@Z @ 22 NONAME ; class CMPXMedia * CMPXCommonPlaybackViewImp::PrepareMediaForPlaylistLC(class CMPXMedia const &)
-	?ExtractAlbumArtCompleted@CMPXCommonPlaybackViewContainer@@UAEXPAVCFbsBitmap@@H@Z @ 23 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtCompleted(class CFbsBitmap *, int)
-	?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@0@Z @ 24 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TUid const &, class TUid const &)
-	?IsCommandSupportedL@CMPXCommonPlaybackViewImp@@MAEHXZ @ 25 NONAME ; int CMPXCommonPlaybackViewImp::IsCommandSupportedL(void)
-	?GetIndicatorIconMaskL@CMPXCommonPlaybackViewLayout@@UAEPAVCGulIcon@@W4TMPXPbvIndicator@@@Z @ 26 NONAME ; class CGulIcon * CMPXCommonPlaybackViewLayout::GetIndicatorIconMaskL(enum TMPXPbvIndicator)
-	?GetButtonBitmapsL@CMPXCommonPlaybackViewLayout@@UAEXW4TMPXPbvButton@@HAAPAVCFbsBitmap@@1@Z @ 27 NONAME ; void CMPXCommonPlaybackViewLayout::GetButtonBitmapsL(enum TMPXPbvButton, int, class CFbsBitmap * &, class CFbsBitmap * &)
-	?UpdateBackgroundSkinControlContext@CMPXCommonPlaybackViewContainer@@MAEXABVTRect@@@Z @ 28 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateBackgroundSkinControlContext(class TRect const &)
-	?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXCollectionPlaylist@@H@Z @ 29 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXCollectionPlaylist const &, int)
-	?GetTextVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvTextIndicator@@@Z @ 30 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetTextVariant(enum TMPXPbvTextIndicator)
-	??1CMPXCommonPlaybackViewContainer@@UAE@XZ @ 31 NONAME ; CMPXCommonPlaybackViewContainer::~CMPXCommonPlaybackViewContainer(void)
-	?SetRealAudioMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 32 NONAME ; void CMPXCommonPlaybackViewContainer::SetRealAudioMode(int)
-	?DetermineLayoutVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@XZ @ 33 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::DetermineLayoutVariant(void)
-	?SetMode@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvPlaybackMode@@@Z @ 34 NONAME ; void CMPXCommonPlaybackViewContainer::SetMode(enum TMPXPbvPlaybackMode)
-	?AddPlayersNamesToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@@Z @ 35 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayersNamesToMenuL(class CEikMenuPane &)
-	?DynInitMenuPaneL@CMPXCommonPlaybackViewImp@@MAEXHPAVCEikMenuPane@@@Z @ 36 NONAME ; void CMPXCommonPlaybackViewImp::DynInitMenuPaneL(int, class CEikMenuPane *)
-	?HandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 37 NONAME ; void CMPXCommonPlaybackViewImp::HandlePropertyL(enum TMPXPlaybackProperty, int, int)
-	?SkipOnErrorL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 38 NONAME ; void CMPXCommonPlaybackViewImp::SkipOnErrorL(int, int)
-	?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@HHH@Z @ 39 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXMedia const &, int, int, int)
-	?LayoutLabel@CMPXCommonPlaybackViewLayout@@UAEXPAVCEikLabel@@ABVTRect@@W4TMPXPbvTextIndicator@@HH@Z @ 40 NONAME ; void CMPXCommonPlaybackViewLayout::LayoutLabel(class CEikLabel *, class TRect const &, enum TMPXPbvTextIndicator, int, int)
-	?RefreshProgressBar@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 41 NONAME ; void CMPXCommonPlaybackViewContainer::RefreshProgressBar(void)
-	?HandleLayoutChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 42 NONAME ; void CMPXCommonPlaybackViewImp::HandleLayoutChange(void)
-	?IsUpnpVisible@CMPXCommonPlaybackViewImp@@MAEHXZ @ 43 NONAME ; int CMPXCommonPlaybackViewImp::IsUpnpVisible(void)
-	?CountComponentControls@CMPXCommonPlaybackViewContainer@@MBEHXZ @ 44 NONAME ; int CMPXCommonPlaybackViewContainer::CountComponentControls(void) const
-	?DoHandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 45 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePropertyL(enum TMPXPlaybackProperty, int, int)
-	?DrawIndicator@CMPXCommonPlaybackViewContainer@@MBEXAAVCBitmapContext@@ABVTRect@@1PBVCGulIcon@@H@Z @ 46 NONAME ; void CMPXCommonPlaybackViewContainer::DrawIndicator(class CBitmapContext &, class TRect const &, class TRect const &, class CGulIcon const *, int) const
-	?ExtractAlbumArtStarted@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 47 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtStarted(void)
-	?UpdateDownloadStateLabelL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 48 NONAME ; void CMPXCommonPlaybackViewImp::UpdateDownloadStateLabelL(void)
-	?SetFMTXMode@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 49 NONAME ; void CMPXCommonPlaybackViewContainer::SetFMTXMode(int)
-	?ProcessCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 50 NONAME ; void CMPXCommonPlaybackViewImp::ProcessCommandL(int)
-	?LaunchMusicSettingsL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 51 NONAME ; void CMPXCommonPlaybackViewImp::LaunchMusicSettingsL(void)
-	?GetNewSongPosition@CMPXCommonPlaybackViewContainer@@UAEHXZ @ 52 NONAME ; int CMPXCommonPlaybackViewContainer::GetNewSongPosition(void)
-	?UpdateMiddleSoftKeyDisplayL@CMPXCommonPlaybackViewImp@@IAEXXZ @ 53 NONAME ; void CMPXCommonPlaybackViewImp::UpdateMiddleSoftKeyDisplayL(void)
-	?SizeChanged@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 54 NONAME ; void CMPXCommonPlaybackViewContainer::SizeChanged(void)
-	?HandleOperationCompleteL@CMPXCommonPlaybackViewImp@@MAEXW4TCHelperOperation@@HPAX@Z @ 55 NONAME ; void CMPXCommonPlaybackViewImp::HandleOperationCompleteL(enum TCHelperOperation, int, void *)
-	?LaunchFMTransmitterL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 56 NONAME ; void CMPXCommonPlaybackViewImp::LaunchFMTransmitterL(void)
-	?UpdateViewL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 57 NONAME ; void CMPXCommonPlaybackViewImp::UpdateViewL(void)
-	?FreeIcons@CMPXCommonPlaybackViewContainer@@IAEXXZ @ 58 NONAME ; void CMPXCommonPlaybackViewContainer::FreeIcons(void)
-	?HandleSubPlayerNamesL@CMPXCommonPlaybackViewImp@@MAEXVTUid@@PBVMDesC16Array@@HH@Z @ 59 NONAME ; void CMPXCommonPlaybackViewImp::HandleSubPlayerNamesL(class TUid, class MDesC16Array const *, int, int)
-	?UpdateLabelL@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@ABVTDesC16@@@Z @ 60 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelL(enum TMPXPbvTextIndicator, class TDesC16 const &)
-	?DoDeactivate@CMPXCommonPlaybackViewImp@@MAEXXZ @ 61 NONAME ; void CMPXCommonPlaybackViewImp::DoDeactivate(void)
-	?HandleCommandComplete@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 62 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandComplete(class CMPXMedia *, int)
-	?HandleButtonCommandL@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 63 NONAME ; void CMPXCommonPlaybackViewContainer::HandleButtonCommandL(int)
-	?OfferKeyEventL@CMPXCommonPlaybackViewContainer@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 64 NONAME ; enum TKeyResponse CMPXCommonPlaybackViewContainer::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
-	?SetRandomMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 65 NONAME ; void CMPXCommonPlaybackViewContainer::SetRandomMode(int)
-	?HandleCollectionMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 66 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMessage(class CMPXMedia *, int)
-	?ComponentControl@CMPXCommonPlaybackViewContainer@@MBEPAVCCoeControl@@H@Z @ 67 NONAME ; class CCoeControl * CMPXCommonPlaybackViewContainer::ComponentControl(int) const
-	?UpdateTrackPosInPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 68 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPosInPlaylistL(void)
-	?LaunchEqualizerL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 69 NONAME ; void CMPXCommonPlaybackViewImp::LaunchEqualizerL(void)
-	?HandleAllTracksInvalidL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 70 NONAME ; void CMPXCommonPlaybackViewImp::HandleAllTracksInvalidL(void)
-	?AddToNewPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 71 NONAME ; void CMPXCommonPlaybackViewImp::AddToNewPlaylistL(void)
-	?IndicatorLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@W4TMPXPbvIndicator@@@Z @ 72 NONAME ; class TRect CMPXCommonPlaybackViewLayout::IndicatorLayout(class TRect const &, enum TMPXPbvIndicator)
-	?UpdateTrackPlaybackPositionL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 73 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPlaybackPositionL(int, int)
-	?UpdateTitlePaneL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 74 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTitlePaneL(void)
-	?HandlePointerEventL@CMPXCommonPlaybackViewContainer@@MAEXABUTPointerEvent@@@Z @ 75 NONAME ; void CMPXCommonPlaybackViewContainer::HandlePointerEventL(struct TPointerEvent const &)
-	?DoActivateL@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@VTUid@@ABVTDesC8@@@Z @ 76 NONAME ; void CMPXCommonPlaybackViewImp::DoActivateL(class TVwsViewId const &, class TUid, class TDesC8 const &)
-	?SelectNewPlayerL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 77 NONAME ; void CMPXCommonPlaybackViewImp::SelectNewPlayerL(int)
-	?DoHandlePlaybackMessageL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@@Z @ 78 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePlaybackMessageL(class CMPXMedia const &)
-	?UpdateButtons@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPlaybackState@@@Z @ 79 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateButtons(enum TMPXPlaybackState)
-	?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@H@Z @ 80 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &, int)
-	?UpdateProgressBarGraphics@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 81 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateProgressBarGraphics(void)
-	?UpdateFMTransmitterInfoL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 82 NONAME ; void CMPXCommonPlaybackViewImp::UpdateFMTransmitterInfoL(int)
-	?HandleMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 83 NONAME ; void CMPXCommonPlaybackViewImp::HandleMediaL(class CMPXMedia const &, int)
-	?UpdateAlbumArtL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 84 NONAME ; void CMPXCommonPlaybackViewImp::UpdateAlbumArtL(class CMPXMedia const *)
-	?HandlePSEvent@CMPXCommonPlaybackViewImp@@MAEXVTUid@@H@Z @ 85 NONAME ; void CMPXCommonPlaybackViewImp::HandlePSEvent(class TUid, int)
-	?HandleViewUpdate@CMPXCommonPlaybackViewImp@@MAEXVTUid@@W4TViewUpdateEvent@MMPXViewActivationObserver@@HH@Z @ 86 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewUpdate(class TUid, enum MMPXViewActivationObserver::TViewUpdateEvent, int, int)
-	?HandleCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 87 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandL(int)
-	??1CMPXCommonPlaybackViewImp@@UAE@XZ @ 88 NONAME ; CMPXCommonPlaybackViewImp::~CMPXCommonPlaybackViewImp(void)
-	?HandleForegroundEventL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 89 NONAME ; void CMPXCommonPlaybackViewContainer::HandleForegroundEventL(int)
-	?UpdateLabelColorsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 90 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelColorsL(void)
-	?IsEmbedded@CMPXCommonPlaybackViewImp@@MBEHXZ @ 91 NONAME ; int CMPXCommonPlaybackViewImp::IsEmbedded(void) const
-	?SimpleEmbeddedMode@CMPXCommonPlaybackViewImp@@MBEHXZ @ 92 NONAME ; int CMPXCommonPlaybackViewImp::SimpleEmbeddedMode(void) const
-	?UpdateToolbar@CMPXCommonPlaybackViewImp@@IAEXXZ @ 93 NONAME ; void CMPXCommonPlaybackViewImp::UpdateToolbar(void)
-	?UpdateLayout@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 94 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLayout(void)
-	?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@@Z @ 95 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &)
-	?UpdatePlaybackState@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@@Z @ 96 NONAME ; void CMPXCommonPlaybackViewImp::UpdatePlaybackState(enum TMPXPlaybackState)
-	?HandleResourceChange@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 97 NONAME ; void CMPXCommonPlaybackViewContainer::HandleResourceChange(int)
-	?AddPlayerNameToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@HAAVMMPXPlayerManager@@AAW4TMPXPlaybackPlayerType@@ABVTDesC16@@@Z @ 98 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayerNameToMenuL(class CEikMenuPane &, int, class MMPXPlayerManager &, enum TMPXPlaybackPlayerType &, class TDesC16 const &)
-	?Draw@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 99 NONAME ; void CMPXCommonPlaybackViewContainer::Draw(class TRect const &) const
-	?ConstructL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 100 NONAME ; void CMPXCommonPlaybackViewImp::ConstructL(void)
-	?DoLayoutLabelL@CMPXCommonPlaybackViewLayout@@IAEXPAVCEikLabel@@ABVTRect@@HHH@Z @ 101 NONAME ; void CMPXCommonPlaybackViewLayout::DoLayoutLabelL(class CEikLabel *, class TRect const &, int, int, int)
-	?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@0@Z @ 102 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TVwsViewId const &, class TVwsViewId const &)
-	?AddToSavedPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 103 NONAME ; void CMPXCommonPlaybackViewImp::AddToSavedPlaylistL(void)
-	?CreateLabelsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 104 NONAME ; void CMPXCommonPlaybackViewContainer::CreateLabelsL(void)
-	?CreateIconsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 105 NONAME ; void CMPXCommonPlaybackViewContainer::CreateIconsL(void)
-	?UpdateSoftkeyColors@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 106 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateSoftkeyColors(void)
-	?StartMarquee@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@@Z @ 107 NONAME ; void CMPXCommonPlaybackViewContainer::StartMarquee(enum TMPXPbvTextIndicator)
-	?GetIndicatorVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvIndicator@@@Z @ 108 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetIndicatorVariant(enum TMPXPbvIndicator)
-	?HandleCollectionMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 109 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMediaL(class CMPXMedia const &, int)
-	?GetHelpContext@CMPXCommonPlaybackViewContainer@@UBEXAAVTCoeHelpContext@@@Z @ 110 NONAME ; void CMPXCommonPlaybackViewContainer::GetHelpContext(class TCoeHelpContext &) const
+	?HandleSettingChange@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@K@Z @ 10 NONAME ; void CMPXCommonPlaybackViewImp::HandleSettingChange(class TUid const &, unsigned long)
+	?HandleForegroundEventL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 11 NONAME ; void CMPXCommonPlaybackViewImp::HandleForegroundEventL(int)
+	?HandleErrorL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 12 NONAME ; void CMPXCommonPlaybackViewImp::HandleErrorL(int)
+	?GetCurrentPlayerDetails@CMPXCommonPlaybackViewImp@@MAEXXZ @ 13 NONAME ; void CMPXCommonPlaybackViewImp::GetCurrentPlayerDetails(void)
+	?UpdateDurationLabelL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 14 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateDurationLabelL(int)
+	?DoHandleStateChangedL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@H@Z @ 15 NONAME ; void CMPXCommonPlaybackViewImp::DoHandleStateChangedL(enum TMPXPlaybackState, int)
+	?DisplayInfoNoteL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 16 NONAME ; void CMPXCommonPlaybackViewImp::DisplayInfoNoteL(int)
+	?RequestMediaL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 17 NONAME ; void CMPXCommonPlaybackViewImp::RequestMediaL(int)
+	?HandleStatusPaneSizeChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 18 NONAME ; void CMPXCommonPlaybackViewImp::HandleStatusPaneSizeChange(void)
+	?UpdateTrackInfoL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 19 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackInfoL(class CMPXMedia const *)
+	?PrepareMediaForPlaylistLC@CMPXCommonPlaybackViewImp@@MAEPAVCMPXMedia@@ABV2@@Z @ 20 NONAME ; class CMPXMedia * CMPXCommonPlaybackViewImp::PrepareMediaForPlaylistLC(class CMPXMedia const &)
+	?ExtractAlbumArtCompleted@CMPXCommonPlaybackViewContainer@@UAEXPAVCFbsBitmap@@H@Z @ 21 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtCompleted(class CFbsBitmap *, int)
+	?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTUid@@0@Z @ 22 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TUid const &, class TUid const &)
+	?IsCommandSupportedL@CMPXCommonPlaybackViewImp@@MAEHXZ @ 23 NONAME ; int CMPXCommonPlaybackViewImp::IsCommandSupportedL(void)
+	?GetIndicatorIconMaskL@CMPXCommonPlaybackViewLayout@@UAEPAVCGulIcon@@W4TMPXPbvIndicator@@@Z @ 24 NONAME ; class CGulIcon * CMPXCommonPlaybackViewLayout::GetIndicatorIconMaskL(enum TMPXPbvIndicator)
+	?GetButtonBitmapsL@CMPXCommonPlaybackViewLayout@@UAEXW4TMPXPbvButton@@HAAPAVCFbsBitmap@@1@Z @ 25 NONAME ; void CMPXCommonPlaybackViewLayout::GetButtonBitmapsL(enum TMPXPbvButton, int, class CFbsBitmap * &, class CFbsBitmap * &)
+	?UpdateBackgroundSkinControlContext@CMPXCommonPlaybackViewContainer@@MAEXABVTRect@@@Z @ 26 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateBackgroundSkinControlContext(class TRect const &)
+	?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXCollectionPlaylist@@H@Z @ 27 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXCollectionPlaylist const &, int)
+	?GetTextVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvTextIndicator@@@Z @ 28 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetTextVariant(enum TMPXPbvTextIndicator)
+	??1CMPXCommonPlaybackViewContainer@@UAE@XZ @ 29 NONAME ; CMPXCommonPlaybackViewContainer::~CMPXCommonPlaybackViewContainer(void)
+	?SetRealAudioMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 30 NONAME ; void CMPXCommonPlaybackViewContainer::SetRealAudioMode(int)
+	?DetermineLayoutVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@XZ @ 31 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::DetermineLayoutVariant(void)
+	?SetMode@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvPlaybackMode@@@Z @ 32 NONAME ; void CMPXCommonPlaybackViewContainer::SetMode(enum TMPXPbvPlaybackMode)
+	?AddPlayersNamesToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@@Z @ 33 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayersNamesToMenuL(class CEikMenuPane &)
+	?DynInitMenuPaneL@CMPXCommonPlaybackViewImp@@MAEXHPAVCEikMenuPane@@@Z @ 34 NONAME ; void CMPXCommonPlaybackViewImp::DynInitMenuPaneL(int, class CEikMenuPane *)
+	?HandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 35 NONAME ; void CMPXCommonPlaybackViewImp::HandlePropertyL(enum TMPXPlaybackProperty, int, int)
+	?SkipOnErrorL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 36 NONAME ; void CMPXCommonPlaybackViewImp::SkipOnErrorL(int, int)
+	?HandleOpenL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@HHH@Z @ 37 NONAME ; void CMPXCommonPlaybackViewImp::HandleOpenL(class CMPXMedia const &, int, int, int)
+	?LayoutLabel@CMPXCommonPlaybackViewLayout@@UAEXPAVCEikLabel@@ABVTRect@@W4TMPXPbvTextIndicator@@HH@Z @ 38 NONAME ; void CMPXCommonPlaybackViewLayout::LayoutLabel(class CEikLabel *, class TRect const &, enum TMPXPbvTextIndicator, int, int)
+	?RefreshProgressBar@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 39 NONAME ; void CMPXCommonPlaybackViewContainer::RefreshProgressBar(void)
+	?HandleLayoutChange@CMPXCommonPlaybackViewImp@@MAEXXZ @ 40 NONAME ; void CMPXCommonPlaybackViewImp::HandleLayoutChange(void)
+	?IsUpnpVisible@CMPXCommonPlaybackViewImp@@MAEHXZ @ 41 NONAME ; int CMPXCommonPlaybackViewImp::IsUpnpVisible(void)
+	?CountComponentControls@CMPXCommonPlaybackViewContainer@@MBEHXZ @ 42 NONAME ; int CMPXCommonPlaybackViewContainer::CountComponentControls(void) const
+	?DoHandlePropertyL@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackProperty@@HH@Z @ 43 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePropertyL(enum TMPXPlaybackProperty, int, int)
+	?ExtractAlbumArtStarted@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 44 NONAME ; void CMPXCommonPlaybackViewContainer::ExtractAlbumArtStarted(void)
+	?UpdateDownloadStateLabelL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 45 NONAME ; void CMPXCommonPlaybackViewImp::UpdateDownloadStateLabelL(void)
+	?SetFMTXMode@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 46 NONAME ; void CMPXCommonPlaybackViewContainer::SetFMTXMode(int)
+	?ProcessCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 47 NONAME ; void CMPXCommonPlaybackViewImp::ProcessCommandL(int)
+	?LaunchMusicSettingsL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 48 NONAME ; void CMPXCommonPlaybackViewImp::LaunchMusicSettingsL(void)
+	?GetNewSongPosition@CMPXCommonPlaybackViewContainer@@UAEHXZ @ 49 NONAME ; int CMPXCommonPlaybackViewContainer::GetNewSongPosition(void)
+	?UpdateMiddleSoftKeyDisplayL@CMPXCommonPlaybackViewImp@@IAEXXZ @ 50 NONAME ; void CMPXCommonPlaybackViewImp::UpdateMiddleSoftKeyDisplayL(void)
+	?SizeChanged@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 51 NONAME ; void CMPXCommonPlaybackViewContainer::SizeChanged(void)
+	?HandleOperationCompleteL@CMPXCommonPlaybackViewImp@@MAEXW4TCHelperOperation@@HPAX@Z @ 52 NONAME ; void CMPXCommonPlaybackViewImp::HandleOperationCompleteL(enum TCHelperOperation, int, void *)
+	?LaunchFMTransmitterL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 53 NONAME ; void CMPXCommonPlaybackViewImp::LaunchFMTransmitterL(void)
+	?UpdateViewL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 54 NONAME ; void CMPXCommonPlaybackViewImp::UpdateViewL(void)
+	?DrawIndicator@CMPXCommonPlaybackViewContainer@@MBEXAAVCWindowGc@@ABVTRect@@1PBVCGulIcon@@H@Z @ 55 NONAME ; void CMPXCommonPlaybackViewContainer::DrawIndicator(class CWindowGc &, class TRect const &, class TRect const &, class CGulIcon const *, int) const
+	?FreeIcons@CMPXCommonPlaybackViewContainer@@IAEXXZ @ 56 NONAME ; void CMPXCommonPlaybackViewContainer::FreeIcons(void)
+	?HandleSubPlayerNamesL@CMPXCommonPlaybackViewImp@@MAEXVTUid@@PBVMDesC16Array@@HH@Z @ 57 NONAME ; void CMPXCommonPlaybackViewImp::HandleSubPlayerNamesL(class TUid, class MDesC16Array const *, int, int)
+	?UpdateLabelL@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@ABVTDesC16@@@Z @ 58 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelL(enum TMPXPbvTextIndicator, class TDesC16 const &)
+	?DoDeactivate@CMPXCommonPlaybackViewImp@@MAEXXZ @ 59 NONAME ; void CMPXCommonPlaybackViewImp::DoDeactivate(void)
+	?HandleCommandComplete@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 60 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandComplete(class CMPXMedia *, int)
+	?HandleButtonCommandL@CMPXCommonPlaybackViewContainer@@MAEXH@Z @ 61 NONAME ; void CMPXCommonPlaybackViewContainer::HandleButtonCommandL(int)
+	?OfferKeyEventL@CMPXCommonPlaybackViewContainer@@UAE?AW4TKeyResponse@@ABUTKeyEvent@@W4TEventCode@@@Z @ 62 NONAME ; enum TKeyResponse CMPXCommonPlaybackViewContainer::OfferKeyEventL(struct TKeyEvent const &, enum TEventCode)
+	?SetRandomMode@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 63 NONAME ; void CMPXCommonPlaybackViewContainer::SetRandomMode(int)
+	?HandleCollectionMessage@CMPXCommonPlaybackViewImp@@MAEXPAVCMPXMedia@@H@Z @ 64 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMessage(class CMPXMedia *, int)
+	?ComponentControl@CMPXCommonPlaybackViewContainer@@MBEPAVCCoeControl@@H@Z @ 65 NONAME ; class CCoeControl * CMPXCommonPlaybackViewContainer::ComponentControl(int) const
+	?UpdateTrackPosInPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 66 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPosInPlaylistL(void)
+	?LaunchEqualizerL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 67 NONAME ; void CMPXCommonPlaybackViewImp::LaunchEqualizerL(void)
+	?HandleAllTracksInvalidL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 68 NONAME ; void CMPXCommonPlaybackViewImp::HandleAllTracksInvalidL(void)
+	?AddToNewPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 69 NONAME ; void CMPXCommonPlaybackViewImp::AddToNewPlaylistL(void)
+	?IndicatorLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@W4TMPXPbvIndicator@@@Z @ 70 NONAME ; class TRect CMPXCommonPlaybackViewLayout::IndicatorLayout(class TRect const &, enum TMPXPbvIndicator)
+	?UpdateTrackPlaybackPositionL@CMPXCommonPlaybackViewImp@@MAEXHH@Z @ 71 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTrackPlaybackPositionL(int, int)
+	?UpdateTitlePaneL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 72 NONAME ; void CMPXCommonPlaybackViewImp::UpdateTitlePaneL(void)
+	?HandlePointerEventL@CMPXCommonPlaybackViewContainer@@MAEXABUTPointerEvent@@@Z @ 73 NONAME ; void CMPXCommonPlaybackViewContainer::HandlePointerEventL(struct TPointerEvent const &)
+	?DoActivateL@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@VTUid@@ABVTDesC8@@@Z @ 74 NONAME ; void CMPXCommonPlaybackViewImp::DoActivateL(class TVwsViewId const &, class TUid, class TDesC8 const &)
+	?SelectNewPlayerL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 75 NONAME ; void CMPXCommonPlaybackViewImp::SelectNewPlayerL(int)
+	?DoHandlePlaybackMessageL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@@Z @ 76 NONAME ; void CMPXCommonPlaybackViewImp::DoHandlePlaybackMessageL(class CMPXMedia const &)
+	?UpdateButtons@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPlaybackState@@@Z @ 77 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateButtons(enum TMPXPlaybackState)
+	?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@H@Z @ 78 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &, int)
+	?UpdateProgressBarGraphics@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 79 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateProgressBarGraphics(void)
+	?UpdateFMTransmitterInfoL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 80 NONAME ; void CMPXCommonPlaybackViewImp::UpdateFMTransmitterInfoL(int)
+	?HandleMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 81 NONAME ; void CMPXCommonPlaybackViewImp::HandleMediaL(class CMPXMedia const &, int)
+	?UpdateAlbumArtL@CMPXCommonPlaybackViewImp@@MAEXPBVCMPXMedia@@@Z @ 82 NONAME ; void CMPXCommonPlaybackViewImp::UpdateAlbumArtL(class CMPXMedia const *)
+	?HandlePSEvent@CMPXCommonPlaybackViewImp@@MAEXVTUid@@H@Z @ 83 NONAME ; void CMPXCommonPlaybackViewImp::HandlePSEvent(class TUid, int)
+	?HandleViewUpdate@CMPXCommonPlaybackViewImp@@MAEXVTUid@@W4TViewUpdateEvent@MMPXViewActivationObserver@@HH@Z @ 84 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewUpdate(class TUid, enum MMPXViewActivationObserver::TViewUpdateEvent, int, int)
+	?RedrawRect@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 85 NONAME ; void CMPXCommonPlaybackViewContainer::RedrawRect(class TRect const &) const
+	?HandleCommandL@CMPXCommonPlaybackViewImp@@MAEXH@Z @ 86 NONAME ; void CMPXCommonPlaybackViewImp::HandleCommandL(int)
+	??1CMPXCommonPlaybackViewImp@@UAE@XZ @ 87 NONAME ; CMPXCommonPlaybackViewImp::~CMPXCommonPlaybackViewImp(void)
+	?HandleForegroundEventL@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 88 NONAME ; void CMPXCommonPlaybackViewContainer::HandleForegroundEventL(int)
+	?UpdateLabelColorsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 89 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLabelColorsL(void)
+	?IsEmbedded@CMPXCommonPlaybackViewImp@@MBEHXZ @ 90 NONAME ; int CMPXCommonPlaybackViewImp::IsEmbedded(void) const
+	?SimpleEmbeddedMode@CMPXCommonPlaybackViewImp@@MBEHXZ @ 91 NONAME ; int CMPXCommonPlaybackViewImp::SimpleEmbeddedMode(void) const
+	?UpdateToolbar@CMPXCommonPlaybackViewImp@@IAEXXZ @ 92 NONAME ; void CMPXCommonPlaybackViewImp::UpdateToolbar(void)
+	?UpdateLayout@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 93 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateLayout(void)
+	?ButtonLayout@CMPXCommonPlaybackViewLayout@@UAE?AVTRect@@ABV2@@Z @ 94 NONAME ; class TRect CMPXCommonPlaybackViewLayout::ButtonLayout(class TRect const &)
+	?UpdatePlaybackState@CMPXCommonPlaybackViewImp@@MAEXW4TMPXPlaybackState@@@Z @ 95 NONAME ; void CMPXCommonPlaybackViewImp::UpdatePlaybackState(enum TMPXPlaybackState)
+	?HandleResourceChange@CMPXCommonPlaybackViewContainer@@UAEXH@Z @ 96 NONAME ; void CMPXCommonPlaybackViewContainer::HandleResourceChange(int)
+	?AddPlayerNameToMenuL@CMPXCommonPlaybackViewImp@@MAEXAAVCEikMenuPane@@HAAVMMPXPlayerManager@@AAW4TMPXPlaybackPlayerType@@ABVTDesC16@@@Z @ 97 NONAME ; void CMPXCommonPlaybackViewImp::AddPlayerNameToMenuL(class CEikMenuPane &, int, class MMPXPlayerManager &, enum TMPXPlaybackPlayerType &, class TDesC16 const &)
+	?Draw@CMPXCommonPlaybackViewContainer@@MBEXABVTRect@@@Z @ 98 NONAME ; void CMPXCommonPlaybackViewContainer::Draw(class TRect const &) const
+	?ConstructL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 99 NONAME ; void CMPXCommonPlaybackViewImp::ConstructL(void)
+	?DoLayoutLabelL@CMPXCommonPlaybackViewLayout@@IAEXPAVCEikLabel@@ABVTRect@@HHH@Z @ 100 NONAME ; void CMPXCommonPlaybackViewLayout::DoLayoutLabelL(class CEikLabel *, class TRect const &, int, int, int)
+	?HandleViewActivation@CMPXCommonPlaybackViewImp@@MAEXABVTVwsViewId@@0@Z @ 101 NONAME ; void CMPXCommonPlaybackViewImp::HandleViewActivation(class TVwsViewId const &, class TVwsViewId const &)
+	?AddToSavedPlaylistL@CMPXCommonPlaybackViewImp@@MAEXXZ @ 102 NONAME ; void CMPXCommonPlaybackViewImp::AddToSavedPlaylistL(void)
+	?CreateLabelsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 103 NONAME ; void CMPXCommonPlaybackViewContainer::CreateLabelsL(void)
+	?CreateIconsL@CMPXCommonPlaybackViewContainer@@MAEXXZ @ 104 NONAME ; void CMPXCommonPlaybackViewContainer::CreateIconsL(void)
+	?UpdateSoftkeyColors@CMPXCommonPlaybackViewContainer@@UAEXXZ @ 105 NONAME ; void CMPXCommonPlaybackViewContainer::UpdateSoftkeyColors(void)
+	?StartMarquee@CMPXCommonPlaybackViewContainer@@UAEXW4TMPXPbvTextIndicator@@@Z @ 106 NONAME ; void CMPXCommonPlaybackViewContainer::StartMarquee(enum TMPXPbvTextIndicator)
+	?GetIndicatorVariant@CMPXCommonPlaybackViewLayout@@IAE?AW4TMPXPbvLayoutVariants@@W4TMPXPbvIndicator@@@Z @ 107 NONAME ; enum TMPXPbvLayoutVariants CMPXCommonPlaybackViewLayout::GetIndicatorVariant(enum TMPXPbvIndicator)
+	?HandleCollectionMediaL@CMPXCommonPlaybackViewImp@@MAEXABVCMPXMedia@@H@Z @ 108 NONAME ; void CMPXCommonPlaybackViewImp::HandleCollectionMediaL(class CMPXMedia const &, int)
+	?GetHelpContext@CMPXCommonPlaybackViewContainer@@UBEXAAVTCoeHelpContext@@@Z @ 109 NONAME ; void CMPXCommonPlaybackViewContainer::GetHelpContext(class TCoeHelpContext &) const
 
--- a/mpxplugins/viewplugins/views/commonplaybackview/eabi/mpxcommonplaybackviewU.DEF	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/eabi/mpxcommonplaybackviewU.DEF	Thu Jan 07 12:45:53 2010 +0200
@@ -96,55 +96,54 @@
 	_ZN31CMPXCommonPlaybackViewContainer21UpdateTimeIndicatorsLEii @ 95 NONAME
 	_ZN31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 96 NONAME
 	_ZN31CMPXCommonPlaybackViewContainer22HandleForegroundEventLEi @ 97 NONAME
-	_ZN31CMPXCommonPlaybackViewContainer23CreateBackgroundImagesLEv @ 98 NONAME
-	_ZN31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 99 NONAME
-	_ZN31CMPXCommonPlaybackViewContainer25UpdateProgressBarGraphicsEv @ 100 NONAME
-	_ZN31CMPXCommonPlaybackViewContainer34UpdateBackgroundSkinControlContextERK5TRect @ 101 NONAME
-	_ZN31CMPXCommonPlaybackViewContainer7SetModeE19TMPXPbvPlaybackMode @ 102 NONAME
-	_ZN31CMPXCommonPlaybackViewContainer9FreeIconsEv @ 103 NONAME
-	_ZN31CMPXCommonPlaybackViewContainerD0Ev @ 104 NONAME
-	_ZN31CMPXCommonPlaybackViewContainerD1Ev @ 105 NONAME
-	_ZN31CMPXCommonPlaybackViewContainerD2Ev @ 106 NONAME
-	_ZNK25CMPXCommonPlaybackViewImp10IsEmbeddedEv @ 107 NONAME
-	_ZNK25CMPXCommonPlaybackViewImp18SimpleEmbeddedModeEv @ 108 NONAME
-	_ZNK31CMPXCommonPlaybackViewContainer10RedrawRectERK5TRectR14CBitmapContext @ 109 NONAME
-	_ZNK31CMPXCommonPlaybackViewContainer13DrawIndicatorER14CBitmapContextRK5TRectS4_PK8CGulIconi @ 110 NONAME
-	_ZNK31CMPXCommonPlaybackViewContainer14GetHelpContextER15TCoeHelpContext @ 111 NONAME
-	_ZNK31CMPXCommonPlaybackViewContainer16ComponentControlEi @ 112 NONAME
-	_ZNK31CMPXCommonPlaybackViewContainer22CountComponentControlsEv @ 113 NONAME
-	_ZNK31CMPXCommonPlaybackViewContainer4DrawERK5TRect @ 114 NONAME
-	_ZTI25CMPXCommonPlaybackViewImp @ 115 NONAME
-	_ZTI28CMPXCommonPlaybackViewLayout @ 116 NONAME
-	_ZTI31CMPXCommonPlaybackViewContainer @ 117 NONAME
-	_ZTV25CMPXCommonPlaybackViewImp @ 118 NONAME
-	_ZTV28CMPXCommonPlaybackViewLayout @ 119 NONAME
-	_ZTV31CMPXCommonPlaybackViewContainer @ 120 NONAME
-	_ZThn100_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK10TVwsViewIdS2_ @ 121 NONAME
-	_ZThn108_N25CMPXCommonPlaybackViewImp24HandleOperationCompleteLE17TCHelperOperationiPv @ 122 NONAME
-	_ZThn112_N25CMPXCommonPlaybackViewImp13HandlePSEventE4TUidi @ 123 NONAME
-	_ZThn116_N25CMPXCommonPlaybackViewImp19HandleSettingChangeERK4TUidm @ 124 NONAME
-	_ZThn120_N25CMPXCommonPlaybackViewImp16DialogDismissedLEi @ 125 NONAME
-	_ZThn124_N25CMPXCommonPlaybackViewImp16HandleViewUpdateE4TUidN26MMPXViewActivationObserver16TViewUpdateEventEii @ 126 NONAME
-	_ZThn124_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK4TUidS2_ @ 127 NONAME
-	_ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK22CMPXCollectionPlaylisti @ 128 NONAME
-	_ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK9CMPXMediaiii @ 129 NONAME
-	_ZThn128_N25CMPXCommonPlaybackViewImp21HandleCommandCompleteEP9CMPXMediai @ 130 NONAME
-	_ZThn128_N25CMPXCommonPlaybackViewImp22HandleCollectionMediaLERK9CMPXMediai @ 131 NONAME
-	_ZThn128_N25CMPXCommonPlaybackViewImp23HandleCollectionMessageEP9CMPXMediai @ 132 NONAME
-	_ZThn12_N25CMPXCommonPlaybackViewImp15ProcessCommandLEi @ 133 NONAME
-	_ZThn12_N25CMPXCommonPlaybackViewImp16DynInitMenuPaneLEiP12CEikMenuPane @ 134 NONAME
-	_ZThn4_N28CMPXCommonPlaybackViewLayout11LayoutLabelEP9CEikLabelRK5TRect20TMPXPbvTextIndicatorii @ 135 NONAME
-	_ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRect @ 136 NONAME
-	_ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRecti @ 137 NONAME
-	_ZThn4_N28CMPXCommonPlaybackViewLayout15IndicatorLayoutERK5TRect16TMPXPbvIndicator @ 138 NONAME
-	_ZThn4_N28CMPXCommonPlaybackViewLayout17GetButtonBitmapsLE13TMPXPbvButtoniRP10CFbsBitmapS3_ @ 139 NONAME
-	_ZThn4_N28CMPXCommonPlaybackViewLayout21GetIndicatorIconMaskLE16TMPXPbvIndicator @ 140 NONAME
-	_ZThn52_N31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 141 NONAME
-	_ZThn52_N31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 142 NONAME
-	_ZThn56_N31CMPXCommonPlaybackViewContainer20HandleButtonCommandLEi @ 143 NONAME
-	_ZThn80_N25CMPXCommonPlaybackViewImp21HandlePlaybackMessageEP9CMPXMediai @ 144 NONAME
-	_ZThn84_N25CMPXCommonPlaybackViewImp12HandleMediaLERK9CMPXMediai @ 145 NONAME
-	_ZThn84_N25CMPXCommonPlaybackViewImp15HandlePropertyLE20TMPXPlaybackPropertyii @ 146 NONAME
-	_ZThn84_N25CMPXCommonPlaybackViewImp21HandleSubPlayerNamesLE4TUidPK12MDesC16Arrayii @ 147 NONAME
-	_ZThn96_N25CMPXCommonPlaybackViewImp18HandleLayoutChangeEv @ 148 NONAME
+	_ZN31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 98 NONAME
+	_ZN31CMPXCommonPlaybackViewContainer25UpdateProgressBarGraphicsEv @ 99 NONAME
+	_ZN31CMPXCommonPlaybackViewContainer34UpdateBackgroundSkinControlContextERK5TRect @ 100 NONAME
+	_ZN31CMPXCommonPlaybackViewContainer7SetModeE19TMPXPbvPlaybackMode @ 101 NONAME
+	_ZN31CMPXCommonPlaybackViewContainer9FreeIconsEv @ 102 NONAME
+	_ZN31CMPXCommonPlaybackViewContainerD0Ev @ 103 NONAME
+	_ZN31CMPXCommonPlaybackViewContainerD1Ev @ 104 NONAME
+	_ZN31CMPXCommonPlaybackViewContainerD2Ev @ 105 NONAME
+	_ZNK25CMPXCommonPlaybackViewImp10IsEmbeddedEv @ 106 NONAME
+	_ZNK25CMPXCommonPlaybackViewImp18SimpleEmbeddedModeEv @ 107 NONAME
+	_ZNK31CMPXCommonPlaybackViewContainer10RedrawRectERK5TRect @ 108 NONAME
+	_ZNK31CMPXCommonPlaybackViewContainer13DrawIndicatorER9CWindowGcRK5TRectS4_PK8CGulIconi @ 109 NONAME
+	_ZNK31CMPXCommonPlaybackViewContainer14GetHelpContextER15TCoeHelpContext @ 110 NONAME
+	_ZNK31CMPXCommonPlaybackViewContainer16ComponentControlEi @ 111 NONAME
+	_ZNK31CMPXCommonPlaybackViewContainer22CountComponentControlsEv @ 112 NONAME
+	_ZNK31CMPXCommonPlaybackViewContainer4DrawERK5TRect @ 113 NONAME
+	_ZTI25CMPXCommonPlaybackViewImp @ 114 NONAME
+	_ZTI28CMPXCommonPlaybackViewLayout @ 115 NONAME
+	_ZTI31CMPXCommonPlaybackViewContainer @ 116 NONAME
+	_ZTV25CMPXCommonPlaybackViewImp @ 117 NONAME
+	_ZTV28CMPXCommonPlaybackViewLayout @ 118 NONAME
+	_ZTV31CMPXCommonPlaybackViewContainer @ 119 NONAME
+	_ZThn100_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK10TVwsViewIdS2_ @ 120 NONAME
+	_ZThn108_N25CMPXCommonPlaybackViewImp24HandleOperationCompleteLE17TCHelperOperationiPv @ 121 NONAME
+	_ZThn112_N25CMPXCommonPlaybackViewImp13HandlePSEventE4TUidi @ 122 NONAME
+	_ZThn116_N25CMPXCommonPlaybackViewImp19HandleSettingChangeERK4TUidm @ 123 NONAME
+	_ZThn120_N25CMPXCommonPlaybackViewImp16DialogDismissedLEi @ 124 NONAME
+	_ZThn124_N25CMPXCommonPlaybackViewImp16HandleViewUpdateE4TUidN26MMPXViewActivationObserver16TViewUpdateEventEii @ 125 NONAME
+	_ZThn124_N25CMPXCommonPlaybackViewImp20HandleViewActivationERK4TUidS2_ @ 126 NONAME
+	_ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK22CMPXCollectionPlaylisti @ 127 NONAME
+	_ZThn128_N25CMPXCommonPlaybackViewImp11HandleOpenLERK9CMPXMediaiii @ 128 NONAME
+	_ZThn128_N25CMPXCommonPlaybackViewImp21HandleCommandCompleteEP9CMPXMediai @ 129 NONAME
+	_ZThn128_N25CMPXCommonPlaybackViewImp22HandleCollectionMediaLERK9CMPXMediai @ 130 NONAME
+	_ZThn128_N25CMPXCommonPlaybackViewImp23HandleCollectionMessageEP9CMPXMediai @ 131 NONAME
+	_ZThn12_N25CMPXCommonPlaybackViewImp15ProcessCommandLEi @ 132 NONAME
+	_ZThn12_N25CMPXCommonPlaybackViewImp16DynInitMenuPaneLEiP12CEikMenuPane @ 133 NONAME
+	_ZThn4_N28CMPXCommonPlaybackViewLayout11LayoutLabelEP9CEikLabelRK5TRect20TMPXPbvTextIndicatorii @ 134 NONAME
+	_ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRect @ 135 NONAME
+	_ZThn4_N28CMPXCommonPlaybackViewLayout12ButtonLayoutERK5TRecti @ 136 NONAME
+	_ZThn4_N28CMPXCommonPlaybackViewLayout15IndicatorLayoutERK5TRect16TMPXPbvIndicator @ 137 NONAME
+	_ZThn4_N28CMPXCommonPlaybackViewLayout17GetButtonBitmapsLE13TMPXPbvButtoniRP10CFbsBitmapS3_ @ 138 NONAME
+	_ZThn4_N28CMPXCommonPlaybackViewLayout21GetIndicatorIconMaskLE16TMPXPbvIndicator @ 139 NONAME
+	_ZThn52_N31CMPXCommonPlaybackViewContainer22ExtractAlbumArtStartedEv @ 140 NONAME
+	_ZThn52_N31CMPXCommonPlaybackViewContainer24ExtractAlbumArtCompletedEP10CFbsBitmapi @ 141 NONAME
+	_ZThn56_N31CMPXCommonPlaybackViewContainer20HandleButtonCommandLEi @ 142 NONAME
+	_ZThn80_N25CMPXCommonPlaybackViewImp21HandlePlaybackMessageEP9CMPXMediai @ 143 NONAME
+	_ZThn84_N25CMPXCommonPlaybackViewImp12HandleMediaLERK9CMPXMediai @ 144 NONAME
+	_ZThn84_N25CMPXCommonPlaybackViewImp15HandlePropertyLE20TMPXPlaybackPropertyii @ 145 NONAME
+	_ZThn84_N25CMPXCommonPlaybackViewImp21HandleSubPlayerNamesLE4TUidPK12MDesC16Arrayii @ 146 NONAME
+	_ZThn96_N25CMPXCommonPlaybackViewImp18HandleLayoutChangeEv @ 147 NONAME
 
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewcontainer.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewcontainer.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -101,8 +101,8 @@
     TAknWindowLineLayout screenLayout =
         AknLayout::screen();
     TRect screenRect = screenLayout.Rect();
-    iBackground = CAknsBasicBackgroundControlContext::NewL(
-        KAknsIIDQsnBgAreaMainMp, screenRect, EFalse );
+	iBackground = CAknsBasicBackgroundControlContext::NewL(
+			KAknsIIDQsnBgAreaMain, screenRect, EFalse );
 
 	iSeekTimer = CPeriodic::NewL( EPriorityLow );
 
@@ -116,7 +116,6 @@
 
     iEnableButtons = static_cast<TBool>( flags & KMPXRockerMappingSupport );
 
-    CreateBackgroundImagesL();
 
     // Create labels
     CreateLabelsL();
@@ -205,9 +204,9 @@
     delete iShortFormatString;
     delete iCommonUiHelper;
 
-    delete iOffScreenBitmap;
-    delete iOSBitmapContext;
-    delete iOSBitmapDevice;
+
+
+
 
     delete iButtonManager;
 
@@ -778,7 +777,6 @@
 
     if ( aType == KAknsMessageSkinChange )
         {
-		iRefreshBackBuffer = ETrue;
         // Reload icons
         TRAP_IGNORE(
             {
@@ -794,8 +792,6 @@
         iLayoutObserver->HandleLayoutChange();
         UpdateBackgroundSkinControlContext( Rect() );
 
-        // recreate background image
-        TRAP_IGNORE( CreateBackgroundImagesL() );
         }
     else
         {
@@ -846,53 +842,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// Creates background images
-// ---------------------------------------------------------------------------
-//
-EXPORT_C void CMPXCommonPlaybackViewContainer::CreateBackgroundImagesL()
-    {
-
-    CWindowGc& gc( SystemGc() );
-    CGraphicsDevice* device( gc.Device() );
-    TSize size( device->SizeInPixels() );
-    TDisplayMode mode( device->DisplayMode() );
-
-    if( iOffScreenBitmap && 
-		size == iOffScreenBitmap->SizeInPixels() &&
-		mode == iOffScreenBitmap->DisplayMode() )
-    	{
-		// No need to update backbuffer
-    	return;
-    	}
-
-    delete iOffScreenBitmap;
-    iOffScreenBitmap = NULL;
-    delete iOSBitmapContext;
-    iOSBitmapContext = NULL;
-    delete iOSBitmapDevice;
-    iOSBitmapDevice = NULL;
-
-    iOffScreenBitmap = new (ELeave) CFbsBitmap();
-    TInt err( iOffScreenBitmap->Create( size, mode ));
-    if ( KErrNone != err )
-        {
-        delete iOffScreenBitmap;
-        iOffScreenBitmap = NULL;
-        User::Leave( err );
-        }
-
-    iOSBitmapDevice = CFbsBitmapDevice::NewL( iOffScreenBitmap );
-    err = iOSBitmapDevice->CreateContext( iOSBitmapContext );
-    if ( KErrNone != err )
-        {
-        delete iOSBitmapDevice;
-        iOSBitmapDevice = NULL;
-        User::Leave( err );
-        }
-    iRefreshBackBuffer = ETrue;
-    }
-
-// ---------------------------------------------------------------------------
 // Creates labels.
 // ---------------------------------------------------------------------------
 //
@@ -989,7 +938,7 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CMPXCommonPlaybackViewContainer::DrawIndicator(
-    CBitmapContext& aGc,
+    CWindowGc& aGc ,
     const TRect& aDirtyRect,
     const TRect& aIndicatorRect,
     const CGulIcon* aIcon,
@@ -1011,19 +960,13 @@
 // ---------------------------------------------------------------------------
 //
 EXPORT_C void CMPXCommonPlaybackViewContainer::RedrawRect(
-    const TRect& aRect,
-    CBitmapContext& aGc) const
+    const TRect& aRect) const
     {
+	CWindowGc& gc = SystemGc();
     MAknsSkinInstance* skin = AknsUtils::SkinInstance();
-    AknsDrawUtils::DrawBackground(
-        skin,
-        iBackground,
-        this,
-        aGc,
-        aRect.iTl,
-        aRect,
-        KAknsDrawParamDefault );
 
+	AknsDrawUtils::Background( skin, iBackground,
+			this, gc, aRect );
 
     TBool embedded = iEikonEnv->StartedAsServerApp();
 
@@ -1031,34 +974,34 @@
         {
         if ( iRepeatAllMode && !embedded )
             {
-            DrawIndicator( aGc, aRect, iRepeatIconRect, iRepeatAllIcon );
+            DrawIndicator( gc, aRect, iRepeatIconRect, iRepeatAllIcon );
             }
 
         if ( iRepeatOneMode && !embedded )
             {
-            DrawIndicator(aGc, aRect, iRepeatIconRect, iRepeatOneIcon);
+            DrawIndicator(gc, aRect, iRepeatIconRect, iRepeatOneIcon);
             }
 
         if ( iRandomMode && !embedded )
             {
-            DrawIndicator(aGc, aRect, iRandomIconRect, iRandomIcon);
+            DrawIndicator(gc, aRect, iRandomIconRect, iRandomIcon);
             }
 
 #ifdef RD_RA_SUPPORT_FOR_MUSIC_PLAYER
         if ( iRealAudioMode )
             {
-            DrawIndicator( aGc, aRect, iRealIconRect, iRealIcon );
+            DrawIndicator( gc, aRect, iRealIconRect, iRealIcon );
             }
 #endif
 
-        DrawIndicator( aGc, aRect, iSliderBackgroundRect, iSliderBackground );
+        DrawIndicator( gc, aRect, iSliderBackgroundRect, iSliderBackground );
         if ( iMode == EPlayMode || iMode == EPauseMode )
             {
 
-            DrawIndicator( aGc, aRect, TRect(iDownloadSliderRect.iTl,
+            DrawIndicator( gc, aRect, TRect(iDownloadSliderRect.iTl,
                     iDownloadSlider->Bitmap()->SizeInPixels()),
                     iDownloadSlider );
-            DrawIndicator(aGc, aRect, TRect(iPlaybackSliderRect.iTl,
+            DrawIndicator(gc, aRect, TRect(iPlaybackSliderRect.iTl,
                     iPlaybackSlider->Bitmap()->SizeInPixels() ),
                     iPlaybackSlider );
             }
@@ -1079,19 +1022,19 @@
                 Centerpos += iAlbumArtRect.iTl;
 
                 // Draw album art and frame
-                aGc.BitBlt( Centerpos, iTrackAlbumArt);
+                gc.BitBlt( Centerpos, iTrackAlbumArt);
                 TRgb color = KRgbBlack;
                 AknsUtils::GetCachedColor( skin, color, KAknsIIDQsnTextColors,
                         EAknsCIQsnTextColorsCG50 );
                 TRect imageRect( Centerpos, iTrackAlbumArt->SizeInPixels() );
-                aGc.SetPenStyle( CGraphicsContext::ESolidPen );
-                aGc.SetBrushStyle( CGraphicsContext::ENullBrush );
-                aGc.SetPenColor( color );
-                aGc.DrawRect( imageRect );
+                gc.SetPenStyle( CGraphicsContext::ESolidPen );
+                gc.SetBrushStyle( CGraphicsContext::ENullBrush );
+                gc.SetPenColor( color );
+                gc.DrawRect( imageRect );
                 }
             else
                 {
-                DrawIndicator( aGc, aRect, iAlbumArtRect, iDefaultAlbumArt );
+                DrawIndicator( gc, aRect, iAlbumArtRect, iDefaultAlbumArt );
                 }
             }
         }
@@ -1163,21 +1106,21 @@
     {
     CAknsBasicBackgroundControlContext* background =
         static_cast<CAknsBasicBackgroundControlContext*>( iBackground );
-
     if ( Layout_Meta_Data::IsLandscapeOrientation() )
         {
         TAknWindowLineLayout screenLayout =
             AknLayout::screen();
         TRect screenRect = screenLayout.Rect();
-        background->SetBitmap( KAknsIIDQsnBgAreaMainMp );
+        background->SetBitmap( KAknsIIDQsnBgAreaMain );
         background->SetRect( screenRect );
+
         }
     else
         {
-        background->SetBitmap( KAknsIIDQsnBgAreaMainMp );
-        background->SetRect( aRect );
+        background->SetBitmap( KAknsIIDQsnBgAreaMain );
+        background->SetRect( aRect );        
         }
-    iRefreshBackBuffer = ETrue;
+
     }
 
 // ---------------------------------------------------------------------------
@@ -1254,21 +1197,7 @@
 //
 EXPORT_C void CMPXCommonPlaybackViewContainer::Draw( const TRect& aRect ) const
     {
-    if( iActiveView || iRefreshBackBuffer )
-        {
-        if ( iOSBitmapContext )
-            {
-            RedrawRect( aRect, *iOSBitmapContext );
-            iRefreshBackBuffer = EFalse;
-            }
-        }
-
-    // Draw off-screen bitmap to display
-    if ( iOffScreenBitmap )
-        {
-        CWindowGc& gc = SystemGc();
-		gc.BitBlt( TPoint(),iOffScreenBitmap );
-        }
+    RedrawRect(aRect);
     }
 
 // -----------------------------------------------------------------------------
@@ -1496,7 +1425,6 @@
         return;
         }
 
-    CreateBackgroundImagesL();
 
     MPX_DEBUG5( "CMPXCommonPlaybackViewContainer::DoUpdateLayoutL() -- new layout: top-left (%d, %d) size (%d, %d)",
         myRect.iTl.iX, myRect.iTl.iY, myRect.Size().iWidth, myRect.Size().iHeight );
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxcommonplaybackviewimp.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -42,7 +42,7 @@
 
 #include <e32const.h>
 #ifdef UPNP_INCLUDED
-#include <upnpcopycommand.h> 
+#include <upnpcopycommand.h>
 #endif
 
 #include <apgcli.h> // For FF_FMTX
@@ -339,7 +339,7 @@
 #ifdef UPNP_INCLUDED
     if (!iUpnpCopyCommand )
         {
-   	    MPX_TRAPD ( error, iUpnpCopyCommand = CUpnpCopyCommand::NewL() );   
+   	    MPX_TRAPD ( error, iUpnpCopyCommand = CUpnpCopyCommand::NewL() );
 		    if ( error == KErrNone )
             {
             iUpnpFrameworkSupport = ETrue;
@@ -464,7 +464,7 @@
     	iDelayedErrorTimer->Cancel();
     	delete iDelayedErrorTimer;
     	}
-    
+
     delete iOldUri;
     MPX_DEBUG1( "CMPXCommonPlaybackViewImp::~CMPXCommonPlaybackViewImp exiting" );
     }
@@ -732,7 +732,7 @@
             {
             const TDesC& album = aMedia->ValueText( KMPXMediaGeneralUri );
             if(!iOldUri || iOldUri->Compare(album)!= 0)
-                {  
+                {
 
                 TRect albumArtRect(
                         iLayout->IndicatorLayout(
@@ -746,7 +746,7 @@
                 delete iOldUri;
                 iOldUri = NULL;
                 iOldUri=album.AllocL();
-                } 
+                }
             }
 
         if (KErrNone != err )
@@ -1221,7 +1221,7 @@
         UpdateTrackPosInPlaylistL();
         UpdateTrackInfoL( iMedia );
         UpdateAlbumArtL( iMedia );
-        
+
 
         // Update duration if previously not available
         if ( iMedia->IsSupported( KMPXMediaGeneralDuration ) )
@@ -1285,8 +1285,8 @@
         }
     else
         {
-        
-#ifndef CAMESE_IN_DRM_UTILITY		
+
+#ifndef CAMESE_IN_DRM_UTILITY
         // Check if Camese Support is enabled and
         // if the error is caused by PV being unable
         // to retrieve media properties before handling
@@ -1432,13 +1432,13 @@
             iIgnoredByUsbEvent = EFalse;
             return;
             }
-        
+
         // else iIgnoredByUsbEvent==EFalse, then furtherly check USB status in central repository.
         else if ( !iIgnoredByUsbEvent )
         	{
             TInt usbStatus;
             RProperty::Get( KPSUidUsbWatcher, KUsbWatcherSelectedPersonality, usbStatus );
-        
+
             if ( KUsbPersonalityIdMS == usbStatus && KErrDisMounted == aError  )
             	{
             	// Igore this error when USB is avtive in MassStrorage mode.
@@ -1537,7 +1537,7 @@
             case KErrNotFound:
             case KErrPathNotFound:
             case KErrDivideByZero:
-            case KErrGeneral: 
+            case KErrGeneral:
                 {
                 // USB dismounts the disk, it cannot find any records
                 if( !iDatabaseNotReady )
@@ -1888,6 +1888,12 @@
     iPreviousStatusPaneLayout = StatusPane()->CurrentLayoutResId();
     TInt resId( KErrNone );
 
+	// We need to restore the status pane if not visible.
+	if (!StatusPane()->IsVisible())
+		{
+		StatusPane()->MakeVisible(ETrue);
+		}
+
     if ( !Layout_Meta_Data::IsLandscapeOrientation() )
         {
         if ( iPreviousStatusPaneLayout != R_AVKON_STATUS_PANE_LAYOUT_USUAL_FLAT )
@@ -2079,7 +2085,7 @@
                                     {
                                     isEqual = EFalse;
                                     }
-      
+
                                 if ( isEqual ) // if they're the same path
 									{
 									pbPath->Back();
@@ -2138,7 +2144,7 @@
             repository->Get( KMPXMPLocalVariation, val );
             TBool startInAlbumMenu = val&KMPXStartMusicPlayerinArtistsandAlbums ? ETrue : EFalse;
             delete repository;
-            
+
             if ( startInAlbumMenu )
                 {
                 CMPXCollectionPath* cpath = iCollectionUiHelper->MusicMenuPathL();
@@ -2146,7 +2152,7 @@
                 cpath->AppendL(3); // Albums
                 MPX_DEBUG_PATH(*cpath);
                 iCollectionUtility->Collection().OpenL( *cpath );
-                CleanupStack::PopAndDestroy( cpath );                
+                CleanupStack::PopAndDestroy( cpath );
                 }
             else
                 {
@@ -2468,7 +2474,7 @@
             {
             iContainer->AdjustOrdinalPosition( KMPXPlaybackViewWindowBackground );
             }
-        else 
+        else
             {
             iContainer->SetRect( ClientRect() );
             iContainer->DrawDeferred();
@@ -2496,12 +2502,13 @@
     CAknToolbar* toolbar = Toolbar();
     if ( toolbar )
         {
-        AppUi()->AddToStackL(toolbar, 
+        AppUi()->AddToStackL(toolbar,
         		ECoeStackPriorityCba,
-                ECoeStackFlagRefusesFocus 
+                ECoeStackFlagRefusesFocus
                 | ECoeStackFlagRefusesAllKeys );
         toolbar->MakeVisible( ETrue );
         toolbar->HideItemsAndDrawOnlyBackground(EFalse);
+        toolbar->SetSkinBackgroundId(KAknsIIDQsnBgScreenMp);
         toolbar->SetToolbarVisibility(ETrue);
         }
     PrepareStatusPaneForPlaybackViewL();
@@ -2525,7 +2532,7 @@
     iIdle = CIdle::NewL( CActive::EPriorityIdle );
     iIdle->Start( TCallBack( CMPXCommonPlaybackViewImp::DeferredAlbumArtExtractCallback, this ) );
 
-    // Retrieve current repeat & random modes, fix for EJZU-7NZ9CD 
+    // Retrieve current repeat & random modes, fix for EJZU-7NZ9CD
     iPlaybackUtility->PropertyL( *this, EPbPropertyRandomMode );
     iPlaybackUtility->PropertyL( *this, EPbPropertyRepeatMode );
 
@@ -2547,9 +2554,6 @@
     CEikButtonGroupContainer* cba = Cba();
     if ( cba )
         {
-        CCoeControl* control = cba->ButtonGroup()->AsControl();
-        static_cast<CEikCba*>( control )->
-            SetSkinBackgroundId( KAknsIIDQsnBgAreaControlMp );
 
 #ifdef __ENABLE_MSK
         iCommonUiHelper->SetMiddleSoftKeyLabelL(
@@ -2732,7 +2736,7 @@
     {
     TInt usbUnblockingStatus;
     RProperty::Get( KMPXViewPSUid,
-                    KMPXUSBUnblockingPSStatus, 
+                    KMPXUSBUnblockingPSStatus,
                     usbUnblockingStatus);
 
     switch ( aResourceId )
@@ -2943,7 +2947,7 @@
                     iUserPlaylists->Value<CMPXMediaArray>(
                     KMPXMediaArrayContents );
                 User::LeaveIfNull(const_cast<CMPXMediaArray*>(mediaArray));
-               
+
                 TInt entriesCount( mediaArray->Count() );
                 MPX_DEBUG2( "CMPXCommonPlaybackViewImp::DynInitMenuPaneL Entry count = %d", entriesCount );
                 if ( entriesCount > 0 )
@@ -2986,7 +2990,7 @@
         if ( !Layout_Meta_Data::IsLandscapeOrientation() )
             {
             TUid activeView = iViewUtility->ActiveViewImplementationUid();
-            
+
             // only switch to flat if current view is not equalizer
             // since it'll mess up equilizer's screen
             if ( StatusPane()->CurrentLayoutResId() !=
@@ -3009,7 +3013,7 @@
 
         iContainer->SetRect( ClientRect() );
         delete iOldUri;
-        iOldUri = NULL;         
+        iOldUri = NULL;
         // Update album art
         TRAP_IGNORE( UpdateAlbumArtL( iMedia ));
         TRAP_IGNORE( UpdateTrackInfoL( iMedia ));
@@ -3116,14 +3120,14 @@
     {
     MPX_FUNC( "CMPXCommonPlaybackViewImp::IsUpnpVisible" );
     TBool returnValue = EFalse;
-    
+
 #ifdef UPNP_INCLUDED
-   	if ( iUpnpCopyCommand && iUpnpFrameworkSupport ) 	  
+   	if ( iUpnpCopyCommand && iUpnpFrameworkSupport )
         {
-        returnValue = iUpnpCopyCommand->IsAvailableL();   
+        returnValue = iUpnpCopyCommand->IsAvailableL();
         }
 #endif
-    return returnValue; 
+    return returnValue;
 
     }
 
@@ -3557,7 +3561,7 @@
                         break;
                         }
                     }
-                
+
                 if( setText )
                     {
                 CAknErrorNote* errNote = new(ELeave) CAknErrorNote(ETrue);
@@ -3900,7 +3904,7 @@
             CAknButton* pausePlayControl;
             pausePlayControl = (CAknButton*)(toolbar->ComponentControl( 1 ));
             CAknButton* fwControl;
-            fwControl = (CAknButton*)(toolbar->ComponentControl( 2 ));                                   
+            fwControl = (CAknButton*)(toolbar->ComponentControl( 2 ));
             MMPXSource* s = iPlaybackUtility->Source();
             if ( s )
                 {
@@ -3965,7 +3969,7 @@
     {
     CMPXCommonPlaybackViewImp* pv = reinterpret_cast<CMPXCommonPlaybackViewImp*>( aPtr );
     pv->iDelayedErrorTimer->Cancel();
-    
+
     // compare index
     if ( pv->iPlaybackUtility )
     	{
--- a/mpxplugins/viewplugins/views/commonplaybackview/src/mpxplaybackviewinfolabel.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/commonplaybackview/src/mpxplaybackviewinfolabel.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -69,7 +69,7 @@
         iMarquee->SetContainerWindowL( *this );
         }
     }
-    
+
 // ---------------------------------------------------------------------------
 // Destructor
 // ---------------------------------------------------------------------------
@@ -80,7 +80,7 @@
     delete iMarquee;
     iBackground = NULL;
     }
-    
+
 // ---------------------------------------------------------------------------
 // Set background bitmap
 // ---------------------------------------------------------------------------
@@ -112,7 +112,7 @@
         TInt baselineOffset = 0;
         if ( iMarquee )
             {
-            const CAknLayoutFont* layoutFont = 
+            const CAknLayoutFont* layoutFont =
                 CAknLayoutFont::AsCAknLayoutFontOrNull( Font() );
             if ( layoutFont )
                 {
@@ -222,6 +222,14 @@
     __ASSERT_DEBUG( iFont, User::Panic( KPanicCat, EFontNotSet ) );
 
     TBool need( EFalse );
+    // We don't scroll text more than 250 chars in length.
+    if ( iFullText )
+    	{
+    	if ( iFullText->Length() > 250 )
+			{
+			return need;
+			}
+		}
     if ( iFullText && iFont->TextWidthInPixels( *iFullText ) > Size().iWidth )
         {
         need = ETrue;
@@ -235,7 +243,7 @@
 //
 TInt CMPXPlaybackViewInfoLabel::RedrawCallback( TAny* aPtr )
     {
-    CMPXPlaybackViewInfoLabel* self = 
+    CMPXPlaybackViewInfoLabel* self =
         static_cast<CMPXPlaybackViewInfoLabel*>( aPtr );
     CWindowGc& gc = self->SystemGc();
     gc.Activate( *self->DrawableWindow() );
--- a/mpxplugins/viewplugins/views/inc/mpxcbahandler.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/inc/mpxcbahandler.h	Thu Jan 07 12:45:53 2010 +0200
@@ -33,6 +33,8 @@
 
     virtual void ChangeCbaVisibility( TBool aVisible ) = 0;
 
+    virtual void UpdateCba() = 0;
+    
     };
 
 
--- a/mpxplugins/viewplugins/views/inc/mpxcommonplaybackviewcontainer.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/inc/mpxcommonplaybackviewcontainer.h	Thu Jan 07 12:45:53 2010 +0200
@@ -218,10 +218,10 @@
 
 protected:
 
-    /**
-     * Create background images
-     */
-    IMPORT_C virtual void CreateBackgroundImagesL();
+
+
+
+
 
     /**
      * Creates labels.
@@ -251,7 +251,7 @@
      * @param aInvertMask    Invert mask (see CBitmapContext::BitBltMasked)
      */
     IMPORT_C virtual void DrawIndicator(
-        CBitmapContext& aGc,
+        CWindowGc& aGc ,
         const TRect& aDirtyRect,
         const TRect& aIndicatorRect,
         const CGulIcon* aIcon,
@@ -261,11 +261,10 @@
      * Redraw part of the screen to the bitmap context.
      *
      * @param aRect Area to be redrawn.
-     * @param aGc Graphics context to draw to.
+     * 
      */
-    IMPORT_C virtual void RedrawRect(
-        const TRect& aRect,
-        CBitmapContext& aGc) const;
+  IMPORT_C virtual void RedrawRect(
+         const TRect& aRect) const;
 
     /**
      * Update progress bar graphics based on current playback
@@ -395,9 +394,9 @@
     MMPXLayoutSwitchObserver*    iLayoutObserver;   // not owned
     RPointerArray<CMPXPlaybackViewInfoLabel> iLabels;   // owned
 
-    CFbsBitmap* iOffScreenBitmap;       // owned
-    CFbsBitGc* iOSBitmapContext;        // owned
-    CFbsBitmapDevice* iOSBitmapDevice;  // owned
+
+ 
+
 
     HBufC* iMinSecFormatString;         // owned
     HBufC* iShortFormatString;          // owned
@@ -472,8 +471,8 @@
     TBool iTouchDown;        // Flag indicating touch progress bar is in use
     TBool iActiveView;
 
-    // mutable is used so that conts Draw method can change the state
-    mutable TBool iRefreshBackBuffer; 
+
+
     TBool iDragProgressBar; //Flag drag progress bar
     };
 
--- a/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/metadataeditordialog/src/mpxmetadataeditordialog.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -2062,10 +2062,12 @@
                 else
                     {
                     // Text query cancelled.  Display popup list again.
-                    iTextValues->SetCurrentValueIndex( 0 );
                     iPopup->ActivateSelectionListL();
-                    // genre is fetched so that "Custom..." isn't passed as the new genre
-                    FetchGenreL();
+                    
+                    // reset to original index
+                    TInt genreIndex;
+                    iGenreArr->Find( iMedia->ValueText( KMPXMediaMusicGenre ), genreIndex );
+                    iTextValues->SetCurrentValueIndex( genreIndex );
                     }
                 CleanupStack::PopAndDestroy( genreName );
                 }
--- a/mpxplugins/viewplugins/views/pdplaybackview/inc/mpxpdplaybackviewcontainer.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/pdplaybackview/inc/mpxpdplaybackviewcontainer.h	Thu Jan 07 12:45:53 2010 +0200
@@ -86,11 +86,11 @@
      * Redraw part of the screen to the bitmap context.
      *
      * @param aRect Area to be redrawn.
-     * @param aGc Graphics context to draw to.
+     * 
      */
     void RedrawRect(
-        const TRect& aRect,
-        CBitmapContext& aGc) const;
+        const TRect& aRect) const;
+
 
     /**
      * Sets main pane mode.
--- a/mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewcontainer.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/pdplaybackview/src/mpxpdplaybackviewcontainer.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -110,21 +110,22 @@
 // ---------------------------------------------------------------------------
 //
 void CMPXPdPlaybackViewContainer::RedrawRect(
-    const TRect& aRect,
-    CBitmapContext& aGc) const
+    const TRect& aRect) const
     {
     MPX_DEBUG1("CMPXPdPlaybackViewContainer::RedrawRect() entering");
     
-    CMPXCommonPlaybackViewContainer::RedrawRect( aRect, aGc );
+
+ CMPXCommonPlaybackViewContainer::RedrawRect( aRect );
     
     // Always show progress bars in progressive download
-    DrawIndicator( aGc, aRect, iSliderBackgroundRect, iSliderBackground );
-    DrawIndicator( aGc, 
+    CWindowGc& gc = SystemGc();
+    DrawIndicator( gc, aRect, iSliderBackgroundRect, iSliderBackground );
+    DrawIndicator( gc, 
                    aRect,
                    TRect(iDownloadSliderRect.iTl,
                          iDownloadSlider->Bitmap()->SizeInPixels()),
                    iDownloadSlider );
-    DrawIndicator( aGc, 
+    DrawIndicator( gc, 
                    aRect, 
                    TRect(iPlaybackSliderRect.iTl,
                          iPlaybackSlider->Bitmap()->SizeInPixels()),
--- a/mpxplugins/viewplugins/views/pdsbplaybackview/inc/mpxpdsbplaybackviewcontainer.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/pdsbplaybackview/inc/mpxpdsbplaybackviewcontainer.h	Thu Jan 07 12:45:53 2010 +0200
@@ -78,11 +78,11 @@
      * Redraw part of the screen to the bitmap context.
      *
      * @param aRect Area to be redrawn.
-     * @param aGc Graphics context to draw to.
+     *
      */
-    void RedrawRect(
-        const TRect& aRect,
-        CBitmapContext& aGc) const;
+      void RedrawRect(
+        const TRect& aRect) const;
+    
 
     /**
      * From MPXCommonPlaybackViewContainer and CCoeControl.
--- a/mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewcontainer.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/pdsbplaybackview/src/mpxpdsbplaybackviewcontainer.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -110,21 +110,22 @@
 // ---------------------------------------------------------------------------
 //
 void CMPXPdSbPlaybackViewContainer::RedrawRect(
-    const TRect& aRect,
-    CBitmapContext& aGc) const
+    const TRect& aRect) const
     {
     MPX_DEBUG1("CMPXPdSbPlaybackViewContainer::RedrawRect() entering");
 
-    CMPXCommonPlaybackViewContainer::RedrawRect( aRect, aGc );
+
+    CMPXCommonPlaybackViewContainer::RedrawRect( aRect );
 
     // Always show progress bars in progressive download
-    DrawIndicator( aGc, aRect, iSliderBackgroundRect, iSliderBackground );
-    DrawIndicator( aGc,
+    CWindowGc& gc = SystemGc();
+    DrawIndicator( gc, aRect, iSliderBackgroundRect, iSliderBackground );
+    DrawIndicator( gc,
                    aRect,
                    TRect(iDownloadSliderRect.iTl,
                          iDownloadSlider->Bitmap()->SizeInPixels()),
                    iDownloadSlider );
-    DrawIndicator( aGc,
+    DrawIndicator( gc,
                    aRect,
                    TRect(iPlaybackSliderRect.iTl,
                          iPlaybackSlider->Bitmap()->SizeInPixels()),
--- a/mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewimp.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/podcastview/src/mpxpodcastcollectionviewimp.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -3218,25 +3218,54 @@
 
                 if (currentDepth == 2)
                     {
+
+					TInt val(0);
+					CRepository* repository = CRepository::NewL( KCRUidMPXMPFeatures );
+					repository->Get( KMPXMPLocalVariation, val );
+					TBool startInAlbumMenu = val&KMPXStartMusicPlayerinArtistsandAlbums ? ETrue : EFalse;
+					delete repository;
+
+					if ( startInAlbumMenu )
+						{
+						CMPXCollectionPath* path = CMPXCollectionPath::NewL();
+						CleanupStack::PushL( path );
+						path->AppendL(KMusicCollectionUid);
+						path->AppendL(3); // Artist & Albums
+						iCollectionUtility->Collection().OpenL( *path );
+						CleanupStack::PopAndDestroy( path );
+
+						// activate the collection view
+						RArray<TUid> uids;
+						CleanupClosePushL( uids );
+						uids.AppendL( TUid::Uid( KMPXPluginTypeCollectionUid ) );
+						uids.AppendL( TUid::Uid( KMusicCollectionUid ));
+						iViewUtility->ActivateViewL(uids);
+
+						CleanupStack::PopAndDestroy( &uids );
+						}
+					else
+						{
+
 #ifdef __ENABLE_PODCAST_IN_MUSIC_MENU
-                    // open the podcast collection db plugin
-                    CMPXCollectionPath* mainPodcastMenu = CMPXCollectionPath::NewL();
-                    CleanupStack::PushL( mainPodcastMenu );
-                    mainPodcastMenu->AppendL(KMusicCollectionUid);
-                    iCollectionUtility->Collection().OpenL( *mainPodcastMenu );
-                    CleanupStack::PopAndDestroy( mainPodcastMenu );
-
-                    // activate the podcast collection view
-                    RArray<TUid> uids;
-                    CleanupClosePushL( uids );
-                    uids.AppendL( TUid::Uid( KMPXPluginTypeCollectionUid ) );
-                    uids.AppendL( TUid::Uid( KMusicCollectionUid ));
-                    iViewUtility->ActivateViewL(uids);
-
-                    CleanupStack::PopAndDestroy( &uids );
+						// open the podcast collection db plugin
+						CMPXCollectionPath* mainPodcastMenu = CMPXCollectionPath::NewL();
+						CleanupStack::PushL( mainPodcastMenu );
+						mainPodcastMenu->AppendL(KMusicCollectionUid);
+						iCollectionUtility->Collection().OpenL( *mainPodcastMenu );
+						CleanupStack::PopAndDestroy( mainPodcastMenu );
+
+						// activate the podcast collection view
+						RArray<TUid> uids;
+						CleanupClosePushL( uids );
+						uids.AppendL( TUid::Uid( KMPXPluginTypeCollectionUid ) );
+						uids.AppendL( TUid::Uid( KMusicCollectionUid ));
+						iViewUtility->ActivateViewL(uids);
+
+						CleanupStack::PopAndDestroy( &uids );
 #else
-                    AppUi()->HandleCommandL(aCommand);
+						AppUi()->HandleCommandL(aCommand);
 #endif
+						}
                     }
                 else if (currentDepth == 3) // jumping back to the main podcast menu
                     {
--- a/mpxplugins/viewplugins/views/upnpplaybackdialog/inc/mpxupnpplaybackdialogcustomcontrol.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/upnpplaybackdialog/inc/mpxupnpplaybackdialogcustomcontrol.h	Thu Jan 07 12:45:53 2010 +0200
@@ -115,11 +115,12 @@
      * Redraw part of the screen to the bitmap context.
      *
      * @param aRect Area to be redrawn.
-     * @param aGc Graphics context to draw to.
+     * 
      */
-    void RedrawRect(
-        const TRect& aRect,
-        CBitmapContext& aGc) const;
+     void RedrawRect(
+        const TRect& aRect) const;
+   
+
 
 private:
 
--- a/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialogcustomcontrol.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/upnpplaybackdialog/src/mpxupnpplaybackdialogcustomcontrol.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -189,14 +189,15 @@
 // ---------------------------------------------------------------------------
 //
 void CMPXUPnPPlaybackDialogCustomControl::RedrawRect(
-    const TRect& aRect,
-    CBitmapContext& aGc) const
+  const TRect& aRect) const
     {
-    CMPXCommonPlaybackViewContainer::RedrawRect( aRect, aGc );
+
+    CMPXCommonPlaybackViewContainer::RedrawRect( aRect );
 
     if ( iRemotePlayerUsed )
         {
-        DrawIndicator( aGc, aRect, iRemotePlayerIconRect, iRemotePlayerIcon );
+        CWindowGc& gc = SystemGc();
+        DrawIndicator( gc, aRect, iRemotePlayerIconRect, iRemotePlayerIcon );
         }
     }
 
--- a/mpxplugins/viewplugins/views/upnpplaybackview/inc/mpxupnpplaybackviewcontainer.h	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/upnpplaybackview/inc/mpxupnpplaybackviewcontainer.h	Thu Jan 07 12:45:53 2010 +0200
@@ -112,11 +112,11 @@
      * Redraw part of the screen to the bitmap context.
      *
      * @param aRect Area to be redrawn.
-     * @param aGc Graphics context to draw to.
+     *
      */
-    void RedrawRect(
-        const TRect& aRect,
-        CBitmapContext& aGc) const;
+   void RedrawRect(
+        const TRect& aRect) const;
+   
 
     
 private:    // data
--- a/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewcontainer.cpp	Thu Dec 17 08:45:05 2009 +0200
+++ b/mpxplugins/viewplugins/views/upnpplaybackview/src/mpxupnpplaybackviewcontainer.cpp	Thu Jan 07 12:45:53 2010 +0200
@@ -160,14 +160,15 @@
 // ---------------------------------------------------------------------------
 //
 void CMPXUPnPPlaybackViewContainer::RedrawRect(
-    const TRect& aRect,
-    CBitmapContext& aGc) const
+ const TRect& aRect) const
     {
-    CMPXCommonPlaybackViewContainer::RedrawRect( aRect, aGc );
+
+    CMPXCommonPlaybackViewContainer::RedrawRect( aRect );
 
     if ( iRemotePlayerUsed )
         {
-        DrawIndicator( aGc, aRect, iRemotePlayerIconRect, iRemotePlayerIcon );
+        CWindowGc& gc = SystemGc();
+        DrawIndicator( gc, aRect, iRemotePlayerIconRect, iRemotePlayerIcon );
         }
     }