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;
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]);
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: