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) {
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) {
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);
}
}
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);
}
}
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;
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);
}
}
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;
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);
}
}
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);
}
}
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)