00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CCAMERAENGINE_H
00016 #define CCAMERAENGINE_H
00017
00018
00019 #include <e32base.h>
00020 #include <ecam.h>
00021
00022
00023 class CCameraEnginePrivate;
00024 class MCameraEngineObserver;
00025 class CCameraAdvancedSettings;
00026
00027 NONSHARABLE_CLASS( CCameraEngine ) : public CBase
00028 {
00029 public:
00030
00031 enum TCameraEngineState
00032 {
00033 EEngineNotReady,
00034 EEngineIdle,
00035 EEngineViewFinding,
00036 EEngineCapturing,
00037 EEngineFocusing
00038 };
00039
00040 IMPORT_C static CCameraEngine* NewL( TInt aCameraHandle,
00041 TInt aPriority,
00042 MCameraEngineObserver* aObserver );
00043 IMPORT_C ~CCameraEngine();
00044
00045 public:
00046
00051 IMPORT_C TCameraEngineState State() const;
00052
00057 IMPORT_C TBool IsCameraReady() const;
00058
00062 IMPORT_C TBool IsAutoFocusSupported() const;
00063
00071 IMPORT_C void CaptureL();
00072
00078 IMPORT_C void ReserveAndPowerOn();
00079
00084 IMPORT_C void ReleaseAndPowerOff();
00085
00094 IMPORT_C void PrepareL( TSize& aCaptureSize,
00095 CCamera::TFormat aFormat = CCamera::EFormatExif );
00096
00106 IMPORT_C void StartViewFinderL( TSize& aSize );
00107
00111 IMPORT_C void StopViewFinder();
00112
00118 IMPORT_C void ReleaseViewFinderBuffer();
00119
00126 IMPORT_C void ReleaseImageBuffer();
00127
00134 IMPORT_C void StartFocusL();
00135
00139 IMPORT_C void FocusCancel();
00140
00146 IMPORT_C void SupportedFocusRanges( TInt& aSupportedRanges ) const;
00147
00153 IMPORT_C void SetFocusRange( TInt aFocusRange );
00154
00161 IMPORT_C CCamera* Camera();
00162
00170 IMPORT_C CCamera::CCameraAdvancedSettings* AdvancedSettings();
00171
00175 IMPORT_C static TInt CamerasAvailable();
00176
00180 IMPORT_C TInt MaxDigitalZoom();
00181
00185 IMPORT_C TInt DigitalZoom();
00186
00192 IMPORT_C TInt AdjustDigitalZoom( TBool aTele );
00193
00198 IMPORT_C TInt SupportedExposureModes();
00199
00204 IMPORT_C TInt Exposure();
00205
00212 IMPORT_C TInt SetExposure( TInt aExposure );
00213
00218 IMPORT_C TInt SupportedFlashModes();
00219
00224 IMPORT_C TInt Flash();
00225
00232 IMPORT_C TInt SetFlash( TInt aFlash );
00233
00234 protected:
00235 CCameraEngine();
00236
00237 private:
00238 CCameraEnginePrivate* iPimpl;
00239 };
00240
00241 #endif //CCAMERAENGINE_H