Bug fix - invalid previous state on interrupted callback 84/105684/1 accepted/tizen/common/20161220.191019 accepted/tizen/ivi/20161220.223825 accepted/tizen/mobile/20161220.223656 accepted/tizen/tv/20161220.223729 accepted/tizen/unified/20170309.033445 accepted/tizen/wearable/20161220.223754 submit/tizen/20161220.104958 submit/tizen_unified/20170308.100408
authorJeongmo Yang <jm80.yang@samsung.com>
Mon, 19 Dec 2016 09:24:46 +0000 (18:24 +0900)
committerJeongmo Yang <jm80.yang@samsung.com>
Mon, 19 Dec 2016 09:24:58 +0000 (18:24 +0900)
[Version] 0.2.32
[Profile] Common
[Issue Type] Bug fix
[Dependency module] N/A
[Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-3.0-mobile_20161215.3]

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

index ecdaf163bcded3d74faa2d0deb0f73907191e41e..f0a7d1e2ff5039d9f7973b809e0566542ea0916d 100644 (file)
@@ -239,6 +239,9 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
        case MM_MESSAGE_CAMCORDER_STATE_CHANGED_BY_ASM:
        case MM_MESSAGE_CAMCORDER_STATE_CHANGED_BY_SECURITY:
        case MM_MESSAGE_CAMCORDER_STATE_CHANGED_BY_RM:
+       {
+               static int interrupt_state = -1;
+
                previous_state = handle->state;
                handle->state = __recorder_state_convert(m->state.current);
                recorder_policy_e policy = RECORDER_POLICY_NONE;
@@ -267,6 +270,12 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
                        LOGW("RECORDER_POLICY_RESOURCE_CONFLICT");
                }
 
+               if (message != MM_MESSAGE_CAMCORDER_STATE_CHANGED &&
+                       interrupt_state == -1) {
+                       interrupt_state = previous_state;
+                       LOGD("interrupt state %d", interrupt_state);
+               }
+
                if (previous_state != handle->state && handle->user_cb[_RECORDER_EVENT_TYPE_STATE_CHANGE])
                        ((recorder_state_changed_cb)handle->user_cb[_RECORDER_EVENT_TYPE_STATE_CHANGE])(previous_state, handle->state, policy, handle->user_data[_RECORDER_EVENT_TYPE_STATE_CHANGE]);
 
@@ -274,11 +283,15 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
                if (policy != RECORDER_POLICY_NONE &&
                        (m->state.current == MM_CAMCORDER_STATE_PAUSED || m->state.current == MM_CAMCORDER_STATE_NULL)) {
                        if (handle->user_cb[_RECORDER_EVENT_TYPE_INTERRUPTED])
-                               ((recorder_interrupted_cb)handle->user_cb[_RECORDER_EVENT_TYPE_INTERRUPTED])(policy, previous_state, handle->state, handle->user_data[_RECORDER_EVENT_TYPE_INTERRUPTED]);
+                               ((recorder_interrupted_cb)handle->user_cb[_RECORDER_EVENT_TYPE_INTERRUPTED])(policy, interrupt_state, handle->state, handle->user_data[_RECORDER_EVENT_TYPE_INTERRUPTED]);
                        else
                                LOGW("_RECORDER_EVENT_TYPE_INTERRUPTED cb is NULL");
+
+                       /* initialize interrupt state */
+                       interrupt_state = -1;
                }
                break;
+       }
        case MM_MESSAGE_CAMCORDER_MAX_SIZE:
        case MM_MESSAGE_CAMCORDER_NO_FREE_SPACE:
        case MM_MESSAGE_CAMCORDER_TIME_LIMIT:
index e7a9bfc4483ffb64bb9d9f00e3ffd0b15457707b..adf75d0501888c3c87b276e6fa16bf630d109727 100644 (file)
@@ -1,6 +1,6 @@
 Name:       mmsvc-recorder
 Summary:    A Recorder module for muse server
-Version:    0.2.31
+Version:    0.2.32
 Release:    0
 Group:      Multimedia/Libraries
 License:    Apache-2.0