diff options
Diffstat (limited to 'muse/src/muse_recorder_dispatcher.c')
-rw-r--r-- | muse/src/muse_recorder_dispatcher.c | 71 |
1 files changed, 69 insertions, 2 deletions
diff --git a/muse/src/muse_recorder_dispatcher.c b/muse/src/muse_recorder_dispatcher.c index 9305dbc..6c5b31f 100644 --- a/muse/src/muse_recorder_dispatcher.c +++ b/muse/src/muse_recorder_dispatcher.c @@ -223,6 +223,25 @@ void _recorder_disp_interrupted_cb(recorder_policy_e policy, recorder_state_e pr return; } +void _recorder_disp_interrupt_started_cb(recorder_policy_e policy, recorder_state_e state, void *user_data) +{ + muse_module_h module = (muse_module_h)user_data; + + if (module == NULL) { + LOGE("NULL module"); + return; + } + + muse_recorder_msg_event2(MUSE_RECORDER_CB_EVENT, + MUSE_RECORDER_EVENT_TYPE_INTERRUPT_STARTED, + MUSE_RECORDER_EVENT_CLASS_THREAD_MAIN, + module, + INT, policy, + INT, state); + + return; +} + void _recorder_disp_error_cb(recorder_error_e error, recorder_state_e current_state, void *user_data) { muse_module_h module = (muse_module_h)user_data; @@ -1136,6 +1155,52 @@ int recorder_dispatcher_unset_interrupted_cb(muse_module_h module) return MUSE_RECORDER_ERROR_NONE; } +int recorder_dispatcher_set_interrupt_started_cb(muse_module_h module) +{ + int ret = RECORDER_ERROR_NONE; + muse_recorder_api_e api = MUSE_RECORDER_API_SET_INTERRUPT_STARTED_CB; + muse_recorder_api_class_e class = MUSE_RECORDER_API_CLASS_IMMEDIATE; + muse_recorder_handle_s *muse_recorder = NULL; + + muse_recorder = (muse_recorder_handle_s *)muse_core_ipc_get_handle(module); + if (muse_recorder == NULL) { + LOGE("NULL handle"); + ret = RECORDER_ERROR_INVALID_OPERATION; + muse_recorder_msg_return(api, class, ret, module); + return MUSE_RECORDER_ERROR_NONE; + } + + ret = legacy_recorder_set_interrupt_started_cb(muse_recorder->recorder_handle, + (recorder_interrupt_started_cb)_recorder_disp_interrupt_started_cb, + (void *)module); + + muse_recorder_msg_return(api, class, ret, module); + + return MUSE_RECORDER_ERROR_NONE; +} + +int recorder_dispatcher_unset_interrupt_started_cb(muse_module_h module) +{ + int ret = RECORDER_ERROR_NONE; + muse_recorder_api_e api = MUSE_RECORDER_API_UNSET_INTERRUPT_STARTED_CB; + muse_recorder_api_class_e class = MUSE_RECORDER_API_CLASS_IMMEDIATE; + muse_recorder_handle_s *muse_recorder = NULL; + + muse_recorder = (muse_recorder_handle_s *)muse_core_ipc_get_handle(module); + if (muse_recorder == NULL) { + LOGE("NULL handle"); + ret = RECORDER_ERROR_INVALID_OPERATION; + muse_recorder_msg_return(api, class, ret, module); + return MUSE_RECORDER_ERROR_NONE; + } + + ret = legacy_recorder_unset_interrupt_started_cb(muse_recorder->recorder_handle); + + muse_recorder_msg_return(api, class, ret, module); + + return MUSE_RECORDER_ERROR_NONE; +} + int recorder_dispatcher_set_audio_stream_cb(muse_module_h module) { int ret = RECORDER_ERROR_NONE; @@ -2328,7 +2393,9 @@ int (*dispatcher[MUSE_RECORDER_API_MAX]) (muse_module_h module) = { recorder_dispatcher_set_sound_stream_info, /* MUSE_RECORDER_API_SET_SOUND_STREAM_INFO */ recorder_dispatcher_get_device_state, /* MUSE_RECORDER_API_GET_DEVICE_STATE */ recorder_dispatcher_set_muxed_stream_cb, /* MUSE_RECORDER_API_SET_MUXED_STREAM_CB */ - recorder_dispatcher_unset_muxed_stream_cb /* MUSE_RECORDER_API_UNSET_MUXED_STREAM_CB */ + recorder_dispatcher_unset_muxed_stream_cb, /* MUSE_RECORDER_API_UNSET_MUXED_STREAM_CB */ + recorder_dispatcher_set_interrupt_started_cb, /* MUSE_RECORDER_API_SET_INTERRUPT_STARTED_CB */ + recorder_dispatcher_unset_interrupt_started_cb /* MUSE_RECORDER_API_UNSET_INTERRUPT_STARTED_CB */ }; @@ -2432,7 +2499,7 @@ static int recorder_cmd_external_storage_state_changed(muse_module_h module) return MUSE_RECORDER_ERROR_NONE; } - storage_state = (int)muse_core_client_get_cust_data(module); + storage_state = (int)(long)muse_core_client_get_cust_data(module); LOGW("storage state %d", storage_state); |