Fix config file matched with default engine 10/264210/1 accepted/tizen/unified/20210915.001815 submit/tizen/20210914.213650
authorSuyeon Hwang <stom.hwang@samsung.com>
Tue, 14 Sep 2021 12:02:55 +0000 (21:02 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Tue, 14 Sep 2021 12:02:55 +0000 (21:02 +0900)
Change-Id: Iec1c9664c42c36e199612fc814a2654d161f8639
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
common/tts_config_mgr.c

index 3963e92..2610831 100644 (file)
@@ -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)