camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp
changeset 56 01e205c615b9
parent 48 42ba2d16bf40
child 60 a289dde0a1d6
--- a/camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp	Wed Aug 18 09:37:18 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp	Thu Sep 02 20:14:28 2010 +0300
@@ -470,7 +470,9 @@
             // Try asynchronous stopping first.
             mVideoRecorder->stop(true);
             // No error from asynchronous stop -> wait for stop event
-            setState(Stopping);
+            if (state() != Ready) {
+                setState(Stopping);
+            }
         } catch (const std::exception &e) {
             CX_DEBUG(("CxeVideoCaptureControlSymbian - async stop failed, try sync.."));
             try {
@@ -706,9 +708,9 @@
     addState(new CxeState(Initialized, "Initialized", Preparing | Idle));
     addState(new CxeState(Preparing, "Preparing", Ready | Idle));
     addState(new CxeState(Ready, "Ready", Recording | PlayingStartSound | Preparing | Idle));
-    addState(new CxeState(Recording, "Recording", Recording | Paused | Stopping | Idle));
+    addState(new CxeState(Recording, "Recording", Recording | Paused | Stopping | Idle | Ready));
     addState(new CxeState(Paused, "Paused", Recording | Stopping | PlayingStartSound | Idle));
-    addState(new CxeState(Stopping, "Stopping", Initialized | Idle));
+    addState(new CxeState(Stopping, "Stopping", Initialized | Idle | Ready));
     addState(new CxeState(PlayingStartSound, "PlayingStartSound", Recording | Idle));
 
     setInitialState(Idle);