#define STT_TAG_ENGINE_ID "id"
#define STT_TAG_ENGINE_SETTING "setting"
#define STT_TAG_ENGINE_AGREEMENT "agreement"
+#define STT_TAG_ENGINE_DEFAULT "default"
#define STT_TAG_ENGINE_LANGUAGE_SET "languages"
#define STT_TAG_ENGINE_LANGUAGE "lang"
#define STT_TAG_ENGINE_SILENCE_SUPPORT "silence-detection-support"
temp->uuid = NULL;
temp->setting = NULL;
temp->agreement = NULL;
+ temp->default_lang = NULL;
temp->languages = NULL;
temp->support_silence_detection = false;
temp->need_credential = false;
+ bool is_default_lang_set = false;
+
while (cur != NULL) {
if (0 == xmlStrcmp(cur->name, (const xmlChar *)STT_TAG_ENGINE_NAME)) {
key = xmlNodeGetContent(cur);
} else {
SLOG(LOG_ERROR, stt_tag(), "[ERROR] <%s> has no content", STT_TAG_ENGINE_AGREEMENT);
}
+ } else if (0 == xmlStrcmp(cur->name, (const xmlChar *)STT_TAG_ENGINE_DEFAULT)) {
+ key = xmlNodeGetContent(cur);
+ if (NULL != key) {
+ SLOG(LOG_DEBUG, stt_tag(), "Engine agreement : %s", (char *)key);
+ if (NULL != temp->default_lang) free(temp->default_lang);
+ temp->default_lang = strdup((char*)key);
+
+ is_default_lang_set = true;
+ xmlFree(key);
+ } else {
+ SLOG(LOG_ERROR, stt_tag(), "[ERROR] <%s> has no content", STT_TAG_ENGINE_DEFAULT);
+ }
} else if (0 == xmlStrcmp(cur->name, (const xmlChar *)STT_TAG_ENGINE_LANGUAGE_SET)) {
xmlNodePtr lang_node = NULL;
char* temp_lang = NULL;
/* SLOG(LOG_DEBUG, stt_tag(), "language : %s", (char *)key); */
temp_lang = strdup((char*)key);
temp->languages = g_slist_append(temp->languages, temp_lang);
+
+ if (false == is_default_lang_set) {
+ if (NULL != temp->default_lang) free(temp->default_lang);
+ temp->default_lang = strdup((char*)key);
+
+ is_default_lang_set = true;
+ }
xmlFree(key);
} else {
SLOG(LOG_ERROR, stt_tag(), "[ERROR] <%s> has no content", STT_TAG_ENGINE_LANGUAGE);