camerauis/cameraxui/cxengine/inc/api/cxeengine.h
changeset 19 d9aefe59d544
child 21 fa6d9f75d6a6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraxui/cxengine/inc/api/cxeengine.h	Fri Apr 16 14:51:30 2010 +0300
@@ -0,0 +1,107 @@
+/*
+* Copyright (c) 2009 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 CXEENGINE_H
+#define CXEENGINE_H
+
+#include <QObject> 
+#include "cxenamespace.h"
+
+class CxeCameraDeviceControl;
+class CxeViewfinderControl;
+class CxeStillCaptureControl;
+class CxeVideoCaptureControl;
+class CxeAutoFocusControl;
+class CxeZoomControl;
+class CxeImageDataQueue;
+class CxeFeatureManager;
+class CxeSettings;
+
+/**
+ * CxeEngine provides the the entry point into CameraX engine. This is the
+ * first class the client needs to initialize. CxeEngine then provides
+ * references to other CameraX engine objects. 
+ */
+class CxeEngine : public QObject
+{
+    Q_OBJECT
+public:
+    /**
+     * Create a new engine instance. This is the first call the client needs to
+     * do when using CxeEngine.
+     */
+    IMPORT_C static CxeEngine* createEngine();
+
+    virtual ~CxeEngine();
+
+    /**
+     * Access the camera device control.
+     */
+    virtual CxeCameraDeviceControl &cameraDeviceControl() = 0;
+
+    /**
+     * Access the viewfinder control.
+     */
+    virtual CxeViewfinderControl &viewfinderControl() = 0;
+
+    /**
+     * Access the still capture control.
+     */
+    virtual CxeStillCaptureControl &stillCaptureControl() = 0;
+
+    /**
+     * Access the video capture control.
+     */
+    virtual CxeVideoCaptureControl &videoCaptureControl() = 0;
+
+    /**
+     * Access the auto-focus control.
+     */
+    virtual CxeAutoFocusControl &autoFocusControl() = 0;
+
+    /**
+     * Access the zoom control.
+     */
+    virtual CxeZoomControl &zoomControl() = 0;
+
+    /**
+     * Access the settings model.
+     */
+    virtual CxeSettings &settings() = 0;
+    virtual CxeFeatureManager &featureManager() = 0;
+
+    /**
+     * Get current camera mode.
+     */
+    virtual Cxe::CameraMode mode() const = 0;
+
+    /**
+     * Initialize the camera in either still or video mode. This method is also
+     * used to switch between modes.
+     */
+    virtual void initMode( Cxe::CameraMode cameraMode ) = 0;
+
+    //! returns if the engine is ready or not
+    virtual bool isEngineReady() = 0;
+
+protected:
+    CxeEngine();
+
+private:
+    Q_DISABLE_COPY( CxeEngine )
+};
+
+#endif // CXEENGINE_H