return 0;
}
+static void __recorder_destroy_by_error_result(void *data)
+{
+ SLOG(LOG_DEBUG, TAG_STTD, "[Engine Agent] Destroy recorder");
+ if (0 != sttd_recorder_destroy())
+ SECURE_SLOG(LOG_WARN, TAG_STTD, "[Engine Agent] Fail to destroy recorder");
+
+ return;
+}
+
int sttd_engine_agent_send_result(stte_result_event_e event, const char* type, const char** result, int result_count,
const char* msg, void* time_info, void *user_data)
{
+ int ret = -1;
+
if (false == g_agent_init) {
SLOG(LOG_ERROR, TAG_STTD, "[Engine Agent ERROR] Result Callback : Not Initialized");
return STTD_ERROR_OPERATION_FAILED;
if (NULL != time_info) {
/* Get the time info */
- int ret = stt_engine_foreach_result_time(time_info, __result_time_cb, NULL);
+ ret = stt_engine_foreach_result_time(time_info, __result_time_cb, NULL);
if (0 != ret) {
SLOG(LOG_ERROR, TAG_STTD, "[Engine Agent ERROR] Fail to get time info : %d", ret);
return ret;
SLOG(LOG_DEBUG, TAG_STTD, "[Server] ============================");
- g_result_cb(event, type, result, result_count, msg, user_data);
+ ret = g_result_cb(event, type, result, result_count, msg, user_data);
#ifdef AUDIO_CREATE_ON_START
if (event == STTE_RESULT_EVENT_ERROR) {
- SLOG(LOG_DEBUG, TAG_STTD, "[Engine Agent] Destroy recorder");
- if (0 != sttd_recorder_destroy())
- SECURE_SLOG(LOG_WARN, TAG_STTD, "[Engine Agent] Fail to destroy recorder");
+ ecore_main_loop_thread_safe_call_async(__recorder_destroy_by_error_result, NULL);
}
#endif
- return STTD_ERROR_NONE;
+ return ret;
}
int sttd_engine_agent_send_error(stte_error_e error, const char* msg)
/* check uid */
int uid = stt_client_get_current_recognition();
- char* err_msg = strdup(msg);
- int ret = STTE_ERROR_NONE;
+ char* err_msg = NULL;
+ int ret = STTD_ERROR_NONE;
+
+ if (NULL != msg) {
+ err_msg = strdup(msg);
+ }
ret = sttdc_send_error_signal(uid, error, err_msg);
if (0 != ret) {
SLOG(LOG_ERROR, TAG_STTD, "[Server ERROR] Fail to send error info.");
+
+ if (NULL != err_msg) {
+ free(err_msg);
+ err_msg = NULL;
+ }
+
+ return ret;
}
if (NULL != err_msg) {
err_msg = NULL;
}
- g_error_cb(error, msg);
+ ret = g_error_cb(error, msg);
return ret;
}
int sttd_engine_agent_send_speech_status(stte_speech_status_e status, void* user_data)
{
+ int ret = STTD_ERROR_NONE;
if (false == g_agent_init) {
SLOG(LOG_ERROR, TAG_STTD, "[Engine Agent ERROR] Silence Callback : Not Initialized");
return STTD_ERROR_OPERATION_FAILED;
}
- g_speech_status_cb(status, user_data);
- return STTD_ERROR_NONE;
+ ret = g_speech_status_cb(status, user_data);
+ return ret;
}
bool __result_time_cb(int index, stte_result_time_event_e event, const char* text, long start_time, long end_time, void* user_data)