FREE(tmp_free)
}
+static void __insert_wakeup_engine_from_metadata(xmlNodePtr root, const char *wakeup_engine)
+{
+ LOGD("==== Insert wakeup engines");
+
+ if (NULL == root || NULL == wakeup_engine) {
+ LOGE("Invalid parameter, root(%p), wakeup_engine(%s)", root, wakeup_engine);
+ return;
+ }
+
+ char *tmp_wakeup_engine, *tmp_free;
+ tmp_free = tmp_wakeup_engine = strdup(wakeup_engine);
+ xmlNodePtr wakeup_engines_node = NULL;
+ xmlNodePtr wakeup_engine_node = NULL;
+
+ char* engine = NULL;
+ wakeup_engines_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_ENGINE_SET);
+ if (wakeup_engines_node) {
+ engine = strsep(&tmp_wakeup_engine, ",");
+ while (NULL != engine) {
+ LOGD("engine (%s)", engine);
+ wakeup_engine_node = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_WAKEUP_ENGINE_APPID);
+ if (wakeup_engine_node) {
+ xmlNodeSetContent(wakeup_engine_node, (const xmlChar*)engine);
+ xmlAddChild(wakeup_engines_node, wakeup_engine_node);
+ }
+ engine = strsep(&tmp_wakeup_engine, ",");
+ }
+ xmlAddChild(root, wakeup_engines_node);
+ }
+
+ FREE(tmp_free)
+}
+
+
static int __write_metadata_inxml(const char *pkgid, const char *appid, GList *list)
{
GList *iter = NULL;
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);
- if (cur) {
- xmlNodeSetContent(cur, (const xmlChar*)md->value);
- xmlAddChild(root, cur);
- }
+ __insert_wakeup_engine_from_metadata(root, md->value);
} else if (!strncmp(md->key, MA_METADATA_ASSISTANT_CUSTOM_UI, strlen(MA_METADATA_ASSISTANT_CUSTOM_UI))) {
cur = xmlNewNode(NULL, (const xmlChar*)MA_TAG_ASSISTANT_CUSTOM_UI);
if (cur) {
#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_TAG_ASSISTANT_WAKEUP_ENGINE_SET "wakeup-engines"
#define MA_TAG_ASSISTANT_WAKEUP_ENGINE_APPID "wakeup-engine-appid"
#define MA_TAG_ASSISTANT_CUSTOM_UI "custom-ui"
#define MA_TAG_ASSISTANT_VOICE_KEY_SUPPORT_MODE "voice-key-support-mode"