00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef CCAMERAENGINE_H
00018 #define CCAMERAENGINE_H
00019
00020
00021 #include <e32base.h>
00022 #include <ecam.h>
00023
00024
00025 class CCameraEnginePrivate;
00026 class MCameraEngineObserver;
00027 class CCameraAdvancedSettings;
00028
00029 NONSHARABLE_CLASS( CCameraEngine ) : public CBase
00030 {
00031 public:
00032
00033 enum TCameraEngineState
00034 {
00035 EEngineNotReady,
00036 EEngineIdle,
00037 EEngineViewFinding,
00038 EEngineCapturing,
00039 EEngineFocusing
00040 };
00041
00042 IMPORT_C static CCameraEngine* NewL( TInt aCameraHandle,
00043 TInt aPriority,
00044 MCameraEngineObserver* aObserver );
00045 IMPORT_C ~CCameraEngine();
00046
00047 public:
00048
00053 IMPORT_C TCameraEngineState State() const;
00054
00059 IMPORT_C TBool IsCameraReady() const;
00060
00064 IMPORT_C TBool IsAutoFocusSupported() const;
00065
00073 IMPORT_C void CaptureL();
00074
00080 IMPORT_C void ReserveAndPowerOn();
00081
00086 IMPORT_C void ReleaseAndPowerOff();
00087
00096 IMPORT_C void PrepareL( TSize& aCaptureSize,
00097 CCamera::TFormat aFormat = CCamera::EFormatExif );
00098
00108 IMPORT_C void StartViewFinderL( TSize& aSize );
00109
00113 IMPORT_C void StopViewFinder();
00114
00120 IMPORT_C void ReleaseViewFinderBuffer();
00121
00128 IMPORT_C void ReleaseImageBuffer();
00129
00136 IMPORT_C void StartFocusL();
00137
00141 IMPORT_C void FocusCancel();
00142
00148 IMPORT_C void SupportedFocusRanges( TInt& aSupportedRanges ) const;
00149
00155 IMPORT_C void SetFocusRange( TInt aFocusRange );
00156
00163 IMPORT_C CCamera* Camera();
00164
00172 IMPORT_C CCamera::CCameraAdvancedSettings* AdvancedSettings();
00173
00177 IMPORT_C static TInt CamerasAvailable();
00178
00182 IMPORT_C TInt MaxDigitalZoom();
00183
00187 IMPORT_C TInt DigitalZoom();
00188
00194 IMPORT_C TInt AdjustDigitalZoom( TBool aTele );
00195
00200 IMPORT_C TInt SupportedExposureModes();
00201
00206 IMPORT_C TInt Exposure();
00207
00214 IMPORT_C TInt SetExposure( TInt aExposure );
00215
00220 IMPORT_C TInt SupportedFlashModes();
00221
00226 IMPORT_C TInt Flash();
00227
00234 IMPORT_C TInt SetFlash( TInt aFlash );
00235
00236 protected:
00237 CCameraEngine();
00238
00239 private:
00240 CCameraEnginePrivate* iPimpl;
00241 };
00242
00243 #endif //CCAMERAENGINE_H