--- a/camerauis/cameraapp/generic/src/camflashstatus.cpp Thu Aug 19 09:36:57 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,381 +0,0 @@
-/*
-* Copyright (c) 2007 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: Implemantation for CCamFlashStatus class.
-*
-* Copyright © 2007 Nokia. All rights reserved.
-* This material, including documentation and any related computer
-* programs, is protected by copyright controlled by Nokia. All
-* rights are reserved. Copying, including reproducing, storing,
-* adapting or translating, any or all of this material requires the
-* prior written consent of Nokia. This material also contains
-* confidential information which may not be disclosed to others
-* without the prior written consent of Nokia.
-
-*
-*
-*/
-
-
-// #include "CamPropertyWatcher.h"
-// #include "CamUtility.h"
-#include "camlogging.h"
-#include "CamSettings.hrh"
-#include "CamSettingsInternal.hrh"
-#include "camcameraevents.h"
-#include "CamAppController.h"
-#include "camflashstatus.h"
-
-static const TUint KCameraEventInterest = ECamCameraEventClassFlashStatus;
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::CCamFlashStatus
-// ---------------------------------------------------------------------------
-//
-CCamFlashStatus::CCamFlashStatus( CCamAppController& aController ):
- iErrorCallbacksEnabled( ETrue ),
- iController( aController )
- {
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::~CCamFlashStatus
-// ---------------------------------------------------------------------------
-//
-CCamFlashStatus::~CCamFlashStatus()
- {
- iController.RemoveCameraObserver( this );
-
- if( iBlinkTimer )
- {
- iBlinkTimer->Cancel();
- delete iBlinkTimer;
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::NewL
-// ---------------------------------------------------------------------------
-//
-CCamFlashStatus*
-CCamFlashStatus::NewL( CCamAppController& aController )
- {
- CCamFlashStatus* self =
- new (ELeave) CCamFlashStatus( aController );
- CleanupStack::PushL( self );
- self->ConstructL();
- CleanupStack::Pop(); // self
- return self;
- }
-
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::ConstructL
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::ConstructL()
- {
- iBlinkTimer = CPeriodic::NewL( EPriorityLow );
-
- iController.AddCameraObserverL( this, KCameraEventInterest );
- iFlashError = EFalse;
- iFlashRequired = EFalse;
- iFlashReady = EFalse;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::Subscribe
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::Subscribe( MFlashStatusObserver* aObserver )
- {
- PRINT1( _L("Camera => CCamFlashStatus::Subscribe, observer ptr:%d"), aObserver );
- iObserver = aObserver;
-
- // If there is need to blink, but no observer before,
- // we need to recheck the blinking status when observer subscribes.
- CheckBlinkingStatus();
-
- PRINT ( _L("Camera <= CCamFlashStatus::Subscribe") );
- }
-
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::FlashReady
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamFlashStatus::FlashReady() const
- {
- return iFlashReady;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::FlashError
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamFlashStatus::FlashError() const
- {
- return iFlashError;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::SetFlashError
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::SetFlashError( TBool aFlashError )
- {
- iFlashError = aFlashError;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::ErrorCallbacksEnabled
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamFlashStatus::ErrorCallbacksEnabled() const
- {
- return iErrorCallbacksEnabled;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::EnableErrorCallback
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::EnableErrorCallbacks( TBool aCallbacksEnabled )
- {
- iErrorCallbacksEnabled = aCallbacksEnabled;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::FlashIconVisible
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamFlashStatus::FlashIconVisible() const
- {
- return iBlinkStatus;
- }
-
-
-// ---------------------------------------------------------------------------
-// HandleCameraEventL <<virtual>>
-//
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::HandleCameraEventL( TInt aStatus,
- TCamCameraEventId aEventId,
- TAny* aEventData /*= NULL*/ )
- {
- PRINT( _L("Camera => CCamFlashStatus::HandleCameraEventL") );
-
- switch( aEventId )
- {
- // ---------------------------------------------------
- // Flash ready.
- case ECamCameraEventFlashReady:
- {
- PRINT ( _L("Camera <> CCamFlashStatus: Flash ready") );
- iFlashError = aStatus;
- iFlashReady = (KErrNone == aStatus);
- break;
- }
- // ---------------------------------------------------
- // Flash not ready, e.g. recharging.
- case ECamCameraEventFlashNotReady:
- {
- PRINT ( _L("Camera <> CCamFlashStatus: Flash NOT ready") );
- iFlashError = aStatus;
- iFlashReady = EFalse;
- break;
- }
- // ---------------------------------------------------
- default:
- {
- PRINT ( _L("Camera <> CCamFlashStatus: unhandled event!") );
- break;
- }
- // ---------------------------------------------------
- }
-
- // Check if need to start/stop blinking
- CheckBlinkingStatus();
-
- // Notify error
- if( iFlashError )
- {
- NotifyObserverAboutFlashError();
- }
-
- PRINT( _L("Camera <= CCamFlashStatus::HandleCameraEventL") );
- }
-
-
-// ---------------------------------------------------------------------------
-// CheckBlinkingStatus
-//
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::CheckBlinkingStatus()
- {
- // If blinking is on, check if it needs to be stopped
- if( iBlinking )
- {
- // No observer OR flash ready OR flash error OR flash off
- // => stop blinking
- if( !iObserver
- || iFlashReady
- || iFlashError
- || IsFlashOff() )
- {
- StopBlinking();
- }
- }
- // If blinking is off, check if it needs to be started.
- else
- {
- // Observer joined AND flash not ready AND no error AND flash used
- // => start blinking
- if( iObserver && !iFlashReady && !iFlashError && !IsFlashOff() )
- {
- StartBlinking();
- }
- }
- }
-
-
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::StartBlinking
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::StartBlinking()
- {
- // Start blinking only if some observer is displaying the status
- if( iObserver )
- {
- PRINT( _L("Camera =><= CamFlashStatus::StartBlinking - starting blinking") )
- iBlinking = ETrue;
- iBlinkStatus = EFalse;
- // Make first callback to make the flash icon visible
- BlinkTimerCallback( this );
-
- // Start the blinking timer
- iBlinkTimer->Cancel();
- iBlinkTimer->Start( KFlashIconBlinkDelay,
- KFlashIconBlinkDelay,
- TCallBack( BlinkTimerCallback, this) );
-
- }
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::StopBlinking
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::StopBlinking()
- {
- PRINT( _L("Camera =><= CamFlashStatus::StopBlinking - stopping blinking") )
-
- // Stop blinking
- iBlinking = EFalse;
- iBlinkTimer->Cancel();
-
- if( iBlinkStatus )
- {
- // The flash icon is visible. Make one more callback to
- // hide it.
- BlinkTimerCallback( this );
- }
- }
-
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::BlinkTimerCallback
-// ---------------------------------------------------------------------------
-//
-TInt
-CCamFlashStatus::BlinkTimerCallback( TAny* aSelf )
- {
- PRINT( _L("Camera => CamFlashStatus::BlinkTimerCallback") )
-
- CCamFlashStatus* self = static_cast<CCamFlashStatus*>( aSelf );
- if( self )
- {
- // Invert icon visibility
- TBool newBlinkStatus = self->iBlinkStatus ? EFalse : ETrue;
- self->iBlinkStatus = newBlinkStatus;
-
- // Inform observer of change
- if( self->iObserver )
- {
- self->iObserver->FlashIconVisible( newBlinkStatus );
- }
- }
-
- PRINT( _L("Camera <= CamFlashStatus::BlinkTimerCallback") )
- return KErrNone;
- }
-
-
-// ---------------------------------------------------------------------------
-// FlashOff
-// ---------------------------------------------------------------------------
-//
-TBool
-CCamFlashStatus::IsFlashOff() const
- {
- TInt key = KErrNotFound;
- TCamCameraMode mode = iController.CurrentMode();
-
- switch( mode )
- {
- case ECamControllerImage: key = ECamSettingItemDynamicPhotoFlash; break;
- case ECamControllerVideo: key = ECamSettingItemDynamicVideoFlash; break;
- default:
- break;
- }
-
- TBool off = ( KErrNotFound == key // Not prepared or standby mode.
- || ECamFlashOff == iController.IntegerSettingValue( key )
- );
-
- return off;
- }
-
-// ---------------------------------------------------------------------------
-// CCamFlashStatus::NotifyObserverAboutFlashError
-// ---------------------------------------------------------------------------
-//
-void
-CCamFlashStatus::NotifyObserverAboutFlashError()
- {
- if( iErrorCallbacksEnabled && iObserver )
- {
- // Give error callback to the observer.
- iObserver->FlashError();
- }
- }
-
-
-// End of file
-