Return CAMERA_STATE_PREVIEW for camera_get_state while stopping preview 25/119225/1
authorJeongmo Yang <jm80.yang@samsung.com>
Wed, 15 Mar 2017 23:28:10 +0000 (08:28 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Thu, 16 Mar 2017 05:10:44 +0000 (14:10 +0900)
[Version] 0.2.74
[Profile] Common
[Issue Type] Update
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-3.0-mobile_20170315.2]

Change-Id: I8af74825136bd89faf03290650e996eff34e2cba
Signed-off-by: Jeongmo Yang <jm80.yang@samsung.com>
legacy/src/legacy_camera.c
packaging/mmsvc-camera.spec

index b279b1d..a3c71e6 100644 (file)
@@ -258,7 +258,7 @@ static gboolean __mm_capture_callback(MMCamcorderCaptureDataType *frame, MMCamco
 }
 
 
-static camera_state_e __camera_state_convert(MMCamcorderStateType mm_state)
+static camera_state_e __camera_state_convert(MMCamcorderStateType mm_state, MMCamcorderStateType mm_old_state)
 {
        camera_state_e state = CAMERA_STATE_NONE;
 
@@ -270,7 +270,13 @@ static camera_state_e __camera_state_convert(MMCamcorderStateType mm_state)
                state = CAMERA_STATE_CREATED;
                break;
        case MM_CAMCORDER_STATE_READY:
-               state = CAMERA_STATE_CREATED;
+               if (mm_old_state == MM_CAMCORDER_STATE_PREPARE) {
+                       state = CAMERA_STATE_PREVIEW;
+                       LOGW("stopping preview now");
+               } else {
+                       state = CAMERA_STATE_CREATED;
+                       LOGW("starting preview now");
+               }
                break;
        case MM_CAMCORDER_STATE_PREPARE:
                state = CAMERA_STATE_PREVIEW;
@@ -365,7 +371,7 @@ static int __mm_camera_message_callback(int message, void *param, void *user_dat
                }
 
                previous_state = handle->state;
-               handle->state = __camera_state_convert(m->state.current);
+               handle->state = __camera_state_convert(m->state.current, m->state.previous);
 
                if (message != MM_MESSAGE_CAMCORDER_STATE_CHANGED &&
                                interrupt_state == -1) {
@@ -1310,14 +1316,15 @@ int legacy_camera_get_state(camera_h camera, camera_state_e *state)
 
        camera_s *handle = (camera_s *)camera;
        camera_state_e capi_state = CAMERA_STATE_NONE;
-       MMCamcorderStateType mmstate = MM_CAMCORDER_STATE_NONE;
+       MMCamcorderStateType mm_state = MM_CAMCORDER_STATE_NONE;
+       MMCamcorderStateType mm_old_state = MM_CAMCORDER_STATE_NONE;
 
-       mm_camcorder_get_state(handle->mm_handle, &mmstate);
-       capi_state = __camera_state_convert(mmstate);
+       mm_camcorder_get_state2(handle->mm_handle, &mm_state, &mm_old_state);
+       capi_state = __camera_state_convert(mm_state, mm_old_state);
 
        if ((handle->state == CAMERA_STATE_CAPTURED || handle->is_capture_completed) &&
                (handle->current_capture_count > 0 || handle->is_capture_completed) &&
-               mmstate == MM_CAMCORDER_STATE_CAPTURING) {
+               mm_state == MM_CAMCORDER_STATE_CAPTURING) {
                capi_state = CAMERA_STATE_CAPTURED;
        }
 
index 79d254a..e3d2ae7 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-camera
 Summary:    A Camera module for muse server
-Version:    0.2.73
+Version:    0.2.74
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0