diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraapp/generic/inc/CamZoomUpdateManager.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraapp/generic/inc/CamZoomUpdateManager.h Wed Sep 01 12:30:54 2010 +0100 @@ -0,0 +1,117 @@ +/* +* Copyright (c) 2003-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: ??????????????????? +* +*/ + +#ifndef CCAMZOOMUPDATEMANAGER_H +#define CCAMZOOMUPDATEMANAGER_H + +// INCLUDES +#include +#include "CamAppController.h" // for controller definition + +// FORWARD DECLARATIONS + +//CLASS DECLARATIONS + +/** +* Camera Zoom Update Class +* +* Implements a cooldown period to avoid overtaxing the camera driver with touchscreen zoom updates. +* +* @since 5.0 +*/ +class CCamZoomUpdateManager : public CActive + { + public: // constructors and destructor + + /** + * Two-phased constructor. + */ + static CCamZoomUpdateManager* NewL( CCamAppController& aController ); + + /** + * Destructor. + */ + ~CCamZoomUpdateManager(); + + /** + * From CActive Does the required action (calls the observer) + */ + void SetZoomValue( TInt aValue ); + + protected: // from base classes + + /** + * From CActive Does the required action (calls the observer) + */ + void RunL(); + + /** + * From CActive Cancels pending actions + */ + void DoCancel(); + + private: // constructor + + /** + * C++ default constructor. + */ + CCamZoomUpdateManager( CCamAppController& aController ); + + /** + * Symbian 2nd phase constructor + */ + void ConstructL(); + + /** + * Notify the controller and SetActive + */ + void UpdateAndStartWait(); + + /** + * Get delay values from cenrep + */ + void ReadDelayValuesL(); + + private: // data + + // timer used to facilitate cooldown period + RTimer iTimer; + + // time used to force update if active object gets starved + TTime iCooldownStart; + + // the value to give to the controller + TInt iValue; + + // handle outstanding update requests + TBool iDelayedUpdate; + + // reference to the controller used for setting the zoom + CCamAppController& iController; + + // Variated values for cooldown period inbetween + // camera driver updates + TInt iCamZoomCooldown; + TInt iCamMaxZoomCooldown; + + }; + +#endif + +// End of File + +