mpxplugins/viewplugins/views/playbackview/src/mpxplaybackviewimp.cpp
changeset 0 ff3acec5bc43
child 15 a1247965635c
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mpxplugins/viewplugins/views/playbackview/src/mpxplaybackviewimp.cpp	Thu Dec 17 08:45:05 2009 +0200
@@ -0,0 +1,267 @@
+/*
+* Copyright (c) 2006 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementation of Playback view
+*
+*/
+
+
+
+// INCLUDE FILES
+#include <aknViewAppUi.h>
+#include <eikmenub.h>
+#include <eikapp.h>
+#include <AknUtils.h>
+#include <bautils.h>
+#include <data_caging_path_literals.hrh>
+#include <mpxcommonplaybackview.rsg>
+#include <mpxplaybackview.rsg>
+
+#include "mpxplaybackview.hrh"
+#include "mpxplaybackviewimp.h"
+#include "mpxplaybackviewcontainer.h"
+#include "mpxplaybackviewlayout.h"
+#include "mpxlog.h"
+
+#include <mpxplaybackutility.h>
+#include <akntoolbar.h>
+#include <aknbutton.h>
+#include "mpxcommonplaybackview.hrh"
+#include <mpxmessagegeneraldefs.h>
+#include <mpxplaybackmessage.h>
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// C++ default constructor can NOT contain any code, that
+// might leave.
+// ---------------------------------------------------------------------------
+//
+CMPXPlaybackViewImp::CMPXPlaybackViewImp()
+    {
+    // Do nothing
+    }
+
+// ---------------------------------------------------------------------------
+// Symbian 2nd phase constructor can leave.
+// ---------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::ConstructL()
+    {
+    MPX_FUNC( "CMPXPlaybackViewImp::ConstructL" );
+
+    CMPXCommonPlaybackViewImp::ConstructL();
+
+    BaseConstructL( R_MPX_PLAYBACK_VIEW );
+    if(AknLayoutUtils::PenEnabled())
+    {
+    if ( Toolbar() )
+        {
+        iToolbar = Toolbar();
+        iToolbar->SetToolbarObserver( this );
+        }
+    }
+
+    }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CMPXPlaybackViewImp* CMPXPlaybackViewImp::NewL()
+    {
+    CMPXPlaybackViewImp* self = CMPXPlaybackViewImp::NewLC();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Two-phased constructor.
+// ---------------------------------------------------------------------------
+//
+CMPXPlaybackViewImp* CMPXPlaybackViewImp::NewLC()
+    {
+    CMPXPlaybackViewImp* self = new ( ELeave ) CMPXPlaybackViewImp();
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    return self;
+    }
+
+// ---------------------------------------------------------------------------
+// Destructor
+// ---------------------------------------------------------------------------
+//
+CMPXPlaybackViewImp::~CMPXPlaybackViewImp()
+    {
+    MPX_DEBUG1( "CMPXPlaybackViewImp::~CMPXPlaybackViewImp entering" );
+
+    delete iPlaybackViewLayout;
+
+    MPX_DEBUG1( "CMPXPlaybackViewImp::~CMPXPlaybackViewImp exiting" );
+    }
+
+
+// ---------------------------------------------------------------------------
+// From MEikMenuObserver
+// Dynamically initialises a menu pane.
+// ---------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::DynInitMenuPaneL(
+    TInt aResourceId,
+    CEikMenuPane* aMenuPane )
+    {
+    CMPXCommonPlaybackViewImp::DynInitMenuPaneL( aResourceId, aMenuPane );
+    }
+
+// ---------------------------------------------------------------------------
+// From CAknView
+// Returns views id.
+// ---------------------------------------------------------------------------
+//
+TUid CMPXPlaybackViewImp::Id() const
+    {
+    return TUid::Uid( KMPXPlaybackViewId );
+    }
+
+// ---------------------------------------------------------------------------
+// From CAknView
+// Processes user commands.
+// ---------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::ProcessCommandL( TInt aCommand )
+    {
+    MPX_DEBUG2("CMPXPlaybackViewImp::ProcessCommandL(%d): entering", aCommand);
+    if ( aCommand == EAknCmdExit )
+        {
+        if ( MenuBar() )
+            {
+            MenuBar()->StopDisplayingMenuBar();
+            }
+		HandleCommandL( aCommand );
+        }
+    CAknView::ProcessCommandL( aCommand );
+    MPX_DEBUG1("CMPXPlaybackViewImp::ProcessCommandL(): exiting");
+    }
+
+// ---------------------------------------------------------------------------
+// From CAknView
+// Handles a view activation.
+// ---------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::DoActivateL(
+    const TVwsViewId& aPrevViewId,
+    TUid aCustomMessageId,
+    const TDesC8& aCustomMessage )
+    {
+    MPX_FUNC( "CMPXPlaybackViewImp::DoActivateL()" );
+MPX_PERF_START(CWM_CMPXPlaybackViewImp_DoActivateL);
+    if ( !iContainer )
+        {
+        if ( !iPlaybackViewLayout )
+            {
+            iPlaybackViewLayout = CMPXPlaybackViewLayout::NewL();
+            }
+        iContainer = new ( ELeave ) CMPXPlaybackViewContainer(
+            this,
+            this,
+            iPlaybackViewLayout );
+        iContainer->SetMopParent( this );
+        iContainer->ConstructL( ClientRect() );
+        AppUi()->AddToStackL( *this, iContainer );
+        }
+    else
+        {
+        AppUi()->AddToStackL( *this, iContainer );
+        }
+
+    CMPXCommonPlaybackViewImp::DoActivateL( aPrevViewId , aCustomMessageId, aCustomMessage );
+    UpdateMiddleSoftKeyDisplayL();
+    MPX_PERF_CHECKPT("Playback view displayed");
+MPX_PERF_END(CWM_CMPXPlaybackViewImp_DoActivateL);
+    }
+
+// ---------------------------------------------------------------------------
+// Handle playback message.
+// ---------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::DoHandlePlaybackMessageL(
+    const CMPXMessage& aMessage )
+    {
+    MPX_DEBUG1( "CMPXPlaybackViewImp::DoHandlePlaybackMessageL");
+
+    TMPXMessageId id( *aMessage.Value<TMPXMessageId>( KMPXMessageGeneralId ) );
+    if ( KMPXMessageGeneral == id )
+        {
+        TInt type( *aMessage.Value<TInt>( KMPXMessageGeneralType ) );
+        TInt data( *aMessage.Value<TInt>( KMPXMessageGeneralData ) );
+        switch ( *aMessage.Value<TInt>( KMPXMessageGeneralEvent ) )
+            {
+            case TMPXPlaybackMessage::EStateChanged:
+                UpdateMiddleSoftKeyDisplayL();
+                UpdateToolbar();
+                break;
+
+            default:
+                break;
+            }
+        }
+    CMPXCommonPlaybackViewImp::DoHandlePlaybackMessageL (aMessage);
+    }
+
+// -----------------------------------------------------------------------------
+// From MAknToolbarObserver
+// Used to change toolbar settings before toolbar becomes visible
+// -----------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::DynInitToolbarL(TInt aResourceId, CAknToolbar* aToolbar)
+    {
+    if (aResourceId == R_MPX_PBV_TOUCH_TOOLBAR)
+        {
+        // Put initializations here to take effect before toolbar is shown
+        UpdateToolbar();
+    	aToolbar->UpdateBackground();
+       }
+    }
+
+// -----------------------------------------------------------------------------
+// From MAknToolbarObserver
+// Handles toolbar events
+// -----------------------------------------------------------------------------
+//
+void CMPXPlaybackViewImp::OfferToolbarEventL( TInt aCommandId )
+    {
+    TInt commandId = aCommandId;
+    TInt eventModifiers = iToolbar->EventModifiers();
+    if ( eventModifiers == CAknToolbar::ELongPress )
+    	{
+    	if ( aCommandId == EMPXPbvCmdNextListItem )
+    		{
+    		commandId = EMPXPbvCmdSeekForward;
+    		}
+    	else if ( aCommandId == EMPXPbvCmdPreviousListItem )
+    		{
+    		commandId = EMPXPbvCmdSeekBackward;
+    		}
+    	}
+    else if ( eventModifiers == CAknToolbar::ELongPressEnded )
+    	{
+    	if ( aCommandId == EMPXPbvCmdNextListItem || aCommandId == EMPXPbvCmdPreviousListItem )
+    	    {
+    	    commandId = EMPXPbvCmdEndSeek;
+    	    }
+    	}
+
+    CAknView::ProcessCommandL( commandId );
+    }
+
+//  End of File