diff -r feebad15db8c -r c826656d6714 camerauis/cameraxui/cxengine/src/cxeautofocuscontroldesktop.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/camerauis/cameraxui/cxengine/src/cxeautofocuscontroldesktop.cpp Fri Aug 06 10:03:37 2010 +0300 @@ -0,0 +1,173 @@ +/* +* Copyright (c) 2010 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: +* +*/ + +#include +#include + +//#include "cxesettings.h" +#include "cxeautofocuscontroldesktop.h" +#include "cxutils.h" +#include "cxestate.h" + +/* +* CxeAutoFocusControlSymbian::CxeAutoFocusControlSymbian +*/ +CxeAutoFocusControlDesktop::CxeAutoFocusControlDesktop() + : mCancelled(false), + mState(Unknown) +{ + CX_DEBUG_ENTER_FUNCTION(); + + qRegisterMetaType(); + + initializeStates(); + initializeResources(); + + CX_DEBUG_EXIT_FUNCTION(); +} + +/* +* CxeAutoFocusControlDesktop::~CxeAutoFocusControlDesktop +*/ +CxeAutoFocusControlDesktop::~CxeAutoFocusControlDesktop() +{ + CX_DEBUG_ENTER_FUNCTION(); + CX_DEBUG_EXIT_FUNCTION(); +} + +/* +* Start Autofocus +*/ +CxeError::Id CxeAutoFocusControlDesktop::start(bool soundEnabled) +{ + Q_UNUSED(soundEnabled); + + CX_DEBUG( ("CxeAutoFocusControlDesktop::start() <> state: %d", state() ) ); + + CxeError::Id err = CxeError::None; + + if (state() != CxeAutoFocusControl::InProgress && state() != CxeAutoFocusControl::Canceling) { + CX_DEBUG(("CxeAutoFocusControlDesktop::start() calling SetAutoFocusType")); + mCancelled = false; + mState = Ready; + emit stateChanged(mState, CxeError::None); + } else { // AF was started earlier, can't start until it completes + err = CxeError::InUse; + } + + CX_DEBUG( ("CxeAutoFocusControlDesktop::start() <= err : %d", err ) ); + + return err; +} + +/* +* Cancel Autofocus +*/ +void CxeAutoFocusControlDesktop::cancel() +{ + CX_DEBUG( ("CxeAutoFocusControlSymbian::cancel <> state: %d", state() ) ); + + if (!mCancelled) { + if (state() == CxeAutoFocusControl::InProgress) { + // Need to stop current AF first. Wait for AF event to proceed. + mState = Canceling; + emit stateChanged(mState, CxeError::None); + } else if (state() != CxeAutoFocusControl::Canceling) { + // Cancel means move to hyperfocal. + mState = Canceling; + emit stateChanged(mState, CxeError::None); + } + } + CX_DEBUG_EXIT_FUNCTION(); +} + +/* +* Set Autofocus mode +*/ +void CxeAutoFocusControlDesktop::setMode(CxeAutoFocusControl::Mode newMode) +{ + CX_DEBUG_ENTER_FUNCTION(); + + mAfMode = newMode; + mCancelled = false; + + CX_DEBUG_EXIT_FUNCTION(); +} + +/* +* returns Autofocus mode +*/ +CxeAutoFocusControl::Mode CxeAutoFocusControlDesktop::mode() const +{ + return mAfMode; +} + +/** +* Is the given mode a fixed focus mode? +*/ +bool CxeAutoFocusControlDesktop::isFixedFocusMode(CxeAutoFocusControl::Mode mode) const +{ + return (mode == CxeAutoFocusControl::Hyperfocal + || mode == CxeAutoFocusControl::Infinity); +} + +/* +* To check if Autofocus is supported +*/ +bool CxeAutoFocusControlDesktop::supported() const +{ + CX_DEBUG_ENTER_FUNCTION(); + + bool supported = true; + CX_DEBUG_EXIT_FUNCTION(); + return supported; +} + +/* +* CxeAutoFocusControlDesktop::state +*/ +CxeAutoFocusControl::State CxeAutoFocusControlDesktop::state() const +{ + return mState; +} + +/* +* CxeAutoFocusControlDesktop::initializeStates +*/ +void CxeAutoFocusControlDesktop::initializeStates() +{ +} + +/* +* CxeAutoFocusControlDesktop::initializeResources +*/ +void CxeAutoFocusControlDesktop::initializeResources() +{ + CX_DEBUG_ENTER_FUNCTION(); + CX_DEBUG_EXIT_FUNCTION(); +} + +/*! + * Public method for checking if auto focus sound is enabled + * \return true if enabled + */ +bool CxeAutoFocusControlDesktop::isSoundEnabled() const +{ + return false; // should actually return mSoundEnabled +} + +// end of file