summaryrefslogtreecommitdiffstats
path: root/src/plugins/symbian/ecam/s60cameraengine.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/symbian/ecam/s60cameraengine.h')
-rw-r--r--src/plugins/symbian/ecam/s60cameraengine.h407
1 files changed, 0 insertions, 407 deletions
diff --git a/src/plugins/symbian/ecam/s60cameraengine.h b/src/plugins/symbian/ecam/s60cameraengine.h
deleted file mode 100644
index 4b473b68c..000000000
--- a/src/plugins/symbian/ecam/s60cameraengine.h
+++ /dev/null
@@ -1,407 +0,0 @@
-/****************************************************************************
- **
- ** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
- ** All rights reserved.
- ** Contact: Nokia Corporation (qt-info@nokia.com)
- **
- ** This file is part of the Qt Mobility Components.
- **
- ** $QT_BEGIN_LICENSE:LGPL$
- ** GNU Lesser General Public License Usage
- ** This file may be used under the terms of the GNU Lesser General Public
- ** License version 2.1 as published by the Free Software Foundation and
- ** appearing in the file LICENSE.LGPL included in the packaging of this
- ** file. Please review the following information to ensure the GNU Lesser
- ** General Public License version 2.1 requirements will be met:
- ** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
- **
- ** In addition, as a special exception, Nokia gives you certain additional
- ** rights. These rights are described in the Nokia Qt LGPL Exception
- ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
- **
- ** GNU General Public License Usage
- ** Alternatively, this file may be used under the terms of the GNU General
- ** Public License version 3.0 as published by the Free Software Foundation
- ** and appearing in the file LICENSE.GPL included in the packaging of this
- ** file. Please review the following information to ensure the GNU General
- ** Public License version 3.0 requirements will be met:
- ** http://www.gnu.org/copyleft/gpl.html.
- **
- ** Other Usage
- ** Alternatively, this file may be used in accordance with the terms and
- ** conditions contained in a signed written agreement between you and Nokia.
- **
- **
- **
- **
- **
- ** $QT_END_LICENSE$
- **
- ****************************************************************************/
-#ifndef S60CCAMERAENGINE_H
-#define S60CCAMERAENGINE_H
-
-// INCLUDES
-#include <e32base.h>
-#include <ecam.h> // for MCameraObserver(2)
-#ifdef S60_CAM_AUTOFOCUS_SUPPORT
-#include <ccamautofocus.h> // for CCamAutoFocus, MCamAutoFocusObserver
-#endif
-
-// FORWARD DECLARATIONS
-class MCameraEngineObserver;
-class MCameraEngineImageCaptureObserver;
-class MAdvancedSettingsObserver;
-class MCameraViewfinderObserver;
-class MCameraPreviewObserver;
-
-/*
- * CameraEngine handling ECam operations needed.
- */
-NONSHARABLE_CLASS( CCameraEngine ) : public CBase,
- public MCameraObserver,
- public MCameraObserver2
-#ifdef S60_CAM_AUTOFOCUS_SUPPORT
- ,public MCamAutoFocusObserver
-#endif
-
-{
-public: // Enums
-
- enum TCameraEngineState
- {
- EEngineNotReady = 0, // 0 - No resources reserved
- EEngineInitializing, // 1 - Reserving and Powering On
- EEngineIdle, // 2 - Reseved and Powered On
- EEngineCapturing, // 3 - Capturing Still Image
- EEngineFocusing // 4 - Focusing
- };
-
-public: // Constructor & Destructor
-
- static CCameraEngine* NewL( TInt aCameraHandle,
- TInt aPriority,
- MCameraEngineObserver* aObserver );
- ~CCameraEngine();
-
-public:
-
- /**
- * External Advanced Settings callback observer.
- */
- void SetAdvancedObserver(MAdvancedSettingsObserver *aAdvancedSettingsObserver);
-
- /**
- * External Image Capture callback observer.
- */
- void SetImageCaptureObserver(MCameraEngineImageCaptureObserver *aImageCaptureObserver);
-
- /**
- * External Viewfinder callback observer.
- */
- void SetViewfinderObserver(MCameraViewfinderObserver *aViewfinderObserver);
-
- /**
- * Static function that returns the number of cameras on the device.
- */
- static TInt CamerasAvailable();
-
- /**
- * Returns the index of the currently active camera device
- */
- TInt CurrentCameraIndex() const { return iCameraIndex; }
-
- /**
- * Returns the current state (TCameraEngineState)
- * of the camera engine.
- */
- TCameraEngineState State() const { return iEngineState; }
-
- /**
- * Returns true if the camera has been reserved and
- * powered on, and not recording or capturing image
- */
- TBool IsCameraReady() const;
-
- /**
- * Returns whether DirectScreen ViewFinder is supported by the platform
- */
- TBool IsDirectViewFinderSupported() const;
-
- /**
- * Returns true if the camera supports AutoFocus.
- */
- TBool IsAutoFocusSupported() const;
-
- /**
- * Returns camera info
- */
- TCameraInfo *CameraInfo();
-
- /**
- * Captures an image. When complete, observer will receive
- * MceoCapturedDataReady() or MceoCapturedBitmapReady() callback,
- * depending on which image format was used in PrepareL().
- * @leave May leave with KErrNotReady if camera is not
- * reserved or prepared for capture.
- */
- void CaptureL();
-
- /**
- * Cancels ongoing image capture
- */
- void CancelCapture();
-
- /**
- * Reserves and powers on the camera. When complete,
- * observer will receive MceoCameraReady() callback
- *
- */
- void ReserveAndPowerOn();
-
- /**
- * Releases and powers off the camera
- *
- */
- void ReleaseAndPowerOff();
-
- /**
- * Prepares for image capture.
- * @param aCaptureSize requested capture size. On return,
- * contains the selected size (closest match)
- * @param aFormat Image format to use. Default is JPEG with
- * EXIF information as provided by the camera module
- * @leave KErrNotSupported, KErrNoMemory, KErrNotReady
- */
- void PrepareL( TSize& aCaptureSize,
- CCamera::TFormat aFormat = CCamera::EFormatExif );
-
- /**
- * Starts the viewfinder. Observer will receive
- * MceoViewFinderFrameReady() callbacks periodically.
- * @param aSize requested viewfinder size. On return,
- * contains the selected size.
- *
- * @leave KErrNotSupported is viewfinding with bitmaps is not
- * supported, KErrNotReady
- */
- void StartViewFinderL( TSize& aSize );
-
- /**
- * Stops the viewfinder if active.
- */
- void StopViewFinder();
-
- void StartDirectViewFinderL(RWsSession& aSession,
- CWsScreenDevice& aScreenDevice,
- RWindowBase& aWindow,
- TRect& aScreenRect,
- TRect& aClipRect);
-
- /**
- * Releases memory for the last received viewfinder frame.
- * Client must call this in response to MceoViewFinderFrameReady()
- * callback, after drawing the viewfinder frame is complete.
- */
- void ReleaseViewFinderBuffer();
-
- /**
- * Releases memory for the last captured image.
- * Client must call this in response to MceoCapturedDataReady()
- * or MceoCapturedBitmapReady()callback, after processing the
- * data/bitmap is complete.
- */
- void ReleaseImageBuffer();
-
- /**
- * Starts focusing. Does nothing if AutoFocus is not supported.
- * When complete, observer will receive MceoFocusComplete()
- * callback.
- * @leave KErrInUse, KErrNotReady
- */
- void StartFocusL();
-
- /**
- * Cancels the ongoing focusing operation.
- */
- void FocusCancel();
-
- /**
- * Gets a bitfield of supported focus ranges.
- * @param aSupportedRanges a bitfield of either TAutoFocusRange
- * (S60 3.0/3.1 devices) or TFocusRange (S60 3.2 and onwards) values
- */
- void SupportedFocusRanges( TInt& aSupportedRanges ) const;
-
- /**
- * Sets the focus range
- * @param aFocusRange one of the values returned by
- * SupportedFocusRanges().
- */
- void SetFocusRange( TInt aFocusRange );
-
- /**
- * Returns a pointer to CCamera object used by the engine.
- * Allows getting access to additional functionality
- * from CCamera - do not use for functionality already provided
- * by CCameraEngine methods.
- */
- CCamera* Camera() { return iCamera; }
-
-#ifdef ECAM_PREVIEW_API
- /**
- * This enables the preview creation during the capture (image or video).
- */
- void EnablePreviewProvider(MCameraPreviewObserver *aPreviewObserver);
-
- /**
- * This disabled the preview creation during the capture (image or video)
- */
- void DisablePreviewProvider();
-#endif // ECAM_PREVIEW_API
-
-protected: // Protected constructors
-
- CCameraEngine();
- CCameraEngine( TInt aCameraHandle,
- TInt aPriority,
- MCameraEngineObserver* aObserver );
- void ConstructL();
-
-protected: // MCameraObserver
-
- /**
- * From MCameraObserver
- * Gets called when CCamera::Reserve() is completed.
- * (V2: Called internally from HandleEvent)
- */
- virtual void ReserveComplete(TInt aError);
-
- /**
- * From MCameraObserver.
- * Gets called when CCamera::PowerOn() is completed.
- * (V2: Called internally from HandleEvent)
- */
- virtual void PowerOnComplete(TInt aError);
-
- /**
- * From MCameraObserver.
- * Gets called when CCamera::StartViewFinderBitmapsL() is completed.
- * (V2: Called internally from ViewFinderReady)
- */
- virtual void ViewFinderFrameReady( CFbsBitmap& aFrame );
-
- /**
- * From MCameraObserver.
- * Gets called when CCamera::CaptureImage() is completed.
- */
- virtual void ImageReady( CFbsBitmap* aBitmap, HBufC8* aData, TInt aError );
-
- /**
- * From MCameraObserver.
- * Video capture not implemented.
- */
- virtual void FrameBufferReady( MFrameBuffer* /*aFrameBuffer*/, TInt /*aError*/ ) {}
-
-protected: // MCameraObserver2
-
- /**
- * From MCameraObserver2
- * Camera event handler
- */
- virtual void HandleEvent(const TECAMEvent &aEvent);
-
- /**
- * From MCameraObserver2
- * Notifies the client of new viewfinder data
- */
- virtual void ViewFinderReady(MCameraBuffer &aCameraBuffer, TInt aError);
-
- /**
- * From MCameraObserver2
- * Notifies the client of a new captured image
- */
- virtual void ImageBufferReady(MCameraBuffer &aCameraBuffer, TInt aError);
-
- /**
- * From MCameraObserver2
- * Video capture not implemented.
- */
- virtual void VideoBufferReady(MCameraBuffer& /*aCameraBuffer*/, TInt /*aError*/) {}
-
-protected: // MCamAutoFocusObserver
-
- /**
- * From MCamAutoFocusObserver.
- * Delivers notification of completion of auto focus initialisation to
- * an interested party.
- * @param aError Reason for completion of focus request.
- */
- virtual void InitComplete( TInt aError );
-
- /**
- * From MCamAutoFocusObserver.
- * Gets called when CCamAutoFocus::AttemptOptimisedFocusL() is
- * completed.
- * (V2: Called internally from HandleEvent)
- */
- virtual void OptimisedFocusComplete( TInt aError );
-
-private: // Internal functions
-
- /**
- * Internal function to handle ImageReady callbacks from
- * both observer (V1 & V2) interfaces
- */
- void HandleImageReady(const TInt aError, const bool isBitmap);
-
-#ifdef ECAM_PREVIEW_API
- /**
- * Handle preview. Retrieve preview data and notify observer about the
- * preview availability.
- */
- void HandlePreview();
-
- /**
- * Calculate proper resolution for the SnapShot (Preview) image.
- */
- TSize SelectPreviewResolution();
-#endif // ECAM_PREVIEW_API
-
-private: // Data
-
- CCamera *iCamera;
- MCameraEngineObserver *iObserver;
- MCameraEngineImageCaptureObserver *iImageCaptureObserver;
- MAdvancedSettingsObserver *iAdvancedSettingsObserver;
- MCameraViewfinderObserver *iViewfinderObserver;
- MCameraPreviewObserver *iPreviewObserver;
- MCameraBuffer *iViewFinderBuffer;
- /*
- * Following pointers are for the image buffers:
- * * Makes buffering of 2 concurrent image buffers possible
- */
- MCameraBuffer *iImageBuffer1;
- MCameraBuffer *iImageBuffer2;
- TDesC8 *iImageData1;
- TDesC8 *iImageData2;
- CFbsBitmap *iImageBitmap1;
- CFbsBitmap *iImageBitmap2;
- TInt iCameraIndex;
- TInt iPriority;
- TCameraEngineState iEngineState;
- TCameraInfo iCameraInfo;
- CCamera::TFormat iImageCaptureFormat;
- TSize iCaptureResolution;
- bool iNew2LImplementation;
- int iLatestImageBufferIndex; // 0 = Buffer1, 1 = Buffer2
-#ifdef ECAM_PREVIEW_API
- CCamera::CCameraSnapshot *iCameraSnapshot;
-#endif // ECAM_PREVIEW_API
-#ifdef S60_CAM_AUTOFOCUS_SUPPORT
- CCamAutoFocus* iAutoFocus;
- CCamAutoFocus::TAutoFocusRange iAFRange;
-#endif // S60_CAM_AUTOFOCUS_SUPPORT
-};
-
-#endif // S60CCAMERAENGINE_H