camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp
changeset 52 7e18d488ac5f
parent 46 c826656d6714
child 55 0da2a5b56583
--- a/camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp	Fri Aug 06 10:03:37 2010 +0300
+++ b/camerauis/cameraxui/cxengine/src/cxevideocapturecontrolsymbian.cpp	Mon Aug 23 13:50:05 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);