videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp
branchRCL_3
changeset 23 befca0ec475f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoplayerapp/mpxvideoplayer/src/mpxvideoplayerappui.cpp	Wed Sep 01 12:30:28 2010 +0100
@@ -0,0 +1,321 @@
+/*
+* Copyright (c) 2008 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:  AppUI implementation
+*
+*/
+
+// Version : %version: da1mmcf#e92_38.1.1 %
+
+
+#include <hlplch.h>                     // Help launcher
+#include <sysutil.h>                    // disk space check
+#include <f32file.h>                    // TDriveNumber::EDriveC
+#include <s32mem.h>
+#include <StringLoader.h>
+#include <AknQueryDialog.h>
+#include <aknview.h>
+#include <aknconsts.h>
+#include <AknDef.h>
+#include <AiwGenericParam.h>
+#include <coeutils.h>
+
+#include <mpxplaybackutility.h>
+#include <mpxplaybackmessage.h>
+#include <mpxviewutility.h>
+#include <vcxmyvideosdefs.h>
+#include <mpxvideoplayer.rsg>
+
+#include "mpxvideoplayerappui.h"
+#include "mpxvideoplayerconstants.h"
+#include "mpxvideoplayerlogger.h"
+#include "mpxvideoplayerappuiengine.h"
+#include "mpxvideoplayeraiwparamextractor.h"
+#include "mpxvideo_debug.h"
+#include "videoplayerpskeys.h"
+
+// ======== MEMBER FUNCTIONS ========
+// -----------------------------------------------------------------------------
+// CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi
+// -----------------------------------------------------------------------------
+//
+CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi()
+{
+    MPX_DEBUG(_L("CMpxVideoPlayerAppUi::CMpxVideoPlayerAppUi()"));
+}
+
+// -----------------------------------------------------------------------------
+// CMpxVideoPlayerAppUi::ConstructL
+// -----------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::ConstructL()
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::ConstructL()"));
+
+    BaseConstructL( EAknEnableSkin | EAknSingleClickCompatible );
+
+    if ( IsEmbedded() )
+    {
+        //
+        //  Set the orientation to landscape for Embedded instances
+        //
+        SetOrientationL( CAknAppUiBase::EAppUiOrientationLandscape );
+
+        //
+        //  Hide status pane for embedded use cases
+        //
+        MPX_DEBUG(_L("CMpxVideoPlayerAppUi::ConstructL() Hide Status Pane"));
+        StatusPane()->MakeVisible( EFalse );
+    }
+
+    iAppUiEngine = CMpxVideoPlayerAppUiEngine::NewL( this );
+}
+
+// -----------------------------------------------------------------------------
+// CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi
+// Destructor. Frees reserved resources
+// -----------------------------------------------------------------------------
+//
+CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi()
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::~CMpxVideoPlayerAppUi()"));
+
+    delete iAppUiEngine;
+}
+
+// -----------------------------------------------------------------------------
+// CMpxVideoPlayerAppUi::HandleExit
+// Handles exit command
+// -----------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::HandleExit()
+{
+    Exit();
+}
+
+// -----------------------------------------------------------------------------
+// CMpxVideoPlayerAppUi::ProcessCommandParametersL
+// From CEikAppUi, called from plugin when remind occurs and MpxVideoPlayer is not
+// exist
+// -----------------------------------------------------------------------------
+//
+TBool CMpxVideoPlayerAppUi::ProcessCommandParametersL( TApaCommand aCommand,
+                                                       TFileName& aDocumentName,
+                                                       const TDesC8& aTail )
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::ProcessCommandParametersL()"),
+                   _L("aCommand = %d"), aCommand );
+
+
+    return iAppUiEngine->ProcessCommandParametersL( aCommand, aDocumentName, aTail );
+}
+
+// ---------------------------------------------------------------------------
+// From CEikAppUi.
+// Handle window server events.
+// ---------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::HandleWsEventL( const TWsEvent& aEvent, CCoeControl* aDestination )
+{
+    TInt eventType = aEvent.Type();
+
+    //
+    //  Close from the End Call Key or the Exit Cmd from the Task Switcher
+    //
+    if ( eventType == KAknUidValueEndKeyCloseEvent || eventType == KAknShutOrHideApp )
+    {
+        MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleWsEventL() Closed by framework"));
+
+        iAppUiEngine->ClosePlaybackPluginL();
+    }
+
+    CAknAppUi::HandleWsEventL( aEvent, aDestination );
+}
+
+// -----------------------------------------------------------------------------
+// CMpxVideoPlayerAppUi::HandleCommandL
+// -----------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::HandleCommandL( TInt aCommand )
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::HandleCommandL()"),
+                   _L("aCommand = %d"), aCommand );
+
+    switch ( aCommand )
+    {
+        case EEikCmdExit: // fall through
+        case EAknCmdExit:
+        {
+            MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleCommandL() - Exit"));
+
+            iAppUiEngine->ClosePlaybackPluginL();
+
+            HandleExit();
+            break;
+        }
+        case EAknSoftkeyBack:
+        {
+            iAppUiEngine->HandleSoftKeyBackL();
+            break;
+        }
+        case EAknCmdHelp:
+        {
+            MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleCommandL() - Help"));
+            HlpLauncher::LaunchHelpApplicationL( iEikonEnv->WsSession(), AppHelpContextL() );
+            break;
+        }
+        case EAknCmdHideInBackground:
+        {
+            iAppUiEngine->ClearPdlInformation();
+            break;
+        }
+        case KVcxMyVideosCmdDoLateConstruct:
+        {
+             MPX_DEBUG(_L("CMpxVideoPlayerAppUi::HandleCommandL( DoLateConstruct )"));
+             iAppUiEngine->ActivateLateConstructTimerL();
+             break;
+        }
+    }
+}
+
+// ---------------------------------------------------------------------------
+// Querying whether the application is launched in embedded mode or not.
+// ---------------------------------------------------------------------------
+//
+TBool CMpxVideoPlayerAppUi::IsEmbedded() const
+{
+    TBool embedded = iEikonEnv->StartedAsServerApp();
+
+    MPX_DEBUG(_L("CMpxVideoPlayerAppUi::IsEmbedded(%d)"), embedded );
+
+    return embedded;
+}
+
+// ---------------------------------------------------------------------------
+// Opens the specified file in response to a corresponding message.
+// ---------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::OpenFileL( RFile& aFile, const CAiwGenericParamList* aParams )
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::OpenFileL(RFile)"));
+
+    MPX_TRAPD( err, iAppUiEngine->OpenFileL( aFile, aParams ) );
+
+    //
+    //  Cancel comes from a Cancel on the Select AP dialog
+    //  Perform a softkey back
+    //
+    if ( err )
+    {
+        if ( err == KErrCancel )
+        {
+            // if the app is launched in embedded mode (view history depth would be zero)
+            // we close the app using the softkey back, if it was launched by a active view
+            // we stay in that view.
+            if ( iAppUiEngine->ViewHistoryDepth() <= 0 )
+            {
+                MPX_TRAPD( error, HandleCommandL( EAknSoftkeyBack ) );
+            }
+        }
+        else
+        {
+            User::Leave( err );
+        }
+    }
+
+    aFile.Close();
+}
+
+// ---------------------------------------------------------------------------
+// From CEikAppUi.
+// Opens the specified file
+// ---------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::OpenFileL( const TDesC& aFileName )
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::OpenFileL()"),
+                   _L("aFileName = %S"), &aFileName );
+
+    MPX_TRAPD( err, iAppUiEngine->OpenFileL( aFileName ) );
+
+    //
+    //  Cancel comes from a Cancel on the Select AP dialog
+    //  Perform a softkey back
+    //
+    if ( err )
+    {
+        if ( err == KErrCancel )
+        {
+            // if the app is launched in embedded mode (view history depth would be zero)
+            // we close the app using the softkey back, if it was launched by a active view
+            // we stay in that view.
+            if ( iAppUiEngine->ViewHistoryDepth() <= 0 )
+            {
+                MPX_TRAPD( error, HandleCommandL( EAknSoftkeyBack ) );
+            }
+        }
+        else
+        {
+            User::Leave( err );
+        }
+    }
+}
+
+// -----------------------------------------------------------------------------
+// From CEikAppUi
+// -----------------------------------------------------------------------------
+//
+MCoeMessageObserver::TMessageResponse
+CMpxVideoPlayerAppUi::HandleMessageL( TUint32 aClientHandleOfTargetWindowGroup,
+                                      TUid aMessageUid,
+                                      const TDesC8& aMessageParameters )
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::HandleMessageL()"));
+
+    MCoeMessageObserver::TMessageResponse ret( EMessageNotHandled );
+
+    if ( iAppUiEngine->HandleMessageL( aMessageUid, aMessageParameters ) )
+    {
+        ret = EMessageHandled;
+    }
+    else
+    {
+        ret = CAknViewAppUi::HandleMessageL( aClientHandleOfTargetWindowGroup,
+                                             aMessageUid,
+                                             aMessageParameters );
+    }
+
+    return  ret;
+}
+
+// ---------------------------------------------------------------------------
+// From CCoeAppUi.
+// Handle foreground event.
+// ---------------------------------------------------------------------------
+//
+void CMpxVideoPlayerAppUi::HandleForegroundEventL( TBool aForeground )
+{
+    MPX_ENTER_EXIT(_L("CMpxVideoPlayerAppUi::HandleForegroundEventL()"),
+                   _L("aForeground = %d"), aForeground );
+
+    CAknViewAppUi::HandleForegroundEventL( aForeground );
+}
+
+// ---------------------------------------------------------------------------
+// Return active view.
+// ---------------------------------------------------------------------------
+CAknView* CMpxVideoPlayerAppUi::View()
+{
+    return iView;
+}
+