camerauis/cameraapp/generic/common/inc/CamControllerObservers.h
branchRCL_3
changeset 24 bac7acad7cb3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camerauis/cameraapp/generic/common/inc/CamControllerObservers.h	Wed Sep 01 12:30:54 2010 +0100
@@ -0,0 +1,127 @@
+/*
+* Copyright (c) 2007 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:  Defines abstract API's for the controller observers*
+*/
+
+
+
+
+#ifndef CAMCONTROLLEROBSERVERS_H
+#define CAMCONTROLLEROBSERVERS_H
+
+ 
+
+/**
+*  Controller events that are reported to observers through the
+* MCamControllerObserver interface
+*
+*  @since 2.8
+*/
+enum TCamControllerEvent
+    {
+    ECamEventControllerReady, // New request can be issued to CCamAppController
+
+    ECamEventEngineStateChanged,
+    ECamEventOperationStateChanged,
+    ECamEventSnapshotReady,
+    ECamEventCaptureComplete,
+    ECamEventRecordComplete,
+    ECamEventCounterUpdated,
+    ECamEventZoomStateChanged,
+    ECamEventFocusCancelled,
+    ECamEventFlashStateChanged,
+    ECamEventSceneStateChanged,
+    ECamEventAudioMuteStateChanged,
+    ECamEventContAFStateChanged, 
+    ECamEventVideoFileTypeChanged,
+    ECamEventImageQualityChanged,
+    ECamEventVideoQualityChanged,
+    ECamEventSaveLocationChanged,
+    ECamEventSaveComplete,
+    ECamEventSaveCancelled, 
+    ECamEventVideoPauseTimeout,
+    ECamEventMediaFileChanged,
+    ECamEventExitRequested,
+    ECamEventCallStateChanged,
+    ECamEventMemoryCardHotswap,
+    ECamEventCameraChanged,
+    ECamEventSetupStateChanged,
+    ECamEventZoomSetupChanged,
+    ECamEventMacroSwitchChanged,
+    ECamEventSliderOpen,
+    ECamEventSliderClosed,
+    ECamEventInvalidMemoryCard,
+    ECamEventVfOverlayChanged, // Yet only for CAMERAAPP_PRODUCT_SUPPORTS_VF_GRID
+	ECamEventUserModeChanged,
+    ECamEventHistogramChanged,
+
+	ECamEventLocationSettingChanged,
+    ECamEventRestoreCameraSettings,
+    ECamEventExposureChanged,
+    ECamEventVideoStabChanged,
+    ECamEventImageData,
+    ECamEventFaceTrackingStateChanged,
+    ECamEventInitReady,
+    ECamEventSnapshotRotated
+    };
+
+// FORWARD DECLARATIONS
+class CFbsBitmap;
+
+// CLASS DECLARATION
+
+/**
+* Abstract API for viewfinder observer. 
+* Derived classes may register as viewfinder observers to get
+* related notifications from CCamAppController.
+*
+*  @since 2.8
+*/
+//class MCamViewFinderObserver
+//    {
+//    public:
+//        /**
+//        * New viewfinder frame is available 
+//        * @since 2.8
+//        * @param aFrame pointer to the bitmap. This pointer is valid until
+//        *               the call returns. Ownership not transferred.
+//        * @param aFrozen whether or not the viewfinder has been frozen
+//        */
+//        virtual void ShowViewFinderFrame( const CFbsBitmap* aFrame, TBool aFrozen ) = 0;
+//    };
+
+/**
+* Abstract API for controller observer. 
+* Derived classes may register as controller observers to
+* get related notifications about state changes in CCamAppController and
+* engine notifications.
+*
+*  @since 2.8
+*/
+class MCamControllerObserver
+    {
+    public:
+        /**
+        * Handle an event from CCamAppController.
+        * @since 2.8
+        * @param aEvent the controller event that has occurred
+        * @param aError any reported error
+        */
+        virtual void HandleControllerEventL( TCamControllerEvent aEvent,
+                                            TInt aError ) = 0;
+    };
+
+#endif      // CAMCONTROLLEROBSERVERS_H
+            
+// End of File