diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraapp/generic/inc/camflashstatus.h --- a/camerauis/cameraapp/generic/inc/camflashstatus.h Tue Feb 02 00:01:39 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,280 +0,0 @@ - -#ifndef CAMFLASHSTATUS_H -#define CAMFLASHSTATUS_H/* -* 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: Header file 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. -* -* -*/ - - - -// =========================================================================== -// INCLUDES - -#include -#include "mcamcameraobserver.h" - - -// =========================================================================== -// CONSTANTS - -// Flash icon blinking delay (duration of icon on/off state) -const TInt KFlashIconBlinkDelay = 300*1000; // [microseconds] - -// Enumerated flash charging states. Should probably be -// defined in the driver's headers and included from there. -enum TFlashChargeStatus - { - EFlashCharged = 0x1, - EFlashRequired = 0x2, - EFlashChargeTimeout = 0x4 - }; - -/* -// Flash P&S UID & key -#ifndef CAMERAAPP_SIMULATE_XENON_FLASH -const TInt KFlashPSUid = 0xA0002371; -#else -// Use application UID to simulate the flash charging publish -// and subscribe property. This way, no extra capabilities are needed -// for creating the property. -const TInt KFlashPSUid = 0x101FFA86; -#endif // CAMERAAPP_SIMULATE_XENON_FLASH -const TInt KFlashPSKey = 0; -*/ - - -// =========================================================================== -// FORWARD DECLARATIONS - -// -//class CCamPropertyWatcher; -class CCamAppController; - - -// =========================================================================== -// CLASS DECLARATION - -/** -* Interface to notify observer of flash icon visibility. -* This is used to create icon blinking effect when the flash -* is being recharged. -*/ -class MFlashStatusObserver - { - public: - /* - * Flash icon visibility has changed. - * @param aVisible new visibility status - */ - virtual void FlashIconVisible( TBool aVisible ) = 0; - - /** - * Called every time when camera driver reports error in - * flash recharging. - */ - virtual void FlashError() = 0; - - }; - -/** -* Class to handle flash status and flash error status. -* -* - Keeps track of the flash recharge and flash error status -* - Creates events for visibility of the battery icon and uses -* this to create blinking effect when the flash is being -* charged -* - Gives an event when a charging error is received from -* the camera driver. In this case, the UI can display -* an error message. -* -*/ -class CCamFlashStatus: public CBase, - public MCamCameraObserver - //public MPropertyObserver - { - public: // Construction and destruction - - /** - * Two-phased constructor - */ - static CCamFlashStatus* NewL( CCamAppController& aController ); - - /** - * Destructor - */ - ~CCamFlashStatus(); - - public: // New functions - - /** - * Subscribes to flash icon blink events. At one time, only one - * observer can be listening for the events. An observer can - * unregister itself by giving NULL as aObserver parameter - * value. - * - * @param aObserver pointer to observer or NULL - */ - void Subscribe( MFlashStatusObserver* aObserver ); - - /** - * Returns true, if flash is fully charged, otherwise false - */ - TBool FlashReady() const; - - /** - * Returns true if there has been an error recharging the flash - */ - TBool FlashError() const; - - /** - * Set the value returned by FlashError. This may be needed - * before application pretended exit. - * @param aFlashError - */ - void SetFlashError( TBool aFlashError ); - - /** - * Returns true, if flash recharge error has already been - * reported to user. This eliminates the error displayed - * multiple times (for example, when switching between - * image and video modes) - */ - TBool ErrorCallbacksEnabled() const; - - /** - * Enable/disable flash error callbacks. Should be set to ETrue - * when error message is displayed to user, and to EFalse - * during pretended application exit. - * @param aErrorReported - */ - void EnableErrorCallbacks( TBool aCallbacksEnabled ); - - /** - * Returns true, if flash icon should be displayed, false - * otherwise. This cannot be used to determine the charging - * status of the flash. - */ - TBool FlashIconVisible() const; - - //public: // From MPropertyObserver - /** - * The value of a watched property has changed - * @param aCategory The category of the property - * @param aKey the Identifier of the property - */ - //void HandlePropertyChangedL( const TUid& aCategory, const TUint aKey ); - - public: // From MCamCameraObserver - - /** - * Handle camera event - */ - virtual void HandleCameraEventL( TInt aStatus, - TCamCameraEventId aEventId, - TAny* aEventData = NULL ); - - private: - - /** - * C++ default constructor - */ - CCamFlashStatus( CCamAppController& aController ); - - /** - * Second phase constructor - */ - void ConstructL(); - - /** - * Check if blinking needs to be stopped or started. - */ - void CheckBlinkingStatus(); - - /** - * Start flash icon blinking timer - */ - void StartBlinking(); - - /** - * Stop flash icon blinking timer, return - * the icon to invisible state. - */ - void StopBlinking(); - - /** - * Check if flash setting is off. - * Flash not ready events are ignored if flash setting is off. - */ - TBool IsFlashOff() const; - - /** - * Notifies observer about error, if necessary - */ - void NotifyObserverAboutFlashError(); - - /** - * Updates blink status of the flash icon. - * @param aThis - */ - static TInt BlinkTimerCallback( TAny* aSelf ); - - private: - - // Flash readiness to take a picture - TBool iFlashReady; - - // Flash is required to take a photo under current - // lighting conditions. - TBool iFlashRequired; - - // Flash recharging error status. - // If set to true, there has been an error in recharging - // the flash, and flash functionality is no more functional. - TBool iFlashError; - - // Determines whether cllabacks - TBool iErrorCallbacksEnabled; - - // Flash status observer. Typically the container where - // the flash icon resides. - MFlashStatusObserver* iObserver; - - // Timer used to create blinking effect of the flash icon - CPeriodic* iBlinkTimer; - - TBool iBlinking; - - // Icon visibility - // true - visible, EFalse - not visible - TBool iBlinkStatus; - - // Used for watching the flash P&S key - //CCamPropertyWatcher* iFlashPropertyWatcher; - - // Register for Camera events through controller. - CCamAppController& iController; - }; - -#endif // CAMFLASHSTATUS_H