return __tts_config_mgr_check_lang_is_valid(config_info.engine_id, language, type);
}
+int __tts_config_mgr_print_personal_info(const char* engine_id)
+{
+ char filepath[PATH_MAX_SIZE] = {'\0',};
+
+ memset(filepath, '\0', PATH_MAX_SIZE);
+ snprintf(filepath, PATH_MAX_SIZE, "%s/%s-%s", TTS_DOWNLOAD_PERSONAL_INFO, engine_id, "personal.xml");
+
+ tts_personal_info_s* info = NULL;
+ int ret = tts_parser_get_personal_info(filepath, &info);
+ if (0 != ret) {
+ return -1;
+ }
+
+ GSList *iter_personal_voice = NULL;
+ tts_config_personal_s* personal_voice = NULL;
+ if (g_slist_length(info->personal_voices) > 0) {
+ /* Get a first item */
+ iter_personal_voice = g_slist_nth(info->personal_voices, 0);
+
+ int j = 1;
+ while (NULL != iter_personal_voice) {
+ /*Get handle data from list*/
+ personal_voice = iter_personal_voice->data;
+
+ SLOG(LOG_DEBUG, TAG_TTSCONFIG, " [%dth] lang(%s) unique_id(%s) display_name(%s) device_name(%s)", j, personal_voice->language, personal_voice->unique_id, personal_voice->display_name, personal_voice->device_name);
+
+ /*Get next item*/
+ iter_personal_voice = g_slist_next(iter_personal_voice);
+ j++;
+ }
+ } else {
+ tts_parser_free_personal_info(info);
+ return -1;
+ }
+
+ tts_parser_free_personal_info(info);
+
+ return 0;
+}
int __tts_config_mgr_print_engine_info()
{
} else {
SLOG(LOG_ERROR, TAG_TTSCONFIG, " Voice is NONE");
}
+
+ SLOG(LOG_DEBUG, TAG_TTSCONFIG, " Personal Voices");
+ int ret = __tts_config_mgr_print_personal_info(engine_info->uuid);
+ if (0 != ret) {
+ SLOG(LOG_ERROR, TAG_TTSCONFIG, " Personal Voice is NONE");
+ }
+
iter = g_slist_next(iter);
i++;
}
/* Invalid engine */
SECURE_SLOG(LOG_ERROR, TAG_TTSCONFIG, "[ERROR] Invalid engine : %s", path);
// free personal info
+ tts_parser_free_personal_info(temp);
return -1;
}
return 0;
}
+int tts_parser_free_personal_info(tts_personal_info_s* personal_info)
+{
+ if (NULL == personal_info) {
+ SLOG(LOG_ERROR, TAG_TTSCONFIG, "[ERROR] Input parameter is NULL");
+ return -1;
+ }
+
+ if (NULL != personal_info->engine_id) {
+ free(personal_info->engine_id);
+ personal_info->engine_id = NULL;
+ }
+
+ GSList *iter = NULL;
+ if (g_slist_length(personal_info->personal_voices) > 0) {
+ iter = g_slist_nth(personal_info->personal_voices, 0);
+ while (NULL != iter) {
+ tts_config_personal_s *temp = (tts_config_personal_s*)iter->data;
+ if (NULL != temp) {
+ if (NULL != temp->language) {
+ free(temp->language);
+ temp->language = NULL;
+ }
+ if (NULL != temp->unique_id) {
+ free(temp->unique_id);
+ temp->unique_id = NULL;
+ }
+ if (NULL != temp->display_name) {
+ free(temp->display_name);
+ temp->display_name = NULL;
+ }
+ if (NULL != temp->device_name) {
+ free(temp->device_name);
+ temp->device_name = NULL;
+ }
+
+ free(temp);
+ temp = NULL;
+ }
+
+ personal_info->personal_voices = g_slist_delete_link(personal_info->personal_voices, iter);
+ iter = g_slist_nth(personal_info->personal_voices, 0);
+ }
+ }
+
+ if (NULL != personal_info) {
+ free(personal_info);
+ personal_info = NULL;
+ }
+
+ return 0;
+}
+
int tts_parser_free_engine_info(tts_engine_info_s* engine_info)
{
if (NULL == engine_info) {