diff -r 8b2d6d0384b0 -r d9aefe59d544 camerauis/cameraxui/cxengine/inc/api/cxeautofocuscontrol.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraxui/cxengine/inc/api/cxeautofocuscontrol.h Fri Apr 16 14:51:30 2010 +0300 @@ -0,0 +1,121 @@ +/* +* Copyright (c) 2009 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 CXEAUTOFOCUSCONTROL_H +#define CXEAUTOFOCUSCONTROL_H + +#include +#include +#include "cxeerror.h" + +class QImage; + + +/** + * CxeAutoFocusControl is responsible for handling Autofocus events from the camera adaptation. + * It also routes the Autofocus successful and failed events to the clients interested in Žknowing the + * status of Autofocus. + */ +class CxeAutoFocusControl : public QObject + { + Q_OBJECT +public: + + /* + * Autofocus control states. + */ + enum State + { + //! focusing + InProgress = 0x01, + + //! Autofocus Failed + Failed = 0x02, + + //! Focused + Ready = 0x04, + + //! State after successfully canceling AF or during startup + Unknown = 0x08, + + //! Starting to cancel any pending AF requests + Canceling = 0x10 // Starting to Cancel any pending AF requests + }; + + // TODO: Check if we have to get all the supported modes from adaptation. + enum Mode + { + //! AF mode: Auto + Auto, + + //! AF mode: Hyperfocal + Hyperfocal, + + //! AF mode: Macro + Macro, + + //! AF mode: Infinity + Infinity, + + //! AF mode: Portrait + Portrait + }; + + /** + * Starts Autofocus. + */ + virtual CxeError::Id start() = 0; + + /** + * Cancels Autofocus. + */ + virtual void cancel() = 0; // cancels active start operation + + + /** + * Setting Autofocus Mode. + */ + virtual void setMode( Mode newMode ) = 0; // sets default value for current view/mode + + /** + * Get current Autofocus mode. + */ + virtual Mode mode() const = 0; + + /** + * Get current Autofocus state. + */ + virtual State state() const = 0; // returns current AF state, one of AutoFocusState + + /** + * Check if Autofocus is Supported or Not. + */ + virtual bool supported() const = 0; // true when AF is supported + +signals: + void stateChanged( CxeAutoFocusControl::State newState, CxeError::Id error ); + +protected: + CxeAutoFocusControl() {} // protected empty contructor so that derived class construction works + +private: + Q_DISABLE_COPY( CxeAutoFocusControl ) + }; + +Q_DECLARE_METATYPE(CxeAutoFocusControl::State) + +#endif // CXEAUTOFOCUSCONTROL_H