Add resource conflict error in error convert function
[platform/core/multimedia/mmsvc-recorder.git] / legacy / src / legacy_recorder.c
index f0a7d1e..e45102e 100644 (file)
@@ -177,6 +177,10 @@ int __convert_recorder_error_code(const char *func, int code)
                ret = RECORDER_ERROR_NOT_SUPPORTED;
                errorstr = "NOT_SUPPORTED";
                break;
+       case MM_ERROR_RESOURCE_INTERNAL:
+               ret = RECORDER_ERROR_RESOURCE_CONFLICT;
+               errorstr = "ERROR_RESOURCE_CONFLICT";
+               break;
        default:
                ret = RECORDER_ERROR_INVALID_OPERATION;
                errorstr = "INVALID_OPERATION";
@@ -279,16 +283,20 @@ static int __mm_recorder_msg_cb(int message, void *param, void *user_data)
                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]);
 
-               /* should change intermediate state MM_CAMCORDER_STATE_READY is not valid in capi , change to NULL state */
-               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, interrupt_state, handle->state, handle->user_data[_RECORDER_EVENT_TYPE_INTERRUPTED]);
-                       else
-                               LOGW("_RECORDER_EVENT_TYPE_INTERRUPTED cb is NULL");
+               if (policy != RECORDER_POLICY_NONE) {
+                       if (policy == RECORDER_POLICY_SECURITY ||
+                               m->state.current == MM_CAMCORDER_STATE_PAUSED ||
+                               m->state.current == MM_CAMCORDER_STATE_NULL) {
+                               LOGD("call interrupted callback");
+
+                               if (handle->user_cb[_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;
+                               /* initialize interrupt state */
+                               interrupt_state = -1;
+                       }
                }
                break;
        }