From d82fdba0359ffbc093a9679afbb629b7f0ee1b71 Mon Sep 17 00:00:00 2001 From: Jeongmo Yang Date: Fri, 9 Jun 2017 15:39:56 +0900 Subject: [PATCH] Send state change started message in case of force stop [Version] 0.10.123 [Profile] Common [Issue Type] [Dependency module] N/A [Test] [M(T) - Boot=(OK), sdb=(OK), Home=(OK), Touch=(OK), Version=tizen-unified_20170608.1] Change-Id: I561b3d11c60122ecaf4e74824867827f1847ca92 Signed-off-by: Jeongmo Yang --- packaging/libmm-camcorder.spec | 2 +- src/mm_camcorder_internal.c | 28 ++++++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/packaging/libmm-camcorder.spec b/packaging/libmm-camcorder.spec index c0642e4..16ff562 100644 --- a/packaging/libmm-camcorder.spec +++ b/packaging/libmm-camcorder.spec @@ -1,6 +1,6 @@ Name: libmm-camcorder Summary: Camera and recorder library -Version: 0.10.122 +Version: 0.10.123 Release: 0 Group: Multimedia/Libraries License: Apache-2.0 diff --git a/src/mm_camcorder_internal.c b/src/mm_camcorder_internal.c index 61db73b..78c610f 100644 --- a/src/mm_camcorder_internal.c +++ b/src/mm_camcorder_internal.c @@ -3816,6 +3816,7 @@ void __mmcamcorder_force_stop(mmf_camcorder_t *hcamcorder, int state_change_by_s int result = MM_ERROR_NONE; int cmd_try_count = 0; int current_state = MM_CAMCORDER_STATE_NONE; + _MMCamcorderMsgItem msg; mmf_return_if_fail(hcamcorder); @@ -3842,6 +3843,33 @@ void __mmcamcorder_force_stop(mmf_camcorder_t *hcamcorder, int state_change_by_s /* set state_change_by_system for state change message */ hcamcorder->state_change_by_system = state_change_by_system; + if (current_state >= MM_CAMCORDER_STATE_READY) { + _mmcam_dbg_warn("send state change started message to notify"); + + memset(&msg, 0x0, sizeof(_MMCamcorderMsgItem)); + + switch (state_change_by_system) { + case _MMCAMCORDER_STATE_CHANGE_BY_FOCUS: + msg.id = MM_MESSAGE_CAMCORDER_STATE_CHANGE_STARTED_BY_ASM; + break; + case _MMCAMCORDER_STATE_CHANGE_BY_RM: + msg.id = MM_MESSAGE_CAMCORDER_STATE_CHANGE_STARTED_BY_RM; + break; + case _MMCAMCORDER_STATE_CHANGE_BY_DPM: + msg.id = MM_MESSAGE_CAMCORDER_STATE_CHANGE_STARTED_BY_SECURITY; + break; + default: + break; + } + + if (msg.id != 0) { + msg.param.state.code = hcamcorder->interrupt_code; + _mmcamcorder_send_message((MMHandleType)hcamcorder, &msg); + } else { + _mmcam_dbg_err("should not be reached here %d", state_change_by_system); + } + } + for (loop = 0 ; current_state > MM_CAMCORDER_STATE_NULL && loop < __MMCAMCORDER_CMD_ITERATE_MAX * 3 ; loop++) { itr_cnt = __MMCAMCORDER_CMD_ITERATE_MAX; switch (current_state) { -- 2.34.1