camerauis/cameraapp/generic/src/camflashstatus.cpp
changeset 19 d9aefe59d544
parent 3 8b2d6d0384b0
child 21 fa6d9f75d6a6
child 28 3075d9b614e6
--- a/camerauis/cameraapp/generic/src/camflashstatus.cpp	Tue Feb 02 00:01:39 2010 +0200
+++ /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
-