From: Suyeon Hwang Date: Tue, 14 Sep 2021 12:02:55 +0000 (+0900) Subject: Fix config file matched with default engine X-Git-Tag: submit/tizen/20210914.213650^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=1074cf297c64971b9256802d96c8010b594bc616;p=platform%2Fcore%2Fuifw%2Ftts.git Fix config file matched with default engine Change-Id: Iec1c9664c42c36e199612fc814a2654d161f8639 Signed-off-by: Suyeon Hwang --- diff --git a/common/tts_config_mgr.c b/common/tts_config_mgr.c index 3963e925..26108310 100644 --- a/common/tts_config_mgr.c +++ b/common/tts_config_mgr.c @@ -64,6 +64,40 @@ int __tts_config_mgr_print_engine_info(); static int __tts_config_mgr_register_engine_config_updated_event(const char* path); static int __tts_config_mgr_unregister_engine_config_updated_event(); +static char* __get_default_engine_app_id() +{ + char* engine_name = vconf_get_str(TTS_ENGINE_DB_DEFAULT); + if (NULL == engine_name) { + SLOG(LOG_ERROR, TAG_TTSC, "[ERROR] Fail to get engine name"); + engine_name = strdup(TTS_SERVER_ENGINE_DEFAULT); + } + + return engine_name; +} + +static tts_engine_info_s* __get_engine_info(const char* engine_id) +{ + if (NULL == engine_id) { + SLOG(LOG_ERROR, TAG_TTSCONFIG, "engine_id is NULL"); + return NULL; + } + + for (GSList* iter = g_slist_nth(g_engine_list, 0); NULL != iter; iter = g_slist_next(iter)) { + tts_engine_info_s* engine_info = iter->data; + if (NULL == engine_info) { + SLOG(LOG_WARN, TAG_TTSCONFIG, "engine info is NULL"); + continue; + } + + if (NULL != engine_info->uuid && 0 == strcmp(engine_id, engine_info->uuid)) { + SLOG(LOG_DEBUG, TAG_TTSCONFIG, "Success to find engine info : %s", engine_id); + return engine_info; + } + } + + return NULL; +} + int __tts_config_mgr_check_engine_is_valid(const char* engine_id) { if (NULL == engine_id) { @@ -71,44 +105,37 @@ int __tts_config_mgr_check_engine_is_valid(const char* engine_id) return -1; } - GSList *iter = NULL; - tts_engine_info_s *engine_info = NULL; - if (0 >= g_slist_length(g_engine_list)) { SLOG(LOG_ERROR, TAG_TTSCONFIG, "There is no engine!!"); return -1; } - /* Get a first item */ - iter = g_slist_nth(g_engine_list, 0); + if (NULL != __get_engine_info(engine_id)) { + SLOG(LOG_DEBUG, TAG_TTSCONFIG, "Default engine is valid : %s", engine_id); + return TTS_CONFIG_ERROR_NONE; + } - while (NULL != iter) { - engine_info = iter->data; + /* Change default engine */ + char* default_engine = __get_default_engine_app_id(); + tts_engine_info_s *engine_info = __get_engine_info(default_engine); + free(default_engine); - if (NULL == engine_info) { - SLOG(LOG_ERROR, TAG_TTSCONFIG, "engine info is NULL"); - return -1; + if (NULL == engine_info) { + GSList* iter = g_slist_nth(g_engine_list, 0); + if (NULL == iter) { + SLOG(LOG_ERROR, TAG_TTSCONFIG, "[ERROR] No engine in list"); + return TTS_CONFIG_ERROR_OPERATION_FAILED; } - if (NULL != engine_info->uuid && 0 == strcmp(engine_id, engine_info->uuid)) { - SLOG(LOG_DEBUG, TAG_TTSCONFIG, "Default engine is valid : %s", engine_id); - return 0; + engine_info = iter->data; + if (NULL == engine_info) { + SLOG(LOG_ERROR, TAG_TTSCONFIG, "[ERROR] Invalid engine info in list"); + return TTS_CONFIG_ERROR_OPERATION_FAILED; } - iter = g_slist_next(iter); - } - - /* Change default engine */ - iter = g_slist_nth(g_engine_list, 0); - if (NULL == iter) { - SLOG(LOG_ERROR, TAG_TTSCONFIG, "[ERROR] No engine in list"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; - } - - engine_info = iter->data; - if (NULL == g_config_info) { - SLOG(LOG_ERROR, TAG_TTSCONFIG, "[ERROR] Invalid engine info in list"); - return TTS_CONFIG_ERROR_OPERATION_FAILED; + if (NULL != engine_info->uuid) { + vconf_set_str(TTS_ENGINE_DB_DEFAULT, engine_info->uuid); + } } if (NULL != engine_info->uuid) { @@ -383,8 +410,8 @@ Eina_Bool tts_config_mgr_inotify_event_cb(void* data, Ecore_Fd_Handler *fd_handl if (NULL != temp_client) { if (NULL != temp_client->engine_cb) { SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "Engine changed callback : uid(%d)", temp_client->uid); - temp_client->engine_cb(g_config_info->engine_id, g_config_info->setting, - g_config_info->language, g_config_info->type, + temp_client->engine_cb(g_config_info->engine_id, g_config_info->setting, + g_config_info->language, g_config_info->type, g_config_info->auto_voice, g_config_info->credential, temp_client->user_data); } } @@ -424,8 +451,8 @@ Eina_Bool tts_config_mgr_inotify_event_cb(void* data, Ecore_Fd_Handler *fd_handl if (NULL != temp_client) { if (NULL != temp_client->voice_cb) { SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "Voice changed callback : uid(%d)", temp_client->uid); - temp_client->voice_cb(before_lang, before_type, - g_config_info->language, g_config_info->type, + temp_client->voice_cb(before_lang, before_type, + g_config_info->language, g_config_info->type, g_config_info->auto_voice, temp_client->user_data); } } @@ -613,7 +640,7 @@ int __tts_config_set_auto_language() g_config_info->language = g_language; strncpy(g_config_info->language, temp_lang, sizeof(g_language) - 1); - SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "[Config] Default voice : lang(%s) type(%d)", + SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "[Config] Default voice : lang(%s) type(%d)", g_config_info->language, g_config_info->type); GSList *iter = NULL; @@ -627,8 +654,8 @@ int __tts_config_set_auto_language() if (NULL != temp_client) { if (NULL != temp_client->voice_cb) { - temp_client->voice_cb(before_lang, before_type, - g_config_info->language, g_config_info->type, + temp_client->voice_cb(before_lang, before_type, + g_config_info->language, g_config_info->type, g_config_info->auto_voice, temp_client->user_data); } } @@ -659,7 +686,7 @@ int __tts_config_set_auto_language() return -1; } - SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "[Config] Default voice : lang(%s) type(%d)", + SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "[Config] Default voice : lang(%s) type(%d)", tmp_language, tmp_type); GSList *iter = NULL; @@ -673,7 +700,7 @@ int __tts_config_set_auto_language() if (NULL != temp_client) { if (NULL != temp_client->voice_cb) { - temp_client->voice_cb(g_config_info->language, g_config_info->type, + temp_client->voice_cb(g_config_info->language, g_config_info->type, tmp_language, tmp_type, g_config_info->auto_voice, temp_client->user_data); } } @@ -947,7 +974,7 @@ static Eina_Bool __tts_config_mgr_engine_config_inotify_event_callback(void* dat if (NULL != temp_client->engine_cb) { SECURE_SLOG(LOG_DEBUG, TAG_TTSCONFIG, "Engine changed callback : uid(%d)", temp_client->uid); temp_client->engine_cb(g_config_info->engine_id, g_config_info->setting, - g_config_info->language, g_config_info->type, + g_config_info->language, g_config_info->type, g_config_info->auto_voice, g_config_info->credential, temp_client->user_data); } } @@ -1271,10 +1298,10 @@ int tts_config_mgr_finalize(int uid) return 0; } -int tts_config_mgr_set_callback(int uid, - tts_config_engine_changed_cb engine_cb, - tts_config_voice_changed_cb voice_cb, - tts_config_speech_rate_changed_cb speech_cb, +int tts_config_mgr_set_callback(int uid, + tts_config_engine_changed_cb engine_cb, + tts_config_voice_changed_cb voice_cb, + tts_config_speech_rate_changed_cb speech_cb, tts_config_pitch_changed_cb pitch_cb, tts_config_bg_volume_ratio_changed_cb bg_volume_ratio_cb, void* user_data)