#define MA_METADATA_ASSISTANT_ICON_PATH "http://tizen.org/metadata/multi-assistant/icon_path"
#define MA_METADATA_ASSISTANT_WAKEUP_WORD "http://tizen.org/metadata/multi-assistant/wakeup_word"
#define MA_METADATA_LANGUAGE "http://tizen.org/metadata/multi-assistant/language"
+#define MA_METADATA_ASSISTANT_WAKEUP_ENGINE_APPID "http://tizen.org/metadata/multi-assistant/wakeup_engine_appid"
+#define MA_METADATA_ASSISTANT_WAKEUP_ENGINE_LIB "http://tizen.org/metadata/multi-assistant/wakeup_engine_lib"
/* Define Macro */
{
LOGD("==== Insert wakeup words");
- char* wakeup = NULL;
-
if (NULL == root || NULL == wakeup_word) {
- LOGE("Invalid parameter, root(%p), language(%s)", root, wakeup_word);
+ LOGE("Invalid parameter, root(%p), wakeup_word(%s)", root, wakeup_word);
return;
}
- char *tmp_wakeup, *tmp_free;
- tmp_free = tmp_wakeup = strdup(wakeup_word);
xmlNodePtr wakeups_node = NULL;
xmlNodePtr wakeup_node = NULL;
- wakeups_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_WORD_SET);
+ xmlNodePtr child_node = root->xmlChildrenNode;
+ while(NULL != child_node) {
+ if (0 == xmlStrcmp(child_node->name, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_WORD_SET)) {
+ wakeups_node = child_node;
+ }
+ child_node = child_node->next;
+ }
+ if (NULL == wakeups_node) {
+ wakeups_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_WORD_SET);
+ xmlAddChild(root, wakeups_node);
+ }
+
+ char *tmp_lang, *tmp_wakeup, *tmp_free;
+ tmp_free = tmp_wakeup = strdup(wakeup_word);
+ tmp_lang = strsep(&tmp_wakeup, ":");
+ if (NULL == tmp_wakeup) {
+ tmp_wakeup = tmp_lang;
+ tmp_lang = NULL;
+ }
- wakeup = strsep(&tmp_wakeup, ",");
- while (NULL != wakeup) {
- LOGD("wakeup word (%s)", wakeup);
- wakeup_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_WORD);
- xmlNodeSetContent(wakeup_node, (const xmlChar*)wakeup);
- xmlAddChild(wakeups_node, wakeup_node);
- wakeup = strsep(&tmp_wakeup, ",");
+ LOGD("wakeup word (%s)", tmp_wakeup);
+ wakeup_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_WORD);
+ xmlNodeSetContent(wakeup_node, (const xmlChar*)tmp_wakeup);
+ if (tmp_lang) {
+ xmlNodeSetLang(wakeup_node, (const xmlChar*)tmp_lang);
}
- xmlAddChild(root, wakeups_node);
+ xmlAddChild(wakeups_node, wakeup_node);
FREE(tmp_free)
}
cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_NAME);
xmlNodeSetContent(cur, (const xmlChar*)md->value);
xmlAddChild(root, cur);
+ } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_WAKEUP_ENGINE_APPID, strlen(MA_METADATA_ASSISTANT_WAKEUP_ENGINE_APPID))) {
+ cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_ENGINE_APPID);
+ xmlNodeSetContent(cur, (const xmlChar*)md->value);
+ xmlAddChild(root, cur);
+ } else if (!strncmp(md->key, MA_METADATA_ASSISTANT_WAKEUP_ENGINE_LIB, strlen(MA_METADATA_ASSISTANT_WAKEUP_ENGINE_LIB))) {
+ LOGW("Engine Lib information found : %s", md->value);
} else {
LOGW("[WARNING] Unknown metadata type");
}
iter = g_list_next(iter);
}
- cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_ID);
+ cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_APPID);
xmlNodeSetContent(cur, (const xmlChar*)appid);
xmlAddChild(root, cur);
/**************************************************************************************
*** Definitions for xml file
*************************************************************************************/
-#define MA_TAG_ASSISTANT_BASE "multi-assistant"
-#define MA_TAG_ASSISTANT_NAME "name"
-#define MA_TAG_ASSISTANT_ID "id"
-#define MA_TAG_ASSISTANT_ICON_PATH "icon-path"
-#define MA_TAG_ASSISTANT_LANGUAGE_SET "languages"
-#define MA_TAG_ASSISTANT_LANGUAGE "lang"
-#define MA_TAG_ASSISTANT_WAKEUP_WORD_SET "wakeup-words"
-#define MA_TAG_ASSISTANT_WAKEUP_WORD "wakeup-word"
+#define MA_TAG_ASSISTANT_BASE "multi-assistant"
+#define MA_TAG_ASSISTANT_NAME "name"
+#define MA_TAG_ASSISTANT_APPID "appid"
+#define MA_TAG_ASSISTANT_ICON_PATH "icon-path"
+#define MA_TAG_ASSISTANT_LANGUAGE_SET "languages"
+#define MA_TAG_ASSISTANT_LANGUAGE "language"
+#define MA_TAG_ASSISTANT_WAKEUP_WORD_SET "wakeup-words"
+#define MA_TAG_ASSISTANT_WAKEUP_WORD "wakeup-word"
+#define MA_ATTRIBUTE_ASSISTANT_LANGUAGE "language"
+#define MA_TAG_ASSISTANT_WAKEUP_ENGINE_APPID "wakeup-engine-appid"
/**************************************************************************************
*** Definitions for ETC