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 int sttd_dbus_server_hello(DBusConnection* conn, DBusMessage* msg)
28 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Hello");
31 reply = dbus_message_new_method_return(msg);
33 if (!dbus_connection_send(conn, reply, NULL)) {
34 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
37 dbus_connection_flush(conn);
38 dbus_message_unref(reply);
40 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
43 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
44 SLOG(LOG_DEBUG, TAG_STTD, " ");
49 int sttd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
52 dbus_error_init(&err);
56 bool silence_supported = false;
57 bool credential_needed = false;
59 int ret = STTD_ERROR_OPERATION_FAILED;
61 dbus_message_get_args(msg, &err,
62 DBUS_TYPE_INT32, &pid,
63 DBUS_TYPE_UINT32, &uid,
66 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Initialize");
68 if (dbus_error_is_set(&err)) {
69 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt initialize : get arguments error (%s)", err.message);
70 dbus_error_free(&err);
71 ret = STTD_ERROR_OPERATION_FAILED;
73 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt initialize : pid(%d), uid(%u)", pid , uid);
74 ret = sttd_server_initialize(pid, uid, &silence_supported, &credential_needed);
78 reply = dbus_message_new_method_return(msg);
81 int int_silence_supported = (int)silence_supported;
82 int int_credential_needed = (int)credential_needed;
84 dbus_message_append_args(reply,
85 DBUS_TYPE_INT32, &ret,
86 DBUS_TYPE_INT32, &int_silence_supported,
87 DBUS_TYPE_INT32, &int_credential_needed,
92 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
93 ret, silence_supported, credential_needed);
95 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
98 if (!dbus_connection_send(conn, reply, NULL)) {
99 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
102 dbus_connection_flush(conn);
103 dbus_message_unref(reply);
105 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
108 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
109 SLOG(LOG_DEBUG, TAG_STTD, " ");
114 static void __sttd_dbus_server_send_method_return(DBusConnection* conn, DBusMessage* msg, int ret)
117 reply = dbus_message_new_method_return(msg);
120 /* Append result and language */
121 dbus_message_append_args(reply,
122 DBUS_TYPE_INT32, &ret,
126 SLOG(LOG_INFO, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
128 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
131 if (!dbus_connection_send(conn, reply, NULL)) {
132 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
135 dbus_connection_flush(conn);
136 dbus_message_unref(reply);
138 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
143 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
146 dbus_error_init(&err);
149 int ret = STTD_ERROR_OPERATION_FAILED;
150 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
152 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
154 if (dbus_error_is_set(&err)) {
155 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
156 dbus_error_free(&err);
157 ret = STTD_ERROR_OPERATION_FAILED;
159 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%u)", uid);
160 ret = sttd_server_finalize(uid);
163 __sttd_dbus_server_send_method_return(conn, msg, ret);
165 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
166 SLOG(LOG_DEBUG, TAG_STTD, " ");
171 int sttd_dbus_server_get_support_engines(DBusConnection* conn, DBusMessage* msg)
174 dbus_error_init(&err);
177 int ret = STTD_ERROR_OPERATION_FAILED;
178 GSList* engine_list = NULL;
180 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
182 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported engines");
184 if (dbus_error_is_set(&err)) {
185 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported engines : get arguments error (%s)", err.message);
186 dbus_error_free(&err);
187 ret = STTD_ERROR_OPERATION_FAILED;
189 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported engines : uid(%u)", uid);
190 ret = sttd_server_get_supported_engines(uid, &engine_list);
194 reply = dbus_message_new_method_return(msg);
197 DBusMessageIter args;
199 dbus_message_iter_init_append(reply, &args);
202 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
206 int size = g_slist_length(engine_list);
207 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
208 ret = STTD_ERROR_OPERATION_FAILED;
213 iter = g_slist_nth(engine_list, 0);
215 while (NULL != iter) {
218 if (NULL != engine) {
219 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
220 SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
221 engine->engine_id, engine->engine_name, engine->ug_name);
223 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id));
224 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name));
225 /* dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name)); */
227 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
230 if (NULL != engine->engine_id) {
231 free(engine->engine_id);
232 engine->engine_id = NULL;
234 if (NULL != engine->engine_name) {
235 free(engine->engine_name);
236 engine->engine_name = NULL;
238 if (NULL != engine->ug_name) {
239 free(engine->ug_name);
240 engine->ug_name = NULL;
246 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
249 engine_list = g_slist_remove_link(engine_list, iter);
251 iter = g_slist_nth(engine_list, 0);
254 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
256 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
259 if (!dbus_connection_send(conn, reply, NULL)) {
260 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
263 dbus_connection_flush(conn);
264 dbus_message_unref(reply);
266 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
269 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
270 SLOG(LOG_DEBUG, TAG_STTD, " ");
275 int sttd_dbus_server_set_current_engine(DBusConnection* conn, DBusMessage* msg)
278 dbus_error_init(&err);
282 bool silence_supported = false;
283 bool credential_needed = false;
284 int ret = STTD_ERROR_OPERATION_FAILED;
286 dbus_message_get_args(msg, &err,
287 DBUS_TYPE_UINT32, &uid,
288 DBUS_TYPE_STRING, &engine_id,
291 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set current engine");
293 if (dbus_error_is_set(&err)) {
294 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set current engine : get arguments error (%s)", err.message);
295 dbus_error_free(&err);
296 ret = STTD_ERROR_OPERATION_FAILED;
298 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set current engine : uid(%u), engine_id(%s)", uid, (NULL == engine_id) ? "NULL" : engine_id);
299 ret = sttd_server_set_current_engine(uid, engine_id, &silence_supported, &credential_needed);
303 reply = dbus_message_new_method_return(msg);
306 int int_silence_supported = (int)silence_supported;
307 int int_credential_needed = (int)credential_needed;
309 dbus_message_append_args(reply,
310 DBUS_TYPE_INT32, &ret,
311 DBUS_TYPE_INT32, &int_silence_supported,
312 DBUS_TYPE_INT32, &int_credential_needed,
316 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
317 ret, silence_supported, credential_needed);
319 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
322 if (!dbus_connection_send(conn, reply, NULL)) {
323 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
326 dbus_connection_flush(conn);
327 dbus_message_unref(reply);
329 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
332 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
333 SLOG(LOG_DEBUG, TAG_STTD, " ");
338 int sttd_dbus_server_get_current_engine(DBusConnection* conn, DBusMessage* msg)
341 dbus_error_init(&err);
345 int ret = STTD_ERROR_OPERATION_FAILED;
347 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
349 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get current engine");
351 if (dbus_error_is_set(&err)) {
352 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get current engine : get arguments error (%s)", err.message);
353 dbus_error_free(&err);
354 ret = STTD_ERROR_OPERATION_FAILED;
356 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get current engine : uid(%u)", uid);
357 ret = sttd_server_get_current_engine(uid, &engine);
361 reply = dbus_message_new_method_return(msg);
365 /* Append result and language */
366 dbus_message_append_args(reply,
367 DBUS_TYPE_INT32, &ret,
368 DBUS_TYPE_STRING, &engine,
371 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
373 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
375 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
378 if (!dbus_connection_send(conn, reply, NULL)) {
379 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
382 dbus_connection_flush(conn);
383 dbus_message_unref(reply);
385 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
388 if (NULL != engine) free(engine);
390 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
391 SLOG(LOG_DEBUG, TAG_STTD, " ");
396 int sttd_dbus_server_check_app_agreed(DBusConnection* conn, DBusMessage* msg)
399 dbus_error_init(&err);
403 int ret = STTD_ERROR_OPERATION_FAILED;
404 bool available = false;
406 dbus_message_get_args(msg, &err,
407 DBUS_TYPE_UINT32, &uid,
408 DBUS_TYPE_STRING, &appid,
411 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Is engine available");
413 if (dbus_error_is_set(&err)) {
414 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt Is engine available : get arguments error (%s)", err.message);
415 dbus_error_free(&err);
416 ret = STTD_ERROR_OPERATION_FAILED;
418 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt Is engine available : uid(%u)", uid);
419 ret = sttd_server_check_app_agreed(uid, appid, &available);
423 reply = dbus_message_new_method_return(msg);
426 /* Append result and language */
427 dbus_message_append_args(reply,
428 DBUS_TYPE_INT32, &ret,
429 DBUS_TYPE_INT32, &available,
433 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
435 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
438 if (!dbus_connection_send(conn, reply, NULL)) {
439 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
442 dbus_connection_flush(conn);
443 dbus_message_unref(reply);
445 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
448 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
449 SLOG(LOG_DEBUG, TAG_STTD, " ");
454 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
457 dbus_error_init(&err);
460 int ret = STTD_ERROR_OPERATION_FAILED;
461 GSList* lang_list = NULL;
463 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
465 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
467 if (dbus_error_is_set(&err)) {
468 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
469 dbus_error_free(&err);
470 ret = STTD_ERROR_OPERATION_FAILED;
472 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%u)", uid);
473 ret = sttd_server_get_supported_languages(uid, &lang_list);
477 reply = dbus_message_new_method_return(msg);
480 DBusMessageIter args;
481 dbus_message_iter_init_append(reply, &args);
484 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
487 /* Append language size */
488 int size = g_slist_length(lang_list);
490 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
491 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
492 ret = STTD_ERROR_OPERATION_FAILED;
497 iter = g_slist_nth(lang_list, 0);
499 while (NULL != iter) {
500 temp_lang = iter->data;
502 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang));
504 if (NULL != temp_lang)
507 lang_list = g_slist_remove_link(lang_list, iter);
509 iter = g_slist_nth(lang_list, 0);
512 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
514 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
517 if (!dbus_connection_send(conn, reply, NULL)) {
518 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
521 dbus_connection_flush(conn);
522 dbus_message_unref(reply);
524 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
527 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
528 SLOG(LOG_DEBUG, TAG_STTD, " ");
533 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
536 dbus_error_init(&err);
540 int ret = STTD_ERROR_OPERATION_FAILED;
542 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
544 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
546 if (dbus_error_is_set(&err)) {
547 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
548 dbus_error_free(&err);
549 ret = STTD_ERROR_OPERATION_FAILED;
551 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%u)", uid);
552 ret = sttd_server_get_current_langauage(uid, &lang);
556 reply = dbus_message_new_method_return(msg);
560 /* Append result and language */
561 dbus_message_append_args(reply,
562 DBUS_TYPE_INT32, &ret,
563 DBUS_TYPE_STRING, &lang,
566 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
568 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
570 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
573 if (!dbus_connection_send(conn, reply, NULL)) {
574 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
577 dbus_connection_flush(conn);
578 dbus_message_unref(reply);
580 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
583 if (NULL != lang) free(lang);
585 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
586 SLOG(LOG_DEBUG, TAG_STTD, " ");
591 int sttd_dbus_server_set_private_data(DBusConnection* conn, DBusMessage* msg)
594 dbus_error_init(&err);
599 int ret = STTD_ERROR_OPERATION_FAILED;
600 dbus_message_get_args(msg, &err,
601 DBUS_TYPE_UINT32, &uid,
602 DBUS_TYPE_STRING, &key,
603 DBUS_TYPE_STRING, &data,
606 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set private data");
608 if (dbus_error_is_set(&err)) {
609 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set private data : get arguments error (%s)", err.message);
610 dbus_error_free(&err);
611 ret = STTD_ERROR_OPERATION_FAILED;
613 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set private data : uid(%u)", uid);
614 ret = sttd_server_set_private_data(uid, key, data);
617 __sttd_dbus_server_send_method_return(conn, msg, ret);
619 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
620 SLOG(LOG_DEBUG, TAG_STTD, " ");
625 int sttd_dbus_server_get_private_data(DBusConnection* conn, DBusMessage* msg)
628 dbus_error_init(&err);
633 int ret = STTD_ERROR_OPERATION_FAILED;
634 dbus_message_get_args(msg, &err,
635 DBUS_TYPE_UINT32, &uid,
636 DBUS_TYPE_STRING, &key,
639 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get private data");
641 if (dbus_error_is_set(&err)) {
642 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get private data : get arguments error (%s)", err.message);
643 dbus_error_free(&err);
644 ret = STTD_ERROR_OPERATION_FAILED;
646 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get private data : uid(%u), key(%s)", uid, (NULL == key) ? "NULL" : key);
647 ret = sttd_server_get_private_data(uid, key, &data);
651 reply = dbus_message_new_method_return(msg);
654 /* Append result and private data */
655 dbus_message_append_args(reply,
656 DBUS_TYPE_INT32, &ret,
657 DBUS_TYPE_STRING, &data,
661 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), data(%s)", ret, (NULL == data) ? "NULL" : data);
663 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
666 if (!dbus_connection_send(conn, reply, NULL)) {
667 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
670 dbus_connection_flush(conn);
671 dbus_message_unref(reply);
673 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
676 if (NULL != data) free(data);
678 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
679 SLOG(LOG_DEBUG, TAG_STTD, " ");
684 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
687 dbus_error_init(&err);
692 int ret = STTD_ERROR_OPERATION_FAILED;
694 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
696 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
698 if (dbus_error_is_set(&err)) {
699 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
700 dbus_error_free(&err);
701 ret = STTD_ERROR_OPERATION_FAILED;
703 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%u)", uid);
704 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
708 reply = dbus_message_new_method_return(msg);
711 /* Append result and language */
712 dbus_message_append_args(reply,
713 DBUS_TYPE_INT32, &ret,
714 DBUS_TYPE_INT32, &support,
718 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
720 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
723 if (!dbus_connection_send(conn, reply, NULL)) {
724 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
727 dbus_connection_flush(conn);
728 dbus_message_unref(reply);
730 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
733 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
734 SLOG(LOG_DEBUG, TAG_STTD, " ");
739 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
742 dbus_error_init(&err);
746 int ret = STTD_ERROR_OPERATION_FAILED;
748 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
750 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
752 if (dbus_error_is_set(&err)) {
753 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
754 dbus_error_free(&err);
755 ret = STTD_ERROR_OPERATION_FAILED;
757 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%u) file(%s)", uid, file);
758 ret = sttd_server_set_start_sound(uid, file);
761 __sttd_dbus_server_send_method_return(conn, msg, ret);
763 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
764 SLOG(LOG_DEBUG, TAG_STTD, " ");
769 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
772 dbus_error_init(&err);
775 int ret = STTD_ERROR_OPERATION_FAILED;
777 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
779 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
781 if (dbus_error_is_set(&err)) {
782 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
783 dbus_error_free(&err);
784 ret = STTD_ERROR_OPERATION_FAILED;
786 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%u)", uid);
787 ret = sttd_server_set_start_sound(uid, NULL);
790 __sttd_dbus_server_send_method_return(conn, msg, ret);
792 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
793 SLOG(LOG_DEBUG, TAG_STTD, " ");
798 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
801 dbus_error_init(&err);
805 int ret = STTD_ERROR_OPERATION_FAILED;
807 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
809 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
811 if (dbus_error_is_set(&err)) {
812 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
813 dbus_error_free(&err);
814 ret = STTD_ERROR_OPERATION_FAILED;
816 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%u) file(%s)", uid, file);
817 ret = sttd_server_set_stop_sound(uid, file);
820 __sttd_dbus_server_send_method_return(conn, msg, ret);
822 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
823 SLOG(LOG_DEBUG, TAG_STTD, " ");
828 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
831 dbus_error_init(&err);
834 int ret = STTD_ERROR_OPERATION_FAILED;
836 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
838 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
840 if (dbus_error_is_set(&err)) {
841 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
842 dbus_error_free(&err);
843 ret = STTD_ERROR_OPERATION_FAILED;
845 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%u)", uid);
846 ret = sttd_server_set_stop_sound(uid, NULL);
849 __sttd_dbus_server_send_method_return(conn, msg, ret);
851 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
852 SLOG(LOG_DEBUG, TAG_STTD, " ");
857 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
860 dbus_error_init(&err);
868 int ret = STTD_ERROR_OPERATION_FAILED;
870 dbus_message_get_args(msg, &err,
871 DBUS_TYPE_UINT32, &uid,
872 DBUS_TYPE_STRING, &lang,
873 DBUS_TYPE_STRING, &type,
874 DBUS_TYPE_INT32, &silence,
875 DBUS_TYPE_STRING, &appid,
876 DBUS_TYPE_STRING, &credential,
879 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
881 if (dbus_error_is_set(&err)) {
882 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
883 dbus_error_free(&err);
884 ret = STTD_ERROR_OPERATION_FAILED;
886 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) credential(%s)"
887 , uid, lang, type, silence, appid, credential);
888 ret = sttd_server_start(uid, lang, type, silence, appid, credential);
892 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
894 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
895 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start")) {
896 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
900 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
901 SLOG(LOG_DEBUG, TAG_STTD, " ");
906 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
909 dbus_error_init(&err);
912 int ret = STTD_ERROR_OPERATION_FAILED;
913 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
915 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
917 if (dbus_error_is_set(&err)) {
918 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
919 dbus_error_free(&err);
920 ret = STTD_ERROR_OPERATION_FAILED;
922 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%u)", uid);
923 ret = sttd_server_stop(uid);
927 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
929 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
930 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to stop")) {
931 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
935 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
936 SLOG(LOG_DEBUG, TAG_STTD, " ");
941 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
944 dbus_error_init(&err);
947 int ret = STTD_ERROR_OPERATION_FAILED;
948 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
950 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
952 if (dbus_error_is_set(&err)) {
953 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
954 dbus_error_free(&err);
955 ret = STTD_ERROR_OPERATION_FAILED;
957 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%u)", uid);
958 ret = sttd_server_cancel(uid);
962 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
964 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
965 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
966 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
970 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
971 SLOG(LOG_DEBUG, TAG_STTD, " ");
976 int sttd_dbus_server_start_file(DBusConnection* conn, DBusMessage* msg)
979 dbus_error_init(&err);
988 stte_audio_type_e audio_type;
991 int ret = STTD_ERROR_OPERATION_FAILED;
993 dbus_message_get_args(msg, &err,
994 DBUS_TYPE_UINT32, &uid,
995 DBUS_TYPE_STRING, &lang,
996 DBUS_TYPE_STRING, &type,
997 DBUS_TYPE_INT32, &silence,
998 DBUS_TYPE_STRING, &appid,
999 DBUS_TYPE_STRING, &credential,
1000 DBUS_TYPE_STRING, &filepath,
1001 DBUS_TYPE_INT32, &audio_type,
1002 DBUS_TYPE_INT32, &sample_rate,
1005 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start File");
1007 if (dbus_error_is_set(&err)) {
1008 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start file: get arguments error (%s)", err.message);
1009 dbus_error_free(&err);
1010 ret = STTD_ERROR_OPERATION_FAILED;
1012 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start file : uid(%u), lang(%s), type(%s), silence(%d) appid(%s) filepath(%s), audio_type(%d), sample_rate(%d)"
1013 , uid, lang, type, silence, appid, filepath, audio_type, sample_rate);
1014 ret = sttd_server_start_file(uid, lang, type, silence, appid, credential, filepath, audio_type, sample_rate);
1018 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1020 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1021 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start file")) {
1022 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1026 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1027 SLOG(LOG_DEBUG, TAG_STTD, " ");
1032 int sttd_dbus_server_cancel_file(DBusConnection* conn, DBusMessage* msg)
1035 dbus_error_init(&err);
1038 int ret = STTD_ERROR_OPERATION_FAILED;
1039 dbus_message_get_args(msg, &err, DBUS_TYPE_UINT32, &uid, DBUS_TYPE_INVALID);
1041 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel File");
1043 if (dbus_error_is_set(&err)) {
1044 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel file : get arguments error (%s)", err.message);
1045 dbus_error_free(&err);
1046 ret = STTD_ERROR_OPERATION_FAILED;
1048 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel file : uid(%u)", uid);
1049 ret = sttd_server_cancel_file(uid);
1053 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1055 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1056 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
1057 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1060 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1061 SLOG(LOG_DEBUG, TAG_STTD, " ");