return 0;
}
- }
+
+int ma_dbus_add_wake_word(int pid, const char* wake_word, const char* language)
+{
+ if (0 != __dbus_check()) {
+ return MA_ERROR_OPERATION_FAILED;
+ }
+
+ DBusMessage* msg;
+
+ msg = dbus_message_new_method_call(
+ MA_SERVER_SERVICE_NAME,
+ MA_SERVER_SERVICE_OBJECT_PATH,
+ MA_SERVER_SERVICE_INTERFACE,
+ MA_METHOD_ADD_WAKE_WORD);
+
+ if (NULL == msg) {
+ MA_SLOGE("@@ Request multi-assistant add wake word : Fail to make message"); //LCOV_EXCL_LINE
+ return MA_ERROR_OPERATION_FAILED;
+ } else {
+ MA_SLOGD("[DEBUG] multi-assistant add wake word");
+ }
+
+ char* tmp_wake_word = NULL;
+ if (NULL != wake_word) {
+ tmp_wake_word = strdup(wake_word);
+ } else {
+ tmp_wake_word = strdup("#NULL");
+ }
+
+ char* tmp_language = NULL;
+ if (NULL != language) {
+ tmp_language = strdup(language);
+ } else {
+ tmp_language = strdup("#NULL");
+ }
+
+ dbus_message_append_args(msg,
+ DBUS_TYPE_INT32, &pid,
+ DBUS_TYPE_STRING, &tmp_wake_word,
+ DBUS_TYPE_STRING, &tmp_language,
+ DBUS_TYPE_INVALID);
+
+ dbus_message_set_no_reply(msg, TRUE);
+
+ DBusError error;
+ dbus_error_init (&error);
+ if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
+ if (dbus_error_is_set (&error)) {
+ MA_SLOGE("[Dbus ERROR] Fail to Send : %s", error.message); //LCOV_EXCL_LINE
+ dbus_error_free (&error);
+ } else {
+ MA_SLOGE("[Dbus ERROR] Fail to Send"); //LCOV_EXCL_LINE
+ }
+ if (NULL != tmp_wake_word) {
+ free(tmp_wake_word);
+ tmp_wake_word = NULL;
+ }
+ if (NULL != tmp_language) {
+ free(tmp_language);
+ tmp_language = NULL;
+ }
+ return MA_ERROR_OPERATION_FAILED;
+ } else {
+ MA_SLOGD("[Dbus DEBUG] Success to Send");
+ dbus_connection_flush(g_conn_sender);
+ }
+
+ if (NULL != tmp_wake_word) {
+ free(tmp_wake_word);
+ tmp_wake_word = NULL;
+ }
+ if (NULL != tmp_language) {
+ free(tmp_language);
+ tmp_language = NULL;
+ }
+
+ dbus_message_unref(msg);
+
+ return 0;
+}
+
+int ma_dbus_remove_wake_word(int pid, const char* wake_word, const char* language)
+{
+ if (0 != __dbus_check()) {
+ return MA_ERROR_OPERATION_FAILED;
+ }
+
+ DBusMessage* msg;
+
+ msg = dbus_message_new_method_call(
+ MA_SERVER_SERVICE_NAME,
+ MA_SERVER_SERVICE_OBJECT_PATH,
+ MA_SERVER_SERVICE_INTERFACE,
+ MA_METHOD_REMOVE_WAKE_WORD);
+
+ if (NULL == msg) {
+ MA_SLOGE("@@ Request multi-assistant remove wake word : Fail to make message"); //LCOV_EXCL_LINE
+ return MA_ERROR_OPERATION_FAILED;
+ } else {
+ MA_SLOGD("[DEBUG] multi-assistant remove wake word");
+ }
+
+ char* tmp_wake_word = NULL;
+ if (NULL != wake_word) {
+ tmp_wake_word = strdup(wake_word);
+ } else {
+ tmp_wake_word = strdup("#NULL");
+ }
+
+ char* tmp_language = NULL;
+ if (NULL != language) {
+ tmp_language = strdup(language);
+ } else {
+ tmp_language = strdup("#NULL");
+ }
+
+ dbus_message_append_args(msg,
+ DBUS_TYPE_INT32, &pid,
+ DBUS_TYPE_STRING, &tmp_wake_word,
+ DBUS_TYPE_STRING, &tmp_language,
+ DBUS_TYPE_INVALID);
+
+ dbus_message_set_no_reply(msg, TRUE);
+
+ DBusError error;
+ dbus_error_init (&error);
+ if (!dbus_connection_send(g_conn_sender, msg, NULL)) {
+ if (dbus_error_is_set (&error)) {
+ MA_SLOGE("[Dbus ERROR] Fail to Send : %s", error.message); //LCOV_EXCL_LINE
+ dbus_error_free (&error);
+ } else {
+ MA_SLOGE("[Dbus ERROR] Fail to Send"); //LCOV_EXCL_LINE
+ }
+ if (NULL != tmp_wake_word) {
+ free(tmp_wake_word);
+ tmp_wake_word = NULL;
+ }
+ if (NULL != tmp_language) {
+ free(tmp_language);
+ tmp_language = NULL;
+ }
+ return MA_ERROR_OPERATION_FAILED;
+ } else {
+ MA_SLOGD("[Dbus DEBUG] Success to Send");
+ dbus_connection_flush(g_conn_sender);
+ }
+
+ if (NULL != tmp_wake_word) {
+ free(tmp_wake_word);
+ tmp_wake_word = NULL;
+ }
+ if (NULL != tmp_language) {
+ free(tmp_language);
+ tmp_language = NULL;
+ }
+
+ dbus_message_unref(msg);
+
+ return 0;
++}