camerauis/cameraapp/generic/inc/CamAppController.h
branchRCL_3
changeset 17 8f559c47d7fd
parent 16 53c8aa5d97a3
child 19 e32fcfe0045f
--- a/camerauis/cameraapp/generic/inc/CamAppController.h	Tue May 25 12:22:04 2010 +0300
+++ b/camerauis/cameraapp/generic/inc/CamAppController.h	Wed Jun 09 09:21:41 2010 +0300
@@ -58,7 +58,7 @@
 #include "camcameracontroller.h"
 #include "CamDriveChangeNotifier.h"
 #include "CamSyncRotatorAo.h"
-
+#include "camtvaccessorymonitor.h"
 
 // ===========================================================================
 // CONSTANTS
@@ -87,6 +87,12 @@
   EBusyLast // Marker
   };
 
+enum TCamHdmiEvent
+    {
+    ECamHdmiNoEvent,
+    ECamHdmiCableConnectedBeforeRecording,
+    ECamHdmiCableConnectedDuringRecording
+    };
 
 // ===========================================================================
 // FORWARD DECLARATIONS
@@ -165,7 +171,8 @@
                           public MCamBurstModeObserver,
                           public MCFListener
                           ,public MCamDriveChangeNotifierObserver
-                          ,public MBitmapRotationObserver 
+                          ,public MBitmapRotationObserver,
+                          public MCamTvAccessoryObserver
                           
     {
     public:  // Constructors and destructor
@@ -468,7 +475,31 @@
     * @param aErr KErrNone if successful
     */
     void RotationCompleteL( TInt aErr );
+    
+    /**
+    * From MCamTvaccessoryObserver
+    * Handles TV Out/HDMI Cable connect Events
+    */
+    void HandleTvAccessoryConnectedL();
+    
+    /**
+    * From MCamTvaccessoryObserver
+    * Handles TV Out/HDMI Cable disconnect Events
+    */
+    void HandleTvAccessoryDisconnectedL();
+    
+    
+    /**
+     * Returns Etrue if HDMI Cable is connected
+     */
+    TBool IsHdmiCableConnected();
+    
 
+    /**
+    * Called when exiting in secondary camera mode
+    */
+    void HandleSecondaryCameraExitL();
+	
 private:
     void ReadVariantFlagsL();
 
@@ -1531,6 +1562,7 @@
     void ChangeOperation( TCamCaptureOperation aNewOperation, 
                           TInt          aError = KErrNone );
 
+  public:
     /**
     * Notify controller observers of an event.
     * @since 2.8
@@ -1539,6 +1571,7 @@
     */
     void NotifyControllerObservers( TCamControllerEvent aEvent,
                                     TInt                aError = KErrNone ) const;
+  private:
 
     /**
     * Starts the viewfinder if the engine has been prepared for the 
@@ -2222,6 +2255,33 @@
          * is rotated and ready for drawing
          */
         void SnapshotRotationComplete();
+        
+        /**
+         * Method to retrieve Remaining Recording time from CCaeEngine
+         */
+        TTimeIntervalMicroSeconds RemainingVideoRecordingTime();
+        
+        
+        /**
+         * Handles hdmi connect event during recording after video stop
+         */
+        void HandlePostHdmiConnectDuringRecordingEventL();
+        
+		/**
+		* Sets a Pending Hdmi Event
+		*/
+        void SetPendingHdmiEvent( TCamHdmiEvent aPendingHdmiEvent );
+        
+		/**
+		* Handles the current pending Hdmi EVent
+		*/
+        void HandlePendingHdmiEvent();
+		
+    /**
+	* Returns ETrue when scene mode is forced to 
+    * "Automatic" by secondary camera
+	*/
+    TBool SceneModeForcedBySecondaryCamera();
 
   private:
 
@@ -2504,6 +2564,8 @@
     CCamPropertyWatcher* iSlideStateWatcher;
     // Property watcher to report changes in the keylock state
     CCamPropertyWatcher* iKeyLockStatusWatcher;
+    // Property watcher to report changes in the profile state
+    CCamPropertyWatcher* iProfileStatusWatcher;
     // Set to ETrue if shutter sound always played
     // otherwise playing shutter sound depends on
     // current profile
@@ -2608,8 +2670,17 @@
     TCamImageOrientation  iCaptureOrientation;
     
     TBool iIssueModeChangeSequenceSucceeded;
+    
+    CCamTvAccessoryMonitor* iTvAccessoryMonitor;
+    
+    TBool iHdmiCableConnectedDuringRecording;
+    
     TBool iSnapshotRedrawNeeded;
     
+    TCamHdmiEvent iPendingHdmiEvent;
+	
+    TBool iSceneModeForcedBySecondaryCamera;
+	
     };
 
 #endif      // CAMAPPCONTROLLER_H