diff -r 61bc0f252b2b -r bac7acad7cb3 camerauis/cameraxui/cxengine/inc/cxestillcapturecontrolsymbian.h --- a/camerauis/cameraxui/cxengine/inc/cxestillcapturecontrolsymbian.h Tue Aug 31 15:03:46 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,179 +0,0 @@ -/* -* Copyright (c) 2009-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: -* -*/ -#ifndef CXESTILLCAPTURECONTROLSYMBIAN_H -#define CXESTILLCAPTURECONTROLSYMBIAN_H - -#include -#include -#include -#include - -#include "cxestillcapturecontrol.h" -#include "cxeautofocuscontrol.h" -#include "cxesensoreventhandler.h" -#include "cxestatemachine.h" -#include "cxenamespace.h" -#include "cxeerror.h" - -class CxeSoundPlayerSymbian; -class CxeFilenameGenerator; -class CxeFileSaveThread; -class CxeCameraDevice; -class MCameraBuffer; -class CxeStillImageSymbian; -class CxeImageDataQueue; -class CxeImageDataQueueSymbian; -class CxeViewfinderControl; -class CxeSnapshotControl; -class CxeSensorEventHandler; -class CxeCameraDeviceControl; -class CxeAutoFocusControl; -class CxeSettings; -class CxeQualityPresets; -class CxeDiskMonitor; - - -/** - * Class CxeStillCaptureControlSymbian. - * Inherits/implements CxeStillCaptureControl. - */ -class CxeStillCaptureControlSymbian : public CxeStillCaptureControl, - public CxeStateMachine -{ - Q_OBJECT - -public: // constructors - - CxeStillCaptureControlSymbian(CxeCameraDevice &cameraDevice, - CxeViewfinderControl &viewfinderControl, - CxeSnapshotControl &snapshotControl, - CxeCameraDeviceControl &cameraDeviceControl, - CxeFilenameGenerator &nameGenerator, - CxeSensorEventHandler &sensorEventHandler, - CxeAutoFocusControl &autoFocusControl, - CxeSettings &settings, - CxeQualityPresets &qualityPresets, - CxeFileSaveThread &fileSaveThread, - CxeDiskMonitor &diskMonitor); - - virtual ~CxeStillCaptureControlSymbian(); - -public: // from CxeStillCaptureControl - - void capture(); - State state() const; - int imageCount() const; - void reset(); - void cancelAll(); - void setMode( CaptureMode mode ); - CaptureMode mode() const; - CxeStillImage &operator[]( int index ); - CxeImageDataQueue &imageDataQueue(); - QList supportedImageQualities(); - int imagesLeft(); - -public slots: - void init(); - void deinit(); - -signals: - void imagePrepareComplete(CxeError::Id error); - void prepareZoomForStill(int ecamStillResolutionIndex); - -protected: // from CxeStateMachine - void handleStateChanged(int newStateId, CxeError::Id error); - - -protected slots: - // notifications when camera reference is changed - void prepareForCameraDelete(); - void handleCameraAllocated(CxeError::Id error); - - // notification for when camera is released - void prepareForRelease(); - - // ECAM events - void handleCameraEvent(int eventUid, int error); - - // Image data event - void handleImageData(MCameraBuffer *buffer, int error); - - // Snapshot event - void handleSnapshotReady(CxeError::Id status, const QImage &snapshot); - - // settings call back - void handleSettingValueChanged(const QString& settingId,QVariant newValue); - - // Disk space change - void handleDiskSpaceChanged(); - - // Autofocus events - void handleAutofocusStateChanged(CxeAutoFocusControl::State newState, CxeError::Id error); - - // sensor events - void handleSensorEvent(CxeSensorEventHandler::SensorType type,QVariant data); - - // Use ECam Use Case Hint Custom API to inform ECam of our intended use case - // before calling Reserve() - void hintUseCase(); - -private: // helper functions - - CxeError::Id prepareFilename(CxeStillImageSymbian *stillImage); - void setOrientation(QVariant sensorData); - CxeStillImageSymbian* getImageForIndex(int index); - CCamera::TFormat supportedStillFormat(Cxe::CameraIndex cameraIndex); - void prepareSnapshot(); - void updateStillCaptureParameters(); - void handleSnapshotEvent(CxeError::Id error); - void initializeStates(); - void prepare(); - void updateRemainingImagesCounter(); - int calculateRemainingImages(int estimatedImagesize); - -private: // private data - - CxeImageDataQueueSymbian *mImageDataQueue; // own - CxeCameraDevice &mCameraDevice; - CxeViewfinderControl &mViewfinderControl; - CxeSnapshotControl &mSnapshotControl; - CxeCameraDeviceControl &mCameraDeviceControl; - CxeFilenameGenerator &mFilenameGenerator; //! @todo could be shared with video capture control? - CxeSensorEventHandler &mSensorEventHandler; - CxeAutoFocusControl &mAutoFocusControl; - CxeSettings &mSettings; - CxeQualityPresets &mQualityPresets; - CxeFileSaveThread &mFileSaveThread; - CxeDiskMonitor &mDiskMonitor; - CxeSoundPlayerSymbian *mCaptureSoundPlayer; - CxeSoundPlayerSymbian *mAutoFocusSoundPlayer; - CaptureMode mMode; - CxeAutoFocusControl::State mAfState; - QList mImages; - int mNextSnapshotIndex; - int mNextImageDataIndex; - //still resolutions supported by ICM - QList mIcmSupportedImageResolutions; - //still resolutions supported by ecam - QList mECamSupportedImageResolutions; - //current image quality details in use - CxeImageDetails mCurrentImageDetails; - CCamera::TFormat mCaptureFormat; - int mSizeIndex; //!< ECam still capture size index -}; - -#endif // CXESTILLCAPTURECONTROLSYMBIAN_H