2 * Copyright (c) 2011-2016 Samsung Electronics Co., Ltd All Rights Reserved
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 * http://www.apache.org/licenses/LICENSE-2.0
7 * Unless required by applicable law or agreed to in writing, software
8 * distributed under the License is distributed on an "AS IS" BASIS,
9 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
10 * See the License for the specific language governing permissions and
11 * limitations under the License.
15 #include "sttd_main.h"
16 #include "sttd_dbus.h"
17 #include "sttd_dbus_server.h"
18 #include "sttd_server.h"
19 #include "sttd_client_data.h"
23 * Dbus Client-Daemon Server
26 static void __sttd_dbus_server_dbus_connection_send(DBusConnection* conn, DBusMessage* reply)
28 if (!dbus_connection_send(conn, reply, NULL)) {
29 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
32 dbus_connection_flush(conn);
33 dbus_message_unref(reply);
37 int sttd_dbus_server_hello(DBusConnection* conn, DBusMessage* msg)
39 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Hello");
42 reply = dbus_message_new_method_return(msg);
44 __sttd_dbus_server_dbus_connection_send(conn, reply);
46 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
49 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
53 int sttd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
56 dbus_error_init(&err);
60 bool silence_supported = false;
61 bool credential_needed = false;
63 int ret = STTD_ERROR_OPERATION_FAILED;
65 dbus_message_get_args(msg, &err,
66 DBUS_TYPE_INT32, &pid,
67 DBUS_TYPE_UINT32, &uid,
70 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Initialize");
72 if (dbus_error_is_set(&err)) {
73 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt initialize : get arguments error (%s)", err.message);
74 dbus_error_free(&err);
75 ret = STTD_ERROR_OPERATION_FAILED;
77 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt initialize : pid(%d), uid(%u)", pid , uid);
78 ret = sttd_server_initialize(pid, uid, &silence_supported, &credential_needed);
82 reply = dbus_message_new_method_return(msg);
85 int int_silence_supported = (int)silence_supported;
86 int int_credential_needed = (int)credential_needed;
88 dbus_message_append_args(reply,
89 DBUS_TYPE_INT32, &ret,
90 DBUS_TYPE_INT32, &int_silence_supported,
91 DBUS_TYPE_INT32, &int_credential_needed,
96 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
97 ret, silence_supported, credential_needed);
99 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
102 __sttd_dbus_server_dbus_connection_send(conn, reply);
104 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
107 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
111 static void __sttd_dbus_server_send_method_return(DBusConnection* conn, DBusMessage* msg, int ret)
114 reply = dbus_message_new_method_return(msg);
117 /* Append result and language */
118 dbus_message_append_args(reply,
119 DBUS_TYPE_INT32, &ret,
123 SLOG(LOG_INFO, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
125 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
128 __sttd_dbus_server_dbus_connection_send(conn, reply);
130 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
135 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
138 dbus_error_init(&err);
141 int ret = STTD_ERROR_OPERATION_FAILED;
142 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
144 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
146 if (dbus_error_is_set(&err)) {
147 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
148 dbus_error_free(&err);
149 ret = STTD_ERROR_OPERATION_FAILED;
151 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%u)", uid);
152 ret = sttd_server_finalize(uid);
155 __sttd_dbus_server_send_method_return(conn, msg, ret);
157 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
161 int sttd_dbus_server_get_support_engines(DBusConnection* conn, DBusMessage* msg)
164 dbus_error_init(&err);
167 int ret = STTD_ERROR_OPERATION_FAILED;
168 GSList* engine_list = NULL;
170 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
172 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported engines");
174 if (dbus_error_is_set(&err)) {
175 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported engines : get arguments error (%s)", err.message);
176 dbus_error_free(&err);
177 ret = STTD_ERROR_OPERATION_FAILED;
179 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported engines : uid(%u)", uid);
180 ret = sttd_server_get_supported_engines(uid, &engine_list);
184 reply = dbus_message_new_method_return(msg);
187 DBusMessageIter args;
189 dbus_message_iter_init_append(reply, &args);
192 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
196 int size = g_slist_length(engine_list);
197 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
198 ret = STTD_ERROR_OPERATION_FAILED;
203 iter = g_slist_nth(engine_list, 0);
205 while (NULL != iter) {
208 if (NULL != engine) {
209 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
210 SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
211 engine->engine_id, engine->engine_name, engine->ug_name);
213 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id));
214 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name));
215 /* dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name)); */
217 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
220 if (NULL != engine->engine_id) {
221 free(engine->engine_id);
222 engine->engine_id = NULL;
224 if (NULL != engine->engine_name) {
225 free(engine->engine_name);
226 engine->engine_name = NULL;
228 if (NULL != engine->ug_name) {
229 free(engine->ug_name);
230 engine->ug_name = NULL;
236 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
239 engine_list = g_slist_remove_link(engine_list, iter);
241 iter = g_slist_nth(engine_list, 0);
244 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
246 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
249 __sttd_dbus_server_dbus_connection_send(conn, reply);
251 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
254 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
258 int sttd_dbus_server_set_current_engine(DBusConnection* conn, DBusMessage* msg)
261 dbus_error_init(&err);
265 bool silence_supported = false;
266 bool credential_needed = false;
267 int ret = STTD_ERROR_OPERATION_FAILED;
269 dbus_message_get_args(msg, &err,
270 DBUS_TYPE_UINT32, &uid,
271 DBUS_TYPE_STRING, &engine_id,
274 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set current engine");
276 if (dbus_error_is_set(&err)) {
277 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set current engine : get arguments error (%s)", err.message);
278 dbus_error_free(&err);
279 ret = STTD_ERROR_OPERATION_FAILED;
281 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set current engine : uid(%u), engine_id(%s)", uid, (NULL == engine_id) ? "NULL" : engine_id);
282 ret = sttd_server_set_current_engine(uid, engine_id, &silence_supported, &credential_needed);
286 reply = dbus_message_new_method_return(msg);
289 int int_silence_supported = (int)silence_supported;
290 int int_credential_needed = (int)credential_needed;
292 dbus_message_append_args(reply,
293 DBUS_TYPE_INT32, &ret,
294 DBUS_TYPE_INT32, &int_silence_supported,
295 DBUS_TYPE_INT32, &int_credential_needed,
299 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
300 ret, silence_supported, credential_needed);
302 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
305 __sttd_dbus_server_dbus_connection_send(conn, reply);
307 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
310 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
314 int sttd_dbus_server_get_current_engine(DBusConnection* conn, DBusMessage* msg)
317 dbus_error_init(&err);
321 int ret = STTD_ERROR_OPERATION_FAILED;
323 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
325 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get current engine");
327 if (dbus_error_is_set(&err)) {
328 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get current engine : get arguments error (%s)", err.message);
329 dbus_error_free(&err);
330 ret = STTD_ERROR_OPERATION_FAILED;
332 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get current engine : uid(%u)", uid);
333 ret = sttd_server_get_current_engine(uid, &engine);
337 reply = dbus_message_new_method_return(msg);
341 /* Append result and language */
342 dbus_message_append_args(reply,
343 DBUS_TYPE_INT32, &ret,
344 DBUS_TYPE_STRING, &engine,
347 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
349 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
351 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
354 __sttd_dbus_server_dbus_connection_send(conn, reply);
356 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
359 if (NULL != engine) free(engine);
361 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
365 int sttd_dbus_server_check_app_agreed(DBusConnection* conn, DBusMessage* msg)
368 dbus_error_init(&err);
372 int ret = STTD_ERROR_OPERATION_FAILED;
373 bool available = false;
375 dbus_message_get_args(msg, &err,
376 DBUS_TYPE_UINT32, &uid,
377 DBUS_TYPE_STRING, &appid,
380 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Is engine available");
382 if (dbus_error_is_set(&err)) {
383 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt Is engine available : get arguments error (%s)", err.message);
384 dbus_error_free(&err);
385 ret = STTD_ERROR_OPERATION_FAILED;
387 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt Is engine available : uid(%u)", uid);
388 ret = sttd_server_check_app_agreed(uid, appid, &available);
392 reply = dbus_message_new_method_return(msg);
395 /* Append result and language */
396 dbus_message_append_args(reply,
397 DBUS_TYPE_INT32, &ret,
398 DBUS_TYPE_INT32, &available,
402 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
404 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
407 __sttd_dbus_server_dbus_connection_send(conn, reply);
409 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
412 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
416 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
419 dbus_error_init(&err);
422 int ret = STTD_ERROR_OPERATION_FAILED;
423 GSList* lang_list = NULL;
425 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
427 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
429 if (dbus_error_is_set(&err)) {
430 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
431 dbus_error_free(&err);
432 ret = STTD_ERROR_OPERATION_FAILED;
434 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%u)", uid);
435 ret = sttd_server_get_supported_languages(uid, &lang_list);
439 reply = dbus_message_new_method_return(msg);
442 DBusMessageIter args;
443 dbus_message_iter_init_append(reply, &args);
446 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
449 /* Append language size */
450 int size = g_slist_length(lang_list);
452 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
453 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
454 ret = STTD_ERROR_OPERATION_FAILED;
459 iter = g_slist_nth(lang_list, 0);
461 while (NULL != iter) {
462 temp_lang = iter->data;
464 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang));
466 if (NULL != temp_lang)
469 lang_list = g_slist_remove_link(lang_list, iter);
471 iter = g_slist_nth(lang_list, 0);
474 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
476 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
479 __sttd_dbus_server_dbus_connection_send(conn, reply);
481 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
484 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
488 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
491 dbus_error_init(&err);
495 int ret = STTD_ERROR_OPERATION_FAILED;
497 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
499 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
501 if (dbus_error_is_set(&err)) {
502 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
503 dbus_error_free(&err);
504 ret = STTD_ERROR_OPERATION_FAILED;
506 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%u)", uid);
507 ret = sttd_server_get_current_langauage(uid, &lang);
511 reply = dbus_message_new_method_return(msg);
515 /* Append result and language */
516 dbus_message_append_args(reply,
517 DBUS_TYPE_INT32, &ret,
518 DBUS_TYPE_STRING, &lang,
521 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
523 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
525 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
528 __sttd_dbus_server_dbus_connection_send(conn, reply);
530 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
533 if (NULL != lang) free(lang);
535 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
539 int sttd_dbus_server_set_private_data(DBusConnection* conn, DBusMessage* msg)
542 dbus_error_init(&err);
547 int ret = STTD_ERROR_OPERATION_FAILED;
548 dbus_message_get_args(msg, &err,
549 DBUS_TYPE_UINT32, &uid,
550 DBUS_TYPE_STRING, &key,
551 DBUS_TYPE_STRING, &data,
554 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set private data");
556 if (dbus_error_is_set(&err)) {
557 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set private data : get arguments error (%s)", err.message);
558 dbus_error_free(&err);
559 ret = STTD_ERROR_OPERATION_FAILED;
561 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set private data : uid(%u)", uid);
562 ret = sttd_server_set_private_data(uid, key, data);
565 __sttd_dbus_server_send_method_return(conn, msg, ret);
567 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
571 int sttd_dbus_server_get_private_data(DBusConnection* conn, DBusMessage* msg)
574 dbus_error_init(&err);
579 int ret = STTD_ERROR_OPERATION_FAILED;
580 dbus_message_get_args(msg, &err,
581 DBUS_TYPE_UINT32, &uid,
582 DBUS_TYPE_STRING, &key,
585 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get private data");
587 if (dbus_error_is_set(&err)) {
588 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get private data : get arguments error (%s)", err.message);
589 dbus_error_free(&err);
590 ret = STTD_ERROR_OPERATION_FAILED;
592 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get private data : uid(%u), key(%s)", uid, (NULL == key) ? "NULL" : key);
593 ret = sttd_server_get_private_data(uid, key, &data);
597 reply = dbus_message_new_method_return(msg);
600 /* Append result and private data */
601 dbus_message_append_args(reply,
602 DBUS_TYPE_INT32, &ret,
603 DBUS_TYPE_STRING, &data,
607 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), data(%s)", ret, (NULL == data) ? "NULL" : data);
609 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
612 __sttd_dbus_server_dbus_connection_send(conn, reply);
614 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
617 if (NULL != data) free(data);
619 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
623 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
626 dbus_error_init(&err);
631 int ret = STTD_ERROR_OPERATION_FAILED;
633 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
635 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
637 if (dbus_error_is_set(&err)) {
638 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
639 dbus_error_free(&err);
640 ret = STTD_ERROR_OPERATION_FAILED;
642 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%u)", uid);
643 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
647 reply = dbus_message_new_method_return(msg);
650 /* Append result and language */
651 dbus_message_append_args(reply,
652 DBUS_TYPE_INT32, &ret,
653 DBUS_TYPE_INT32, &support,
657 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
659 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
662 __sttd_dbus_server_dbus_connection_send(conn, reply);
664 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
667 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
671 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
674 dbus_error_init(&err);
678 int ret = STTD_ERROR_OPERATION_FAILED;
680 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
682 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
684 if (dbus_error_is_set(&err)) {
685 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
686 dbus_error_free(&err);
687 ret = STTD_ERROR_OPERATION_FAILED;
689 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%u) file(%s)", uid, file);
690 ret = sttd_server_set_start_sound(uid, file);
693 __sttd_dbus_server_send_method_return(conn, msg, ret);
695 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
699 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
702 dbus_error_init(&err);
705 int ret = STTD_ERROR_OPERATION_FAILED;
707 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
709 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
711 if (dbus_error_is_set(&err)) {
712 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
713 dbus_error_free(&err);
714 ret = STTD_ERROR_OPERATION_FAILED;
716 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%u)", uid);
717 ret = sttd_server_set_start_sound(uid, NULL);
720 __sttd_dbus_server_send_method_return(conn, msg, ret);
722 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
726 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
729 dbus_error_init(&err);
733 int ret = STTD_ERROR_OPERATION_FAILED;
735 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
737 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
739 if (dbus_error_is_set(&err)) {
740 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
741 dbus_error_free(&err);
742 ret = STTD_ERROR_OPERATION_FAILED;
744 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%u) file(%s)", uid, file);
745 ret = sttd_server_set_stop_sound(uid, file);
748 __sttd_dbus_server_send_method_return(conn, msg, ret);
750 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
754 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
757 dbus_error_init(&err);
760 int ret = STTD_ERROR_OPERATION_FAILED;
762 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
764 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
766 if (dbus_error_is_set(&err)) {
767 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
768 dbus_error_free(&err);
769 ret = STTD_ERROR_OPERATION_FAILED;
771 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%u)", uid);
772 ret = sttd_server_set_stop_sound(uid, NULL);
775 __sttd_dbus_server_send_method_return(conn, msg, ret);
777 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
781 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
784 dbus_error_init(&err);
793 int ret = STTD_ERROR_OPERATION_FAILED;
795 dbus_message_get_args(msg, &err,
796 DBUS_TYPE_UINT32, &uid,
797 DBUS_TYPE_STRING, &lang,
798 DBUS_TYPE_STRING, &type,
799 DBUS_TYPE_INT32, &silence,
800 DBUS_TYPE_STRING, &appid,
801 DBUS_TYPE_STRING, &credential,
802 DBUS_TYPE_STRING, &audio_id,
805 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
807 if (dbus_error_is_set(&err)) {
808 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
809 dbus_error_free(&err);
810 ret = STTD_ERROR_OPERATION_FAILED;
812 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) credential(%s) audio_id(%s)"
813 , uid, lang, type, silence, appid, credential, audio_id);
814 ret = sttd_server_start(uid, lang, type, silence, appid, credential, audio_id);
818 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
820 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
821 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start")) {
822 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
826 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
830 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
833 dbus_error_init(&err);
836 int ret = STTD_ERROR_OPERATION_FAILED;
837 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
839 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
841 if (dbus_error_is_set(&err)) {
842 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
843 dbus_error_free(&err);
844 ret = STTD_ERROR_OPERATION_FAILED;
846 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%u)", uid);
847 ret = sttd_server_stop(uid);
851 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
853 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
854 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to stop")) {
855 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
859 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
863 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
866 dbus_error_init(&err);
869 int ret = STTD_ERROR_OPERATION_FAILED;
870 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
872 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
874 if (dbus_error_is_set(&err)) {
875 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
876 dbus_error_free(&err);
877 ret = STTD_ERROR_OPERATION_FAILED;
879 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%u)", uid);
880 ret = sttd_server_cancel(uid);
884 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
886 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
887 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
888 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
892 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
896 int sttd_dbus_server_start_file(DBusConnection* conn, DBusMessage* msg)
899 dbus_error_init(&err);
909 int ret = STTD_ERROR_OPERATION_FAILED;
911 dbus_message_get_args(msg, &err,
912 DBUS_TYPE_UINT32, &uid,
913 DBUS_TYPE_STRING, &lang,
914 DBUS_TYPE_STRING, &type,
915 DBUS_TYPE_INT32, &silence,
916 DBUS_TYPE_STRING, &appid,
917 DBUS_TYPE_STRING, &credential,
918 DBUS_TYPE_STRING, &filepath,
921 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start File");
923 if (dbus_error_is_set(&err)) {
924 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start file: get arguments error (%s)", err.message);
925 dbus_error_free(&err);
926 ret = STTD_ERROR_OPERATION_FAILED;
928 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start file : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) filepath(%s)", uid, lang, type, silence, appid, filepath);
929 ret = sttd_server_start_file(uid, lang, type, silence, appid, credential, filepath);
933 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
935 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
936 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start file")) {
937 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
941 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
945 int sttd_dbus_server_cancel_file(DBusConnection* conn, DBusMessage* msg)
948 dbus_error_init(&err);
951 int ret = STTD_ERROR_OPERATION_FAILED;
952 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
954 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel File");
956 if (dbus_error_is_set(&err)) {
957 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel file : get arguments error (%s)", err.message);
958 dbus_error_free(&err);
959 ret = STTD_ERROR_OPERATION_FAILED;
961 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel file : uid(%u)", uid);
962 ret = sttd_server_cancel_file(uid);
966 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
968 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
969 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
970 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
973 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");