2 * Copyright 2020 Samsung Electronics Co., Ltd
4 * Licensed under the Flora License, Version 1.1 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
19 #include "service_common.h"
20 #include "service_ipc_dbus_dispatcher.h"
21 #include "service_main.h"
24 * Dbus Client-Daemon Server
26 int CServiceIpcDbusDispatcher::on_hello(DBusConnection* conn, DBusMessage* msg)
28 MAS_LOGD("[DEBUG] MAS HELLO");
31 reply = dbus_message_new_method_return(msg);
34 if (!dbus_connection_send(conn, reply, NULL)) {
35 MAS_LOGE("[OUT ERROR] Out Of Memory!");
38 dbus_connection_flush(conn);
39 dbus_message_unref(reply);
41 MAS_LOGE("[OUT ERROR] Fail to create reply message!!");
47 int CServiceIpcDbusDispatcher::on_initialize(DBusConnection* conn, DBusMessage* msg)
49 if (nullptr == mIpcObserver) {
50 MAS_LOGE("mIpcObserver variable is NULL");
55 dbus_error_init(&err);
60 if (FALSE == dbus_message_get_args(msg, &err,
61 DBUS_TYPE_INT32, &pid,
63 MAS_LOGE("[ERROR] Failed retrieving arguments");
66 MAS_LOGD("[DEBUG] MAS INITIALIZE");
68 if (dbus_error_is_set(&err)) {
69 MAS_LOGE("[IN ERROR] mas initialize : get arguments error (%s)", err.message);
70 dbus_error_free(&err);
71 ret = -1; //MAS_ERROR_OPERATION_FAILED;
73 MAS_LOGD("[IN] mas initialize : pid(%d)", pid);
74 ret = mIpcObserver->on_initialize(pid);
78 reply = dbus_message_new_method_return(msg);
80 MAS_LOGI("[OUT] mas initialize : result(%d)", ret);
82 dbus_message_append_args(reply,
83 DBUS_TYPE_INT32, &ret,
87 MAS_LOGD("[OUT] mas initialize : result(%d)", ret);
89 MAS_LOGE("[OUT ERROR] mas initialize : result(%d)", ret);
92 if (!dbus_connection_send(conn, reply, NULL)) {
93 MAS_LOGE("[OUT ERROR] mas initialize : Out Of Memory!");
96 dbus_connection_flush(conn);
97 dbus_message_unref(reply);
99 MAS_LOGE("[OUT ERROR] mas initialize : Fail to create reply message!!");
105 int CServiceIpcDbusDispatcher::on_deinitialize(DBusConnection* conn, DBusMessage* msg)
107 if (nullptr == mIpcObserver) {
108 MAS_LOGE("mIpcObserver variable is NULL");
113 dbus_error_init(&err);
118 if (FALSE == dbus_message_get_args(msg, &err,
119 DBUS_TYPE_INT32, &pid,
120 DBUS_TYPE_INVALID)) {
121 MAS_LOGE("[ERROR] Failed retrieving arguments");
124 MAS_LOGD("[DEBUG] MAS DEINITIALIZE");
126 if (dbus_error_is_set(&err)) {
127 MAS_LOGE("[IN ERROR] mas deinitialize : get arguments error (%s)", err.message);
128 dbus_error_free(&err);
129 ret = -1; //MAS_ERROR_OPERATION_FAILED;
131 MAS_LOGD("[IN] mas deinitialize : pid(%d)", pid);
132 ret = mIpcObserver->on_deinitialize(pid);
136 reply = dbus_message_new_method_return(msg);
138 MAS_LOGI("[OUT] mas deinitialize : result(%d)", ret);
140 dbus_message_append_args(reply,
141 DBUS_TYPE_INT32, &ret,
145 MAS_LOGD("[OUT] mas deinitialize : result(%d)", ret);
147 MAS_LOGE("[OUT ERROR] mas deinitialize : result(%d)", ret);
150 if (!dbus_connection_send(conn, reply, NULL)) {
151 MAS_LOGE("[OUT ERROR] mas deinitialize : Out Of Memory!");
154 dbus_connection_flush(conn);
155 dbus_message_unref(reply);
157 MAS_LOGE("[OUT ERROR] mas deinitialize : Fail to create reply message!!");
163 int CServiceIpcDbusDispatcher::on_get_audio_format(DBusConnection* conn, DBusMessage* msg)
165 if (nullptr == mIpcObserver) {
166 MAS_LOGE("mIpcObserver variable is NULL");
171 dbus_error_init(&err);
174 int rate, channel, audio_type;
177 if (FALSE == dbus_message_get_args(msg, &err,
178 DBUS_TYPE_INT32, &pid,
179 DBUS_TYPE_INVALID)) {
180 MAS_LOGE("[ERROR] Failed retrieving arguments");
183 MAS_LOGD("[DEBUG] MAS GET AUDIO FORMAT");
185 if (dbus_error_is_set(&err)) {
186 MAS_LOGE("[IN ERROR] mas get audio format : Get arguments error (%s)", err.message);
187 dbus_error_free(&err);
188 ret = -1; //MAS_ERROR_OPERATION_FAILED;
190 MAS_LOGD("[IN] mas get audio format");
191 ret = mIpcObserver->on_get_audio_format(pid, rate, channel, audio_type);
195 reply = dbus_message_new_method_return(msg);
198 /* Append result and voice */
199 dbus_message_append_args(reply,
200 DBUS_TYPE_INT32, &ret,
201 DBUS_TYPE_INT32, &rate,
202 DBUS_TYPE_INT32, &channel,
203 DBUS_TYPE_INT32, &audio_type,
206 MAS_LOGI("[OUT] mas get audio format : rate(%d), channel(%d), audio_type(%d)", rate, channel, audio_type);
208 MAS_LOGE("[OUT ERROR] mas get audio format : result(%d)", ret);
211 if (!dbus_connection_send(conn, reply, NULL)) {
212 MAS_LOGE("[OUT ERROR] mas get audio format : Out Of Memory!");
215 dbus_connection_flush(conn);
216 dbus_message_unref(reply);
218 MAS_LOGE("[OUT ERROR] tts default voice : Fail to create reply message!!");
224 int CServiceIpcDbusDispatcher::on_get_audio_source_type(DBusConnection* conn, DBusMessage* msg)
226 if (nullptr == mIpcObserver) {
227 MAS_LOGE("mIpcObserver variable is NULL");
232 dbus_error_init(&err);
238 if (FALSE == dbus_message_get_args(msg, &err,
239 DBUS_TYPE_INT32, &pid,
240 DBUS_TYPE_INVALID)) {
241 MAS_LOGE("[ERROR] Failed retrieving arguments");
244 MAS_LOGD("[DEBUG] MAS GET AUDIO SOURCE TYPE");
246 if (dbus_error_is_set(&err)) {
247 MAS_LOGE("[IN ERROR] mas get audio source type : Get arguments error (%s)", err.message);
248 dbus_error_free(&err);
249 ret = -1; //MAS_ERROR_OPERATION_FAILED;
251 MAS_LOGD("[IN] mas get audio source type");
252 ret = mIpcObserver->on_get_audio_source_type(pid, type);
256 reply = dbus_message_new_method_return(msg);
258 char* temp_type = NULL;
261 temp_type = strdup("#NULL");
263 temp_type = strdup(type.c_str());
266 /* Append result and voice */
267 dbus_message_append_args(reply,
268 DBUS_TYPE_INT32, &ret,
269 DBUS_TYPE_STRING, &temp_type,
272 MAS_LOGI("[OUT] mas get audio source type : type(%s)", temp_type);
274 MAS_LOGE("[OUT ERROR] mas get audio source type : result(%d)", ret);
277 if (!dbus_connection_send(conn, reply, NULL)) {
278 MAS_LOGE("[OUT ERROR] mas get audio source type : Out Of Memory!");
281 dbus_connection_flush(conn);
282 dbus_message_unref(reply);
284 MAS_LOGE("[OUT ERROR] mas get audio source type : Fail to create reply message!!");
293 int CServiceIpcDbusDispatcher::on_send_asr_result(DBusConnection* conn, DBusMessage* msg)
295 if (nullptr == mIpcObserver) {
296 MAS_LOGE("mIpcObserver variable is NULL");
301 dbus_error_init(&err);
307 if (FALSE == dbus_message_get_args(msg, &err,
308 DBUS_TYPE_INT32, &pid,
309 DBUS_TYPE_INT32, &event,
310 DBUS_TYPE_STRING, &asr_result,
311 DBUS_TYPE_INVALID)) {
312 MAS_LOGE("[ERROR] Failed retrieving arguments");
315 MAS_LOGD("[DEBUG] MAS SEND ASR RESULT");
317 if (dbus_error_is_set(&err)) {
318 MAS_LOGE("[IN ERROR] mas send asr result : Get arguments error (%s)", err.message);
319 dbus_error_free(&err);
320 ret = -1; //MAS_ERROR_OPERATION_FAILED;
322 MAS_LOGI("[IN] mas send asr result : pid(%d), event(%d), asr_result(%s)", pid, event, asr_result);
323 ret = mIpcObserver->on_send_asr_result(pid, event,
324 asr_result ? std::string{asr_result} : std::string{});
328 reply = dbus_message_new_method_return(msg);
331 dbus_message_append_args(reply,
332 DBUS_TYPE_INT32, &ret,
336 MAS_LOGD("[OUT] mas send asr result : result(%d)", ret);
338 MAS_LOGE("[OUT ERROR] mas send asr result : result(%d)", ret);
341 if (!dbus_connection_send(conn, reply, NULL)) {
342 MAS_LOGE("[OUT ERROR] mas send asr result : Out Of Memory!");
345 dbus_connection_flush(conn);
346 dbus_message_unref(reply);
348 MAS_LOGE("[OUT ERROR] mas send asr result : Fail to create reply message!!");
357 int CServiceIpcDbusDispatcher::on_send_result(DBusConnection* conn, DBusMessage* msg)
359 if (nullptr == mIpcObserver) {
360 MAS_LOGE("mIpcObserver variable is NULL");
365 dbus_error_init(&err);
369 char* utterance_text;
373 if (FALSE == dbus_message_get_args(msg, &err,
374 DBUS_TYPE_INT32, &pid,
375 DBUS_TYPE_STRING, &display_text,
376 DBUS_TYPE_STRING, &utterance_text,
377 DBUS_TYPE_STRING, &result_json,
378 DBUS_TYPE_INVALID)) {
379 MAS_LOGE("[ERROR] Failed retrieving arguments");
382 MAS_LOGD("[DEBUG] MAS SEND RESULT");
384 if (dbus_error_is_set(&err)) {
385 MAS_LOGE("[IN ERROR] mas send result : Get arguments error (%s)", err.message);
386 dbus_error_free(&err);
387 ret = -1; //MAS_ERROR_OPERATION_FAILED;
389 MAS_LOGI("[IN] mas send result : pid(%d), display_text(%s), utterance_text(%s), result_json(%s)", pid, display_text, utterance_text, result_json);
390 ret = mIpcObserver->on_send_result(pid,
391 display_text ? std::string{display_text} : std::string{},
392 utterance_text ? std::string{utterance_text} : std::string{},
393 result_json ? std::string{result_json} : std::string{});
397 reply = dbus_message_new_method_return(msg);
400 dbus_message_append_args(reply,
401 DBUS_TYPE_INT32, &ret,
405 MAS_LOGD("[OUT] mas send result : result(%d)", ret);
407 MAS_LOGE("[OUT ERROR] mas send result : result(%d)", ret);
410 if (!dbus_connection_send(conn, reply, NULL)) {
411 MAS_LOGE("[OUT ERROR] mas send result : Out Of Memory!");
414 dbus_connection_flush(conn);
415 dbus_message_unref(reply);
417 MAS_LOGE("[OUT ERROR] mas send result : Fail to create reply message!!");
426 int CServiceIpcDbusDispatcher::on_send_recognition_result(DBusConnection* conn, DBusMessage* msg)
428 if (nullptr == mIpcObserver) {
429 MAS_LOGE("mIpcObserver variable is NULL");
434 dbus_error_init(&err);
440 if (FALSE == dbus_message_get_args(msg, &err,
441 DBUS_TYPE_INT32, &pid,
442 DBUS_TYPE_INT32, &result,
443 DBUS_TYPE_INVALID)) {
444 MAS_LOGE("[ERROR] Failed retrieving arguments");
447 MAS_LOGD("[DEBUG] MAS SEND RECOGNITION RESULT");
449 if (dbus_error_is_set(&err)) {
450 MAS_LOGE("[IN ERROR] mas send recognition result : Get arguments error (%s)", err.message);
451 dbus_error_free(&err);
452 ret = -1; //MAS_ERROR_OPERATION_FAILED;
454 MAS_LOGI("[IN] mas send recognition result : pid(%d), result(%d)", pid, result);
455 ret = mIpcObserver->on_send_recognition_result(pid, result);
464 int CServiceIpcDbusDispatcher::on_start_streaming_audio_data(DBusConnection* conn, DBusMessage* msg)
466 if (nullptr == mIpcObserver) {
467 MAS_LOGE("mIpcObserver variable is NULL");
472 dbus_error_init(&err);
478 if (FALSE == dbus_message_get_args(msg, &err,
479 DBUS_TYPE_INT32, &pid,
480 DBUS_TYPE_INT32, &type,
481 DBUS_TYPE_INVALID)) {
482 MAS_LOGE("[ERROR] Failed retrieving arguments");
485 MAS_LOGD("[DEBUG] MAS SEND START STREAMING");
487 if (dbus_error_is_set(&err)) {
488 MAS_LOGE("[IN ERROR] mas send start streaming : Get arguments error (%s)", err.message);
489 dbus_error_free(&err);
490 ret = -1; //MAS_ERROR_OPERATION_FAILED;
492 MAS_LOGI("[IN] mas send start streaming : pid(%d), type(%d)", pid, type);
493 ret = mIpcObserver->on_start_streaming_audio_data(pid, type);
502 int CServiceIpcDbusDispatcher::on_stop_streaming_audio_data(DBusConnection* conn, DBusMessage* msg)
504 if (nullptr == mIpcObserver) {
505 MAS_LOGE("mIpcObserver variable is NULL");
510 dbus_error_init(&err);
516 if (FALSE == dbus_message_get_args(msg, &err,
517 DBUS_TYPE_INT32, &pid,
518 DBUS_TYPE_INT32, &type,
519 DBUS_TYPE_INVALID)) {
520 MAS_LOGE("[ERROR] Failed retrieving arguments");
523 MAS_LOGD("[DEBUG] MAS SEND STOP STREAMING");
525 if (dbus_error_is_set(&err)) {
526 MAS_LOGE("[IN ERROR] mas stop streaming : Get arguments error (%s)", err.message);
527 dbus_error_free(&err);
528 ret = -1; //MAS_ERROR_OPERATION_FAILED;
530 MAS_LOGI("[IN] mas stop streaming : pid(%d), type(%d)", pid, type);
531 ret = mIpcObserver->on_stop_streaming_audio_data(pid, type);
540 int CServiceIpcDbusDispatcher::on_update_voice_feedback_state(DBusConnection* conn, DBusMessage* msg)
542 if (nullptr == mIpcObserver) {
543 MAS_LOGE("mIpcObserver variable is NULL");
548 dbus_error_init(&err);
554 if (FALSE == dbus_message_get_args(msg, &err,
555 DBUS_TYPE_INT32, &pid,
556 DBUS_TYPE_INT32, &state,
557 DBUS_TYPE_INVALID)) {
558 MAS_LOGE("[ERROR] Failed retrieving arguments");
561 MAS_LOGD("[DEBUG] MAS SEND UPDATE VOICE FEEDBACK");
563 if (dbus_error_is_set(&err)) {
564 MAS_LOGE("[IN ERROR] mas update voice feedback : Get arguments error (%s)", err.message);
565 dbus_error_free(&err);
566 ret = -1; //MAS_ERROR_OPERATION_FAILED;
568 MAS_LOGI("[IN] mas update voice feedback : pid(%d), state(%d)", pid, state);
569 ret = mIpcObserver->on_update_voice_feedback_state(pid, state);
578 int CServiceIpcDbusDispatcher::on_send_assistant_specific_command(DBusConnection* conn, DBusMessage* msg)
580 if (nullptr == mIpcObserver) {
581 MAS_LOGE("mIpcObserver variable is NULL");
586 dbus_error_init(&err);
592 if (FALSE == dbus_message_get_args(msg, &err,
593 DBUS_TYPE_INT32, &pid,
594 DBUS_TYPE_STRING, &command,
595 DBUS_TYPE_INVALID)) {
596 MAS_LOGE("[ERROR] Failed retrieving arguments");
599 MAS_LOGD("[DEBUG] MAS SEND ASSISTANT SPECIFIC COMMAND");
601 if (dbus_error_is_set(&err)) {
602 MAS_LOGE("[IN ERROR] mas send assistant specific command : Get arguments error (%s)", err.message);
603 dbus_error_free(&err);
604 ret = -1; //MAS_ERROR_OPERATION_FAILED;
606 MAS_LOGI("[IN] mas send assistant specific command : pid(%d), command(%s)", pid, command);
607 ret = mIpcObserver->on_send_assistant_specific_command(pid,
608 command ? std::string{command} : std::string{});
617 int CServiceIpcDbusDispatcher::on_set_background_volume(DBusConnection* conn, DBusMessage* msg)
619 if (nullptr == mIpcObserver) {
620 MAS_LOGE("mIpcObserver variable is NULL");
625 dbus_error_init(&err);
631 if (FALSE == dbus_message_get_args(msg, &err,
632 DBUS_TYPE_INT32, &pid,
633 DBUS_TYPE_DOUBLE, &ratio,
634 DBUS_TYPE_INVALID)) {
635 MAS_LOGE("[ERROR] Failed retrieving arguments");
638 MAS_LOGD("[DEBUG] MAS SET BACKGROUND VOLUME");
640 if (dbus_error_is_set(&err)) {
641 MAS_LOGE("[IN ERROR] mas set background volume : Get arguments error (%s)", err.message);
642 dbus_error_free(&err);
643 ret = -1; //MAS_ERROR_OPERATION_FAILED;
645 MAS_LOGI("[IN] mas set background volume : pid(%d), ratio(%f)", pid, ratio);
646 ret = mIpcObserver->on_set_background_volume(pid, ratio);
655 int CServiceIpcDbusDispatcher::on_set_preprocessing_allow_mode(DBusConnection* conn, DBusMessage* msg)
657 if (nullptr == mIpcObserver) {
658 MAS_LOGE("mIpcObserver variable is NULL");
663 dbus_error_init(&err);
670 if (FALSE == dbus_message_get_args(msg, &err,
671 DBUS_TYPE_INT32, &pid,
672 DBUS_TYPE_INT32, &mode,
673 DBUS_TYPE_STRING, &app_id,
674 DBUS_TYPE_INVALID)) {
675 MAS_LOGE("[ERROR] Failed retrieving arguments");
678 MAS_LOGD("[DEBUG] MAS SET PREPROCESSING ALLOW MODE");
680 if (dbus_error_is_set(&err)) {
681 MAS_LOGE("[IN ERROR] mas set preprocessing allow mode : Get arguments error (%s)", err.message);
682 dbus_error_free(&err);
683 ret = -1; //MAS_ERROR_OPERATION_FAILED;
685 MAS_LOGI("[IN] mas set preprocessing allow mode : pid(%d), mode(%d), app_id(%s)", pid, mode, app_id);
686 ret = mIpcObserver->on_set_preprocessing_allow_mode(pid,
687 static_cast<ma_preprocessing_allow_mode_e>(mode),
688 app_id ? std::string{app_id} : std::string{});
697 int CServiceIpcDbusDispatcher::on_send_preprocessing_result(DBusConnection* conn, DBusMessage* msg)
699 if (nullptr == mIpcObserver) {
700 MAS_LOGE("mIpcObserver variable is NULL");
705 dbus_error_init(&err);
711 if (FALSE == dbus_message_get_args(msg, &err,
712 DBUS_TYPE_INT32, &pid,
713 DBUS_TYPE_INT32, &result,
714 DBUS_TYPE_INVALID)) {
715 MAS_LOGE("[ERROR] Failed retrieving arguments");
718 MAS_LOGD("[DEBUG] MAS SEND PREPROCESSING RESULT");
720 if (dbus_error_is_set(&err)) {
721 MAS_LOGE("[IN ERROR] mas send preprocessing result : Get arguments error (%s)", err.message);
722 dbus_error_free(&err);
723 ret = -1; //MAS_ERROR_OPERATION_FAILED;
725 MAS_LOGI("[IN] mas send preprocessing result : pid(%d), result(%d)", pid, result);
726 ret = mIpcObserver->on_send_preprocessing_result(pid, result);
735 int CServiceIpcDbusDispatcher::on_set_wake_word_audio_require_flag(DBusConnection* conn, DBusMessage* msg)
737 if (nullptr == mIpcObserver) {
738 MAS_LOGE("mIpcObserver variable is NULL");
743 dbus_error_init(&err);
749 if (FALSE == dbus_message_get_args(msg, &err,
750 DBUS_TYPE_INT32, &pid,
751 DBUS_TYPE_INT32, &require,
752 DBUS_TYPE_INVALID)) {
753 MAS_LOGE("[ERROR] Failed retrieving arguments");
756 MAS_LOGD("[DEBUG] MAS SET WAKE WORD AUDIO REQUIRE FLAG");
758 if (dbus_error_is_set(&err)) {
759 MAS_LOGE("[IN ERROR] mas set wake word audio require flag : Get arguments error (%s)", err.message);
760 dbus_error_free(&err);
761 ret = -1; //MAS_ERROR_OPERATION_FAILED;
763 MAS_LOGI("[IN] mas set wake word audio require flag : pid(%d), require(%d)", pid, require);
764 ret = mIpcObserver->on_set_wake_word_audio_require_flag(pid, require);
773 int CServiceIpcDbusDispatcher::on_set_assistant_language(DBusConnection* conn, DBusMessage* msg)
775 if (nullptr == mIpcObserver) {
776 MAS_LOGE("mIpcObserver variable is NULL");
781 dbus_error_init(&err);
787 if (FALSE == dbus_message_get_args(msg, &err,
788 DBUS_TYPE_INT32, &pid,
789 DBUS_TYPE_STRING, &language,
790 DBUS_TYPE_INVALID)) {
791 MAS_LOGE("[ERROR] Failed retrieving arguments");
794 MAS_LOGD("[DEBUG] MAS SET ASSISTANT LANGUAGE");
796 if (dbus_error_is_set(&err)) {
797 MAS_LOGE("[IN ERROR] mas set assistant language : Get arguments error (%s)", err.message);
798 dbus_error_free(&err);
799 ret = -1; //MAS_ERROR_OPERATION_FAILED;
801 MAS_LOGI("[IN] mas set assistant language : pid(%d), language(%s)", pid, language);
802 ret = mIpcObserver->on_set_assistant_language(pid,
803 language ? std::string{language} : std::string{});
812 int CServiceIpcDbusDispatcher::on_add_wake_word(DBusConnection* conn, DBusMessage* msg)
814 if (nullptr == mIpcObserver) {
815 MAS_LOGE("mIpcObserver variable is NULL");
820 dbus_error_init(&err);
827 if (FALSE == dbus_message_get_args(msg, &err,
828 DBUS_TYPE_INT32, &pid,
829 DBUS_TYPE_STRING, &wake_word,
830 DBUS_TYPE_STRING, &language,
831 DBUS_TYPE_INVALID)) {
832 MAS_LOGE("[ERROR] Failed retrieving arguments");
835 MAS_LOGD("[DEBUG] MAS ADD WAKE WORD");
837 if (dbus_error_is_set(&err)) {
838 MAS_LOGE("[IN ERROR] mas add wake word : Get arguments error (%s)", err.message);
839 dbus_error_free(&err);
840 ret = -1; //MAS_ERROR_OPERATION_FAILED;
842 MAS_LOGI("[IN] mas add wake word : pid(%d), wake_word(%s) language(%s)", pid, wake_word, language);
843 ret = mIpcObserver->on_add_wake_word(pid,
844 wake_word ? std::string{wake_word} : std::string{},
845 language ? std::string{language} : std::string{});
854 int CServiceIpcDbusDispatcher::on_remove_wake_word(DBusConnection* conn, DBusMessage* msg)
856 if (nullptr == mIpcObserver) {
857 MAS_LOGE("mIpcObserver variable is NULL");
862 dbus_error_init(&err);
869 if (FALSE == dbus_message_get_args(msg, &err,
870 DBUS_TYPE_INT32, &pid,
871 DBUS_TYPE_STRING, &wake_word,
872 DBUS_TYPE_STRING, &language,
873 DBUS_TYPE_INVALID)) {
874 MAS_LOGE("[ERROR] Failed retrieving arguments");
877 MAS_LOGD("[DEBUG] MAS REMOVE WAKE WORD");
879 if (dbus_error_is_set(&err)) {
880 MAS_LOGE("[IN ERROR] mas remove wake word : Get arguments error (%s)", err.message);
881 dbus_error_free(&err);
882 ret = -1; //MAS_ERROR_OPERATION_FAILED;
884 MAS_LOGI("[IN] mas remove wake word : pid(%d), wake_word(%s) language(%s)", pid, wake_word, language);
885 ret = mIpcObserver->on_remove_wake_word(pid,
886 wake_word ? std::string{wake_word} : std::string{},
887 language ? std::string{language} : std::string{});
896 int CServiceIpcDbusDispatcher::on_ui_initialize(DBusConnection* conn, DBusMessage* msg)
898 if (nullptr == mIpcObserver) {
899 MAS_LOGE("mIpcObserver variable is NULL");
904 dbus_error_init(&err);
909 if (FALSE == dbus_message_get_args(msg, &err,
910 DBUS_TYPE_INT32, &pid,
911 DBUS_TYPE_INVALID)) {
912 MAS_LOGE("[ERROR] Failed retrieving arguments");
915 MAS_LOGD("[DEBUG] MAS UI INITIALIZE");
917 if (dbus_error_is_set(&err)) {
918 MAS_LOGE("[IN ERROR] mas ui initialize : get arguments error (%s)", err.message);
919 dbus_error_free(&err);
920 ret = -1; //MAS_ERROR_OPERATION_FAILED;
922 MAS_LOGD("[IN] mas ui initialize : pid(%d)", pid);
923 ret = mIpcObserver->on_ui_initialize(pid);
927 reply = dbus_message_new_method_return(msg);
929 MAS_LOGD("[OUT] mas ui initialize : result(%d)", ret);
931 dbus_message_append_args(reply,
932 DBUS_TYPE_INT32, &ret,
936 MAS_LOGD("[OUT] mas ui initialize : result(%d)", ret);
938 MAS_LOGE("[OUT ERROR] mas ui initialize : result(%d)", ret);
941 if (!dbus_connection_send(conn, reply, NULL)) {
942 MAS_LOGE("[OUT ERROR] mas ui initialize : Out Of Memory!");
945 dbus_connection_flush(conn);
946 dbus_message_unref(reply);
948 MAS_LOGE("[OUT ERROR] mas ui initialize : Fail to create reply message!!");
954 int CServiceIpcDbusDispatcher::on_ui_deinitialize(DBusConnection* conn, DBusMessage* msg)
956 if (nullptr == mIpcObserver) {
957 MAS_LOGE("mIpcObserver variable is NULL");
962 dbus_error_init(&err);
967 if (FALSE == dbus_message_get_args(msg, &err,
968 DBUS_TYPE_INT32, &pid,
969 DBUS_TYPE_INVALID)) {
970 MAS_LOGE("[ERROR] Failed retrieving arguments");
973 MAS_LOGD("[DEBUG] MAS UI DEINITIALIZE");
975 if (dbus_error_is_set(&err)) {
976 MAS_LOGE("[IN ERROR] mas ui deinitialize : get arguments error (%s)", err.message);
977 dbus_error_free(&err);
978 ret = -1; //MAS_ERROR_OPERATION_FAILED;
980 MAS_LOGD("[IN] mas ui deinitialize : pid(%d)", pid);
981 ret = mIpcObserver->on_ui_deinitialize(pid);
985 reply = dbus_message_new_method_return(msg);
987 MAS_LOGD("[OUT] mas ui deinitialize : result(%d)", ret);
989 dbus_message_append_args(reply,
990 DBUS_TYPE_INT32, &ret,
994 MAS_LOGD("[OUT] mas ui deinitialize : result(%d)", ret);
996 MAS_LOGE("[OUT ERROR] mas ui deinitialize : result(%d)", ret);
999 if (!dbus_connection_send(conn, reply, NULL)) {
1000 MAS_LOGE("[OUT ERROR] mas ui deinitialize : Out Of Memory!");
1003 dbus_connection_flush(conn);
1004 dbus_message_unref(reply);
1006 MAS_LOGE("[OUT ERROR] mas ui deinitialize : Fail to create reply message!!");
1012 int CServiceIpcDbusDispatcher::on_ui_change_assistant(DBusConnection* conn, DBusMessage* msg)
1014 if (nullptr == mIpcObserver) {
1015 MAS_LOGE("mIpcObserver variable is NULL");
1020 dbus_error_init(&err);
1025 if (FALSE == dbus_message_get_args(msg, &err,
1026 DBUS_TYPE_STRING, &app_id,
1027 DBUS_TYPE_INVALID)) {
1028 MAS_LOGE("[ERROR] Failed retrieving arguments");
1031 MAS_LOGD("[DEBUG] MAS UI CHANGE ASSISTANT : %s", (app_id ? app_id : "NULL"));
1033 if (dbus_error_is_set(&err)) {
1034 MAS_LOGE("[IN ERROR] mas ui change assisant : Get arguments error (%s)", err.message);
1035 dbus_error_free(&err);
1036 ret = -1; //MAS_ERROR_OPERATION_FAILED;
1038 MAS_LOGD("[IN] mas ui change assisant : app_id(%s)", app_id);
1039 ret = mIpcObserver->on_ui_change_assistant(
1040 app_id ? std::string{app_id} : std::string{});
1044 reply = dbus_message_new_method_return(msg);
1046 if (NULL != reply) {
1047 dbus_message_append_args(reply,
1048 DBUS_TYPE_INT32, &ret,
1052 MAS_LOGD("[OUT] mas ui change assisant : result(%d)", ret);
1054 MAS_LOGE("[OUT ERROR] mas ui change assisant : result(%d)", ret);
1057 if (!dbus_connection_send(conn, reply, NULL)) {
1058 MAS_LOGE("[OUT ERROR] mas ui change assisant : Out Of Memory!");
1061 dbus_connection_flush(conn);
1062 dbus_message_unref(reply);
1064 MAS_LOGE("[OUT ERROR] mas ui change assisant : Fail to create reply message!!");