X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=server%2Fsttd_server.c;h=ccaf29d445a30e2ccc7f5072ab56c1e1a4ac06ed;hb=e2ff8a26a52b77b52f1aea40cb64699565c76a99;hp=38735c795f52643d873fc8a62c611778ce781441;hpb=492dee54ada430cc6a0bdef3b18278bb2ea4f0e6;p=platform%2Fcore%2Fuifw%2Fstt.git diff --git a/server/sttd_server.c b/server/sttd_server.c index 38735c7..ccaf29d 100644 --- a/server/sttd_server.c +++ b/server/sttd_server.c @@ -52,7 +52,7 @@ static GList *g_proc_list = NULL; */ void __stop_by_silence(void *data) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Stop by silence detection"); + SLOG(LOG_INFO, TAG_STTD, "===== Stop by silence detection"); int uid = 0; @@ -79,7 +79,7 @@ void __stop_by_silence(void *data) SLOG(LOG_WARN, TAG_STTD, "[Server WARNING] uid is NOT valid"); } - SLOG(LOG_DEBUG, TAG_STTD, "====="); + SLOG(LOG_INFO, TAG_STTD, "====="); SLOG(LOG_DEBUG, TAG_STTD, " "); return; @@ -105,6 +105,7 @@ static void __cancel_recognition_internal() } if (0 != uid && (APP_STATE_PROCESSING == state || APP_STATE_RECORDING == state)) { + SLOG(LOG_INFO, TAG_STTD, "===== cancel by internal"); /* cancel engine recognition */ ret = sttd_server_cancel(uid); if (0 != ret) { @@ -117,7 +118,7 @@ static void __cancel_recognition_internal() static void __cancel_by_error(void *data) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Cancel by error"); + SLOG(LOG_INFO, TAG_STTD, "===== Cancel by error"); __cancel_recognition_internal(); @@ -164,7 +165,7 @@ int __server_audio_recorder_callback(const void* data, const unsigned int length void __server_audio_interrupt_callback() { - SLOG(LOG_DEBUG, TAG_STTD, "===== Cancel by sound interrupt"); + SLOG(LOG_INFO, TAG_STTD, "===== Cancel by sound interrupt"); __cancel_recognition_internal(); @@ -174,7 +175,7 @@ void __server_audio_interrupt_callback() void __cancel_by_no_record(void *data) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Cancel by no record"); + SLOG(LOG_INFO, TAG_STTD, "===== Cancel by no record"); __cancel_recognition_internal(); @@ -190,7 +191,7 @@ int __server_recognition_result_callback(stte_result_event_e event, const char* // critical section pthread_mutex_lock(&stte_result_mutex); - SLOG(LOG_DEBUG, TAG_STTD, "===== RESULT event[%d] type[%s] data[%p] data_count[%d]", event, type, data, data_count); + SLOG(LOG_INFO, TAG_STTD, "===== RESULT event[%d] type[%s] data[%p] data_count[%d]", event, type, data, data_count); /* check uid */ int uid = stt_client_get_current_recognition(); @@ -204,19 +205,22 @@ int __server_recognition_result_callback(stte_result_event_e event, const char* return STTD_ERROR_OPERATION_FAILED; } - SLOG(LOG_DEBUG, TAG_STTD, "[Server] uid (%d), event(%d)", uid, event); + SLOG(LOG_INFO, TAG_STTD, "[Server] uid (%d), event(%d)", uid, event); /* send result to client */ if (STTE_RESULT_EVENT_FINAL_RESULT == event) { if (APP_STATE_PROCESSING != state) { SLOG(LOG_WARN, TAG_STTD, "[Server WARNING] Current state is NOT 'Processing'."); } - SLOG(LOG_DEBUG, TAG_STTD, "[Server] the size of result from engine is '%d'", data_count); + SLOG(LOG_INFO, TAG_STTD, "[Server] the size of result from engine is '%d'", data_count); /* Delete timer for processing time out */ if (NULL != g_processing_timer) { + ecore_thread_main_loop_begin(); + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); ecore_timer_del(g_processing_timer); g_processing_timer = NULL; + ecore_thread_main_loop_end(); } sttd_config_time_save(); @@ -252,7 +256,7 @@ int __server_recognition_result_callback(stte_result_event_e event, const char* // stt_client_unset_current_recognition(); } else if (STTE_RESULT_EVENT_PARTIAL_RESULT == event) { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] The partial result from engine is event[%d] data_count[%d]", event, data_count); + SLOG(LOG_INFO, TAG_STTD, "[Server] The partial result from engine is event[%d] data_count[%d]", event, data_count); sttd_config_time_save(); sttd_config_time_reset(); @@ -271,8 +275,11 @@ int __server_recognition_result_callback(stte_result_event_e event, const char* /* Delete timer for processing time out */ if (NULL != g_processing_timer) { + ecore_thread_main_loop_begin(); + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); ecore_timer_del(g_processing_timer); g_processing_timer = NULL; + ecore_thread_main_loop_end(); } sttd_config_time_reset(); @@ -304,7 +311,7 @@ int __server_recognition_result_callback(stte_result_event_e event, const char* /* nothing */ } - SLOG(LOG_DEBUG, TAG_STTD, "====="); + SLOG(LOG_INFO, TAG_STTD, "====="); SLOG(LOG_DEBUG, TAG_STTD, " "); pthread_mutex_unlock(&stte_result_mutex); @@ -315,7 +322,7 @@ bool __server_result_time_callback(int index, stte_result_time_event_e event, co { pthread_mutex_lock(&stte_result_time_mutex); - SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[Server] index(%d) event(%d) text(%s) start(%ld) end(%ld)", + SECURE_SLOG(LOG_INFO, TAG_STTD, "[Server] index(%d) event(%d) text(%s) start(%ld) end(%ld)", index, event, text, start_time, end_time); int ret; @@ -333,7 +340,7 @@ bool __server_result_time_callback(int index, stte_result_time_event_e event, co int __server_speech_status_callback(stte_speech_status_e status, void *user_param) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Speech status detected Callback"); + SLOG(LOG_INFO, TAG_STTD, "===== Speech status detected Callback"); int uid = stt_client_get_current_recognition(); if (0 != uid) { @@ -356,10 +363,10 @@ int __server_speech_status_callback(stte_speech_status_e status, void *user_para ecore_main_loop_thread_safe_call_async(__stop_by_silence, NULL); } } else { - SLOG(LOG_WARN, TAG_STTD, "[Server WARNING] Current recogntion uid is not valid "); + SLOG(LOG_WARN, TAG_STTD, "[Server WARNING] Current recognition uid is not valid "); } - SLOG(LOG_DEBUG, TAG_STTD, "====="); + SLOG(LOG_INFO, TAG_STTD, "====="); SLOG(LOG_DEBUG, TAG_STTD, " "); return STTD_ERROR_NONE; @@ -367,7 +374,7 @@ int __server_speech_status_callback(stte_speech_status_e status, void *user_para int __server_error_callback(stte_error_e error, const char* msg) { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] Error Callback is called"); + SLOG(LOG_INFO, TAG_STTD, "[Server] Error Callback is called"); ecore_main_loop_thread_safe_call_async(__cancel_by_error, NULL); return STTD_ERROR_NONE; @@ -379,7 +386,7 @@ void __sttd_server_engine_changed_cb(const char* engine_id, const char* language SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Engine id is NULL"); return; } else { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] New default engine : %s", engine_id); + SLOG(LOG_INFO, TAG_STTD, "[Server] New default engine : %s", engine_id); } #if 0 @@ -421,7 +428,7 @@ void __sttd_server_language_changed_cb(const char* language, void* user_data) SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] language is NULL"); return; } else { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] Get language changed : %s", language); + SLOG(LOG_INFO, TAG_STTD, "[Server] Get language changed : %s", language); } int ret = sttd_engine_agent_set_default_language(language); @@ -433,7 +440,7 @@ void __sttd_server_language_changed_cb(const char* language, void* user_data) void __sttd_server_silence_changed_cb(bool value, void* user_data) { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] Get silence detection changed : %s", value ? "on" : "off"); + SLOG(LOG_INFO, TAG_STTD, "[Server] Get silence detection changed : %s", value ? "on" : "off"); int ret = 0; ret = sttd_engine_agent_set_silence_detection(value); @@ -489,7 +496,7 @@ int sttd_initialize(stte_request_callback_s *callback) SLOG(LOG_WARN, TAG_STTD, "[Main Warning] Fail to create timer of client check"); } - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] initialize"); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] initialize"); return 0; } @@ -526,6 +533,8 @@ int sttd_finalize() SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete ecore timer handle"); } + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] finalize"); + return STTD_ERROR_NONE; } @@ -578,7 +587,7 @@ Eina_Bool sttd_cleanup_client(void *data) } if (NULL != client_list) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Clean up client "); + SLOG(LOG_INFO, TAG_STTD, "===== Clean up client "); __read_proc(); @@ -618,7 +627,7 @@ Eina_Bool sttd_cleanup_client(void *data) #endif } - SLOG(LOG_DEBUG, TAG_STTD, "====="); + SLOG(LOG_INFO, TAG_STTD, "====="); SLOG(LOG_DEBUG, TAG_STTD, " "); free(client_list); @@ -635,6 +644,8 @@ int sttd_server_initialize(int pid, int uid, bool* silence, bool* credential) { int ret = STTD_ERROR_NONE; + SLOG(LOG_INFO, TAG_STTD, "[Server] server initialize"); + /* check if uid is valid */ app_state_e state; if (0 == sttd_client_get_state(uid, &state)) { @@ -661,25 +672,29 @@ int sttd_server_initialize(int pid, int uid, bool* silence, bool* credential) return ret; } + SLOG(LOG_INFO, TAG_STTD, "[Server Success] server initialize"); + return STTD_ERROR_NONE; } static Eina_Bool __quit_ecore_loop(void *data) { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] Quit"); + SLOG(LOG_INFO, TAG_STTD, "[Server] Quit"); stt_network_finalize(); sttd_finalize(); sttd_dbus_close_connection(); ecore_main_loop_quit(); - SLOG(LOG_DEBUG, TAG_STTD, ""); + SLOG(LOG_INFO, TAG_STTD, ""); return EINA_FALSE; } int sttd_server_finalize(int uid) { + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] Enter Finalize"); + /* check if uid is valid */ app_state_e state; if (0 != sttd_client_get_state(uid, &state)) { @@ -698,11 +713,14 @@ int sttd_server_finalize(int uid) if (APP_STATE_PROCESSING == state) { if (NULL != g_processing_timer) { + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); ecore_timer_del(g_processing_timer); g_processing_timer = NULL; } } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] stt_cancel is invoked while state is (%d)", state); + if (0 != sttd_engine_agent_recognize_cancel(uid)) { SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to cancel recognition"); } @@ -721,6 +739,8 @@ int sttd_server_finalize(int uid) ecore_timer_add(0, __quit_ecore_loop, NULL); } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] End Finalize"); + return STTD_ERROR_NONE; } @@ -739,6 +759,8 @@ int sttd_server_get_supported_engines(int uid, GSList** engine_list) return STTD_ERROR_INVALID_STATE; } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] get supported egnines"); + int ret; ret = sttd_engine_agent_get_engine_list(engine_list); if (0 != ret) { @@ -764,6 +786,8 @@ int sttd_server_set_current_engine(int uid, const char* engine_id, bool* silence return STTD_ERROR_INVALID_STATE; } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] set current egnines, uid(%d), engine_id(%s)", uid, engine_id); + int ret; ret = sttd_engine_agent_load_current_engine(NULL); if (0 != ret) { @@ -800,6 +824,8 @@ int sttd_server_get_current_engine(int uid, char** engine_id) return STTD_ERROR_INVALID_STATE; } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] get current egnines, uid(%d)", uid); + int ret; ret = sttd_engine_agent_get_current_engine(engine_id); if (0 != ret) { @@ -825,6 +851,8 @@ int sttd_server_check_app_agreed(int uid, const char* appid, bool* available) return STTD_ERROR_INVALID_STATE; } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] check app agreed"); + /* Ask engine available */ int ret; bool temp = false; @@ -854,6 +882,8 @@ int sttd_server_get_supported_languages(int uid, GSList** lang_list) return STTD_ERROR_INVALID_PARAMETER; } + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] get supported languages"); + /* get language list from engine */ int ret = sttd_engine_agent_supported_langs(lang_list); if (0 != ret) { @@ -887,7 +917,7 @@ int sttd_server_get_current_langauage(int uid, char** current_lang) return ret; } - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] Get default language"); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] Get default language, current_lang(%s)", *current_lang); return STTD_ERROR_NONE; } @@ -914,7 +944,7 @@ int sttd_server_set_private_data(int uid, const char* key, const char* data) return ret; } - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] Set private data"); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] Set private data"); return STTD_ERROR_NONE; } @@ -941,7 +971,7 @@ int sttd_server_get_private_data(int uid, const char* key, char** data) return ret; } - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] Get private data, key(%s), data(%s)", key, *data); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] Get private data, key(%s), data(%s)", key, *data); return STTD_ERROR_NONE; } @@ -969,7 +999,7 @@ int sttd_server_is_recognition_type_supported(int uid, const char* type, int* su *support = (int)temp; - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] recognition type supporting is %s", *support ? "true" : "false"); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] recognition type supporting is %s", *support ? "true" : "false"); return STTD_ERROR_NONE; } @@ -1047,9 +1077,12 @@ Eina_Bool __check_recording_state(void *data) Eina_Bool __stop_by_recording_timeout(void *data) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Stop by timeout"); + SLOG(LOG_INFO, TAG_STTD, "===== Stop by timeout"); - g_recording_timer = NULL; + if (NULL != g_recording_timer) { + ecore_timer_del(g_recording_timer); + g_recording_timer = NULL; + } int uid = 0; uid = stt_client_get_current_recognition(); @@ -1061,7 +1094,7 @@ Eina_Bool __stop_by_recording_timeout(void *data) } } - SLOG(LOG_DEBUG, TAG_STTD, "====="); + SLOG(LOG_INFO, TAG_STTD, "====="); SLOG(LOG_DEBUG, TAG_STTD, " "); return EINA_FALSE; @@ -1085,7 +1118,10 @@ void __sttd_server_recorder_start(void* data) } app_state_e temp_app_state; - sttd_client_get_state(uid, &temp_app_state); + if (0 != sttd_client_get_state(uid, &temp_app_state)) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] uid is NOT valid "); + return; + } if (APP_STATE_READY != temp_app_state && 0 != stt_client_get_current_recognition()) { /* Notify uid state change */ sttdc_send_set_state(uid, APP_STATE_RECORDING); @@ -1095,12 +1131,12 @@ void __sttd_server_recorder_start(void* data) void __sttd_start_sound_completed_cb(int id, void *user_data) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Start sound completed"); + SLOG(LOG_INFO, TAG_STTD, "===== Start sound completed"); /* After wav play callback, recorder start */ ecore_main_loop_thread_safe_call_async(__sttd_server_recorder_start, user_data); - SLOG(LOG_DEBUG, TAG_STTD, "====="); + SLOG(LOG_INFO, TAG_STTD, "====="); SLOG(LOG_DEBUG, TAG_STTD, " "); return; } @@ -1150,6 +1186,17 @@ int sttd_server_start(int uid, const char* lang, const char* recognition_type, i } } + if (NULL != g_recording_timer) { + ecore_timer_del(g_recording_timer); + g_recording_timer = NULL; + } + + if (NULL != g_processing_timer) { + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); + ecore_timer_del(g_processing_timer); + g_processing_timer = NULL; + } + char* sound = NULL; ret = sttd_client_get_start_sound(uid, &sound); if (0 != ret) { @@ -1164,10 +1211,10 @@ int sttd_server_start(int uid, const char* lang, const char* recognition_type, i } /* engine start recognition */ - SLOG(LOG_DEBUG, TAG_STTD, "[Server] start : uid(%d), lang(%s), recog_type(%s)", + SLOG(LOG_INFO, TAG_STTD, "[Server] start : uid(%d), lang(%s), recog_type(%s)", uid, lang, recognition_type); if (NULL != sound) - SLOG(LOG_DEBUG, TAG_STTD, "[Server] start sound : %s", sound); + SLOG(LOG_INFO, TAG_STTD, "[Server] start sound : %s", sound); /* 1. Set audio session */ ret = sttd_recorder_set_audio_session(); @@ -1184,10 +1231,20 @@ int sttd_server_start(int uid, const char* lang, const char* recognition_type, i if (NULL != sound) { int id = 0; intptr_t puid = (intptr_t)uid; - ret = wav_player_start(sound, SOUND_TYPE_MEDIA, __sttd_start_sound_completed_cb, (void*)puid, &id); - if (WAV_PLAYER_ERROR_NONE != ret) { - SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav"); + sound_stream_info_h wav_stream_info_h; + if (0 != sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &wav_stream_info_h)) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to create stream info for playing wav"); is_sound_done = true; + } else { + ret = wav_player_start_new(sound, wav_stream_info_h, __sttd_start_sound_completed_cb, (void*)puid, &id); + if (WAV_PLAYER_ERROR_NONE != ret) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav"); + is_sound_done = true; + } + + if (0 != sound_manager_destroy_stream_information(wav_stream_info_h)) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to destroy stream info for playing wav"); + } } free(sound); sound = NULL; @@ -1216,7 +1273,7 @@ int sttd_server_start(int uid, const char* lang, const char* recognition_type, i app_state_e temp_app_state; if (true == is_sound_done) { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] No sound play"); + SLOG(LOG_INFO, TAG_STTD, "[Server] No sound play"); ret = sttd_engine_agent_recognize_start_recorder(uid); if (0 != ret) { @@ -1224,36 +1281,50 @@ int sttd_server_start(int uid, const char* lang, const char* recognition_type, i sttd_recorder_unset_audio_session(); sttd_engine_agent_recognize_cancel(); - ecore_timer_del(g_recording_timer); + if (NULL != g_recording_timer) { + ecore_timer_del(g_recording_timer); + g_recording_timer = NULL; + } sttd_client_set_state(uid, APP_STATE_READY); SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to start recorder : result(%d)", ret); return ret; } - sttd_client_get_state(uid, &temp_app_state); + if (0 != sttd_client_get_state(uid, &temp_app_state)) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] uid is NOT valid"); + return STTD_ERROR_INVALID_PARAMETER; + } if (APP_STATE_READY != temp_app_state && 0 != stt_client_get_current_recognition()) { /* Notify uid state change */ sttdc_send_set_state(uid, APP_STATE_RECORDING); } - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] Start recognition"); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] Start recognition"); return STTD_RESULT_STATE_DONE; } - SLOG(LOG_DEBUG, TAG_STTD, "[Server] Wait sound finish"); + SLOG(LOG_INFO, TAG_STTD, "[Server] Wait sound finish"); return STTD_RESULT_STATE_NOT_DONE; } Eina_Bool __time_out_for_processing(void *data) { - g_processing_timer = NULL; + if (NULL != g_processing_timer) { + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); + ecore_timer_del(g_processing_timer); + g_processing_timer = NULL; + } + + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] Enter __time_out_for_processing"); /* current uid */ int uid = stt_client_get_current_recognition(); if (0 == uid) return EINA_FALSE; + SLOG(LOG_INFO, TAG_STTD, "[Server Info] stt cancel is invoked by timeout for processing"); + /* Cancel engine */ int ret = sttd_engine_agent_recognize_cancel(); if (0 != ret) { @@ -1275,6 +1346,8 @@ Eina_Bool __time_out_for_processing(void *data) stt_client_unset_current_recognition(); + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] End __time_out_for_processing"); + return EINA_FALSE; } @@ -1307,7 +1380,7 @@ void __sttd_server_engine_stop(void* data) void __sttd_stop_sound_completed_cb(int id, void *user_data) { - SLOG(LOG_DEBUG, TAG_STTD, "===== Stop sound completed"); + SLOG(LOG_INFO, TAG_STTD, "===== Stop sound completed"); /* After wav play callback, engine stop */ ecore_main_loop_thread_safe_call_async(__sttd_server_engine_stop, user_data); @@ -1337,13 +1410,19 @@ int sttd_server_stop(int uid) g_recording_timer = NULL; } + if (NULL != g_processing_timer) { + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); + ecore_timer_del(g_processing_timer); + g_processing_timer = NULL; + } + char* sound = NULL; if (0 != sttd_client_get_stop_sound(uid, &sound)) { SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to get start beep sound"); return STTD_ERROR_OPERATION_FAILED; } - SLOG(LOG_DEBUG, TAG_STTD, "[Server] stop sound path : %s", sound); + SLOG(LOG_INFO, TAG_STTD, "[Server] stop sound path : %s", sound); int ret; /* 1. Stop recorder */ @@ -1361,20 +1440,29 @@ int sttd_server_stop(int uid) if (NULL != sound) { int id = 0; intptr_t puid = (intptr_t)uid; - ret = wav_player_start(sound, SOUND_TYPE_MEDIA, __sttd_stop_sound_completed_cb, (void*)puid, &id); - if (WAV_PLAYER_ERROR_NONE != ret) { - SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav"); + sound_stream_info_h wav_stream_info_h; + if (0 != sound_manager_create_stream_information(SOUND_STREAM_TYPE_MEDIA, NULL, NULL, &wav_stream_info_h)) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to create stream info for playing wav"); } else { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] Play wav : %s", sound); - } + ret = wav_player_start_new(sound, wav_stream_info_h, __sttd_stop_sound_completed_cb, (void*)puid, &id); + if (WAV_PLAYER_ERROR_NONE != ret) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to play wav"); + } else { + SLOG(LOG_DEBUG, TAG_STTD, "[Server] Play wav : %s", sound); + } + if (0 != sound_manager_destroy_stream_information(wav_stream_info_h)) { + SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to destroy stream info for playing wav"); + } + } free(sound); + SLOG(LOG_INFO, TAG_STTD, "[INFO] Add g_processing_timer"); g_processing_timer = ecore_timer_add(g_processing_timeout, __time_out_for_processing, NULL); return STTD_RESULT_STATE_NOT_DONE; } else { - SLOG(LOG_DEBUG, TAG_STTD, "[Server] No sound play"); + SLOG(LOG_INFO, TAG_STTD, "[Server] No sound play"); /* Unset audio session */ ret = sttd_recorder_unset_audio_session(); @@ -1397,8 +1485,9 @@ int sttd_server_stop(int uid) /* Notify uid state change */ sttdc_send_set_state(uid, APP_STATE_PROCESSING); - SLOG(LOG_DEBUG, TAG_STTD, "[Server SUCCESS] Stop recognition"); + SLOG(LOG_INFO, TAG_STTD, "[Server SUCCESS] Stop recognition"); + SLOG(LOG_INFO, TAG_STTD, "[INFO] Add g_processing_timer"); g_processing_timer = ecore_timer_add(g_processing_timeout, __time_out_for_processing, NULL); return STTD_RESULT_STATE_DONE; @@ -1409,6 +1498,8 @@ int sttd_server_stop(int uid) int sttd_server_cancel(int uid) { + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] Enter sttd_server_cancel"); + /* check if uid is valid */ app_state_e state; if (0 != sttd_client_get_state(uid, &state)) { @@ -1430,6 +1521,7 @@ int sttd_server_cancel(int uid) } if (NULL != g_processing_timer) { + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); ecore_timer_del(g_processing_timer); g_processing_timer = NULL; } @@ -1446,6 +1538,8 @@ int sttd_server_cancel(int uid) /* change uid state */ sttd_client_set_state(uid, APP_STATE_READY); + SLOG(LOG_INFO, TAG_STTD, "[Server Info] stt cancel is invoked by app's request"); + /* cancel engine recognition */ int ret = sttd_engine_agent_recognize_cancel(); if (0 != ret) { @@ -1456,6 +1550,8 @@ int sttd_server_cancel(int uid) /* Notify uid state change */ sttdc_send_set_state(uid, APP_STATE_READY); + SLOG(LOG_INFO, TAG_STTD, "[Server INFO] End sttd_server_cancel"); + return STTD_ERROR_NONE; } @@ -1599,6 +1695,7 @@ int sttd_server_cancel_file(int uid) } if (NULL != g_processing_timer) { + SLOG(LOG_INFO, TAG_STTD, "[INFO] Delete g_processing_timer"); ecore_timer_del(g_processing_timer); g_processing_timer = NULL; } @@ -1627,3 +1724,4 @@ int sttd_server_cancel_file(int uid) return STTD_ERROR_NONE; } +