--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/mmsharing/mmshengine/src/musengorientationhandler.cpp Wed Sep 01 12:31:01 2010 +0100
@@ -0,0 +1,173 @@
+/*
+* Copyright (c) 2005-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:
+*
+*/
+
+
+// USER
+#include "musengorientationhandler.h"
+#include "muslogger.h"
+#include "musenglivesession.h"
+#include "musenglivesessionobserver.h"
+
+// SYSTEM
+
+const TInt KMusEngDelayedResume = 500000; // 500 ms
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CMusEngOrientationHandler* CMusEngOrientationHandler::NewL(
+ CMusEngLiveSession& aSession, MMusEngLiveSessionObserver& aSessionObserver )
+ {
+ CMusEngOrientationHandler* self =
+ new (ELeave) CMusEngOrientationHandler( aSession, aSessionObserver );
+ CleanupStack::PushL( self );
+ self->ConstructL();
+ CleanupStack::Pop( self);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CMusEngOrientationHandler::~CMusEngOrientationHandler()
+ {
+ MUS_LOG( "mus: [ENGINE] CMusEngOrientationHandler::~CMusEngOrientationHandler()" )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngOrientationHandler::RefreshOrientationL()
+ {
+ MUS_LOG( "mus: [ENGINE] -> CMusEngOrientationHandler::RefreshOrientationL()" )
+ if ( !IsActive() )
+ {
+ TBool refreshBeginStateCamera = iSession.IsPlayingL();
+ TBool refreshBeginStateDisplay = iSession.IsDisplayEnabledL();
+
+ if ( refreshBeginStateCamera )
+ {
+ MUS_LOG( "mus: [MUSENG] -> Playing, pause/stop to restart camera" );
+ iSession.PauseL();
+ }
+
+ if ( refreshBeginStateDisplay )
+ {
+ MUS_LOG( "mus: [MUSENG] -> display is enabled, disable/enable it");
+ iSession.EnableDisplayL(EFalse);
+ }
+ iRefreshBeginStateCamera = refreshBeginStateCamera;
+ iRefreshBeginStateDisplay = refreshBeginStateDisplay;
+ }
+
+ DoDelayedResumeL();
+
+ MUS_LOG( "mus: [ENGINE] <- CMusEngOrientationHandler::RefreshOrientationL()" )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngOrientationHandler::UpdateL()
+ {
+ MUS_LOG( "mus: [ENGINE] -> CMusEngOrientationHandler::UpdateL()" )
+ iRefreshBeginStateCamera = iSession.IsPlayingL();
+ iRefreshBeginStateDisplay = iSession.IsDisplayEnabledL();
+ MUS_LOG2( "mus: [ENGINE] <- CMusEngOrientationHandler::UpdateL(), cam:%d disp:%d",
+ iRefreshBeginStateCamera, iRefreshBeginStateDisplay )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngOrientationHandler::RunL()
+ {
+ MUS_LOG( "mus: [ENGINE] -> CMusEngOrientationHandler::RunL()" )
+
+ TBool refreshBeginStateCamera = iRefreshBeginStateCamera;
+ TBool refreshBeginStateDisplay = iRefreshBeginStateDisplay;
+
+ iSessionObserver.OrientationRefreshEnded();
+
+ if ( refreshBeginStateDisplay )
+ {
+ MUS_LOG( "mus: [ENGINE] enable display after delayed orientation" )
+ iSession.EnableDisplayL(ETrue);
+ }
+
+ if ( refreshBeginStateCamera )
+ {
+ MUS_LOG( "mus: [ENGINE] enable camera after delayed orientation" )
+ iSession.PlayL();
+ }
+ MUS_LOG( "mus: [ENGINE] <- CMusEngOrientationHandler::RunL()" )
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+TInt CMusEngOrientationHandler::RunError( TInt aError )
+ {
+ MUS_LOG( "mus: [ENGINE] <-> CMusEngOrientationHandler::RunError()" )
+ aError = KErrNone;
+ return aError;
+ }
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngOrientationHandler::DoDelayedResumeL()
+ {
+ if ( IsActive() )
+ {
+ Cancel();
+ }
+ After( KMusEngDelayedResume );
+ }
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+CMusEngOrientationHandler::CMusEngOrientationHandler(
+ CMusEngLiveSession& aSession, MMusEngLiveSessionObserver& aSessionObserver )
+ : CTimer( CActive::EPriorityStandard ), iSession( aSession ),
+ iSessionObserver( aSessionObserver )
+ {
+ CActiveScheduler::Add(this);
+ }
+
+
+// -----------------------------------------------------------------------------
+//
+// -----------------------------------------------------------------------------
+//
+void CMusEngOrientationHandler::ConstructL()
+ {
+ MUS_LOG( "mus: [ENGINE] -> CMusEngOrientationHandler::ConstructL()" )
+
+ CTimer::ConstructL();
+
+ MUS_LOG( "mus: [ENGINE] <- CMusEngOrientationHandler::ConstructL()" )
+ }
+