2 * Copyright (c) 2011-2014 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;
58 int ret = STTD_ERROR_OPERATION_FAILED;
60 dbus_message_get_args(msg, &err,
61 DBUS_TYPE_INT32, &pid,
62 DBUS_TYPE_INT32, &uid,
65 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Initialize");
67 if (dbus_error_is_set(&err)) {
68 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt initialize : get arguments error (%s)", err.message);
69 dbus_error_free(&err);
70 ret = STTD_ERROR_OPERATION_FAILED;
72 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt initialize : pid(%d), uid(%d)", pid , uid);
73 ret = sttd_server_initialize(pid, uid, &silence_supported);
77 reply = dbus_message_new_method_return(msg);
80 dbus_message_append_args(reply,
81 DBUS_TYPE_INT32, &ret,
82 DBUS_TYPE_INT32, &silence_supported,
86 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d)",
87 ret, silence_supported);
89 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
92 if (!dbus_connection_send(conn, reply, NULL)) {
93 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
96 dbus_connection_flush(conn);
97 dbus_message_unref(reply);
99 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
102 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
103 SLOG(LOG_DEBUG, TAG_STTD, " ");
108 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
111 dbus_error_init(&err);
114 int ret = STTD_ERROR_OPERATION_FAILED;
115 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
117 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
119 if (dbus_error_is_set(&err)) {
120 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
121 dbus_error_free(&err);
122 ret = STTD_ERROR_OPERATION_FAILED;
124 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%d)", uid);
125 ret = sttd_server_finalize(uid);
130 reply = dbus_message_new_method_return(msg);
133 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
136 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
138 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
141 if (!dbus_connection_send(conn, reply, NULL)) {
142 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
145 dbus_connection_flush(conn);
146 dbus_message_unref(reply);
148 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
151 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
152 SLOG(LOG_DEBUG, TAG_STTD, " ");
157 int sttd_dbus_server_get_support_engines(DBusConnection* conn, DBusMessage* msg)
160 dbus_error_init(&err);
163 int ret = STTD_ERROR_OPERATION_FAILED;
164 GSList* engine_list = NULL;
166 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
168 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported engines");
170 if (dbus_error_is_set(&err)) {
171 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported engines : get arguments error (%s)", err.message);
172 dbus_error_free(&err);
173 ret = STTD_ERROR_OPERATION_FAILED;
175 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported engines : uid(%d)", uid);
176 ret = sttd_server_get_supported_engines(uid, &engine_list);
180 reply = dbus_message_new_method_return(msg);
183 DBusMessageIter args;
185 dbus_message_iter_init_append(reply, &args);
188 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
192 int size = g_slist_length(engine_list);
193 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
194 ret = STTD_ERROR_OPERATION_FAILED;
199 iter = g_slist_nth(engine_list, 0);
201 while (NULL != iter) {
204 if (NULL != engine) {
205 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
206 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
207 engine->engine_id, engine->engine_name, engine->ug_name);
209 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id));
210 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name));
211 /* dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name)); */
213 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
216 if (NULL != engine->engine_id) free(engine->engine_id);
217 if (NULL != engine->engine_name) free(engine->engine_name);
218 if (NULL != engine->ug_name) free(engine->ug_name);
222 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
225 engine_list = g_slist_remove_link(engine_list, iter);
227 iter = g_slist_nth(engine_list, 0);
230 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
232 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
235 if (!dbus_connection_send(conn, reply, NULL)) {
236 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
239 dbus_connection_flush(conn);
240 dbus_message_unref(reply);
242 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
245 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
246 SLOG(LOG_DEBUG, TAG_STTD, " ");
251 int sttd_dbus_server_set_current_engine(DBusConnection* conn, DBusMessage* msg)
254 dbus_error_init(&err);
258 bool silence_supported = false;
259 int ret = STTD_ERROR_OPERATION_FAILED;
261 dbus_message_get_args(msg, &err,
262 DBUS_TYPE_INT32, &uid,
263 DBUS_TYPE_STRING, &engine_id,
266 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set current engine");
268 if (dbus_error_is_set(&err)) {
269 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set current engine : get arguments error (%s)", err.message);
270 dbus_error_free(&err);
271 ret = STTD_ERROR_OPERATION_FAILED;
273 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set current engine : uid(%d)", uid);
274 ret = sttd_server_set_current_engine(uid, engine_id, &silence_supported);
278 reply = dbus_message_new_method_return(msg);
281 dbus_message_append_args(reply,
282 DBUS_TYPE_INT32, &ret,
283 DBUS_TYPE_INT32, &silence_supported,
287 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d)",
288 ret, silence_supported);
290 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
293 if (!dbus_connection_send(conn, reply, NULL)) {
294 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
297 dbus_connection_flush(conn);
298 dbus_message_unref(reply);
300 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
303 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
304 SLOG(LOG_DEBUG, TAG_STTD, " ");
309 int sttd_dbus_server_get_current_engine(DBusConnection* conn, DBusMessage* msg)
312 dbus_error_init(&err);
316 int ret = STTD_ERROR_OPERATION_FAILED;
318 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
320 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get current engine");
322 if (dbus_error_is_set(&err)) {
323 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get current engine : get arguments error (%s)", err.message);
324 dbus_error_free(&err);
325 ret = STTD_ERROR_OPERATION_FAILED;
327 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get current engine : uid(%d)", uid);
328 ret = sttd_server_get_current_engine(uid, &engine);
332 reply = dbus_message_new_method_return(msg);
336 /* Append result and language */
337 dbus_message_append_args(reply,
338 DBUS_TYPE_INT32, &ret,
339 DBUS_TYPE_STRING, &engine,
342 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
344 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
346 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
349 if (!dbus_connection_send(conn, reply, NULL)) {
350 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
353 dbus_connection_flush(conn);
354 dbus_message_unref(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, "<<<<<");
362 SLOG(LOG_DEBUG, TAG_STTD, " ");
367 int sttd_dbus_server_check_app_agreed(DBusConnection* conn, DBusMessage* msg)
370 dbus_error_init(&err);
374 int ret = STTD_ERROR_OPERATION_FAILED;
375 bool available = false;
377 dbus_message_get_args(msg, &err,
378 DBUS_TYPE_INT32, &uid,
379 DBUS_TYPE_STRING, &appid,
382 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Is engine available");
384 if (dbus_error_is_set(&err)) {
385 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt Is engine available : get arguments error (%s)", err.message);
386 dbus_error_free(&err);
387 ret = STTD_ERROR_OPERATION_FAILED;
389 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt Is engine available : uid(%d)", uid);
390 ret = sttd_server_check_agg_agreed(uid, appid, &available);
394 reply = dbus_message_new_method_return(msg);
397 /* Append result and language */
398 dbus_message_append_args(reply,
399 DBUS_TYPE_INT32, &ret,
400 DBUS_TYPE_INT32, &available,
404 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
406 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
409 if (!dbus_connection_send(conn, reply, NULL)) {
410 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
413 dbus_connection_flush(conn);
414 dbus_message_unref(reply);
416 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
419 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
420 SLOG(LOG_DEBUG, TAG_STTD, " ");
425 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
428 dbus_error_init(&err);
431 int ret = STTD_ERROR_OPERATION_FAILED;
432 GSList* lang_list = NULL;
434 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
436 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
438 if (dbus_error_is_set(&err)) {
439 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
440 dbus_error_free(&err);
441 ret = STTD_ERROR_OPERATION_FAILED;
443 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%d)", uid);
444 ret = sttd_server_get_supported_languages(uid, &lang_list);
448 reply = dbus_message_new_method_return(msg);
451 DBusMessageIter args;
452 dbus_message_iter_init_append(reply, &args);
455 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
458 /* Append language size */
459 int size = g_slist_length(lang_list);
461 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
462 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
463 ret = STTD_ERROR_OPERATION_FAILED;
468 iter = g_slist_nth(lang_list, 0);
470 while (NULL != iter) {
471 temp_lang = iter->data;
473 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang));
475 if (NULL != temp_lang)
478 lang_list = g_slist_remove_link(lang_list, iter);
480 iter = g_slist_nth(lang_list, 0);
483 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
485 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
488 if (!dbus_connection_send(conn, reply, NULL)) {
489 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
492 dbus_connection_flush(conn);
493 dbus_message_unref(reply);
495 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
498 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
499 SLOG(LOG_DEBUG, TAG_STTD, " ");
504 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
507 dbus_error_init(&err);
511 int ret = STTD_ERROR_OPERATION_FAILED;
513 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
515 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
517 if (dbus_error_is_set(&err)) {
518 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
519 dbus_error_free(&err);
520 ret = STTD_ERROR_OPERATION_FAILED;
522 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%d)", uid);
523 ret = sttd_server_get_current_langauage(uid, &lang);
527 reply = dbus_message_new_method_return(msg);
531 /* Append result and language */
532 dbus_message_append_args(reply,
533 DBUS_TYPE_INT32, &ret,
534 DBUS_TYPE_STRING, &lang,
537 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
539 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
541 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
544 if (!dbus_connection_send(conn, reply, NULL)) {
545 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
548 dbus_connection_flush(conn);
549 dbus_message_unref(reply);
551 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
554 if (NULL != lang) free(lang);
556 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
557 SLOG(LOG_DEBUG, TAG_STTD, " ");
562 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
565 dbus_error_init(&err);
570 int ret = STTD_ERROR_OPERATION_FAILED;
572 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
574 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
576 if (dbus_error_is_set(&err)) {
577 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
578 dbus_error_free(&err);
579 ret = STTD_ERROR_OPERATION_FAILED;
581 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%d)", uid);
582 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
586 reply = dbus_message_new_method_return(msg);
589 /* Append result and language */
590 dbus_message_append_args(reply,
591 DBUS_TYPE_INT32, &ret,
592 DBUS_TYPE_INT32, &support,
596 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
598 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
601 if (!dbus_connection_send(conn, reply, NULL)) {
602 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
605 dbus_connection_flush(conn);
606 dbus_message_unref(reply);
608 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
611 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
612 SLOG(LOG_DEBUG, TAG_STTD, " ");
617 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
620 dbus_error_init(&err);
624 int ret = STTD_ERROR_OPERATION_FAILED;
626 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
628 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
630 if (dbus_error_is_set(&err)) {
631 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
632 dbus_error_free(&err);
633 ret = STTD_ERROR_OPERATION_FAILED;
635 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%d) file(%s)", uid, file);
636 ret = sttd_server_set_start_sound(uid, file);
640 reply = dbus_message_new_method_return(msg);
643 /* Append result and language */
644 dbus_message_append_args(reply,
645 DBUS_TYPE_INT32, &ret,
649 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
651 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
654 if (!dbus_connection_send(conn, reply, NULL)) {
655 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
658 dbus_connection_flush(conn);
659 dbus_message_unref(reply);
661 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
664 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
665 SLOG(LOG_DEBUG, TAG_STTD, " ");
670 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
673 dbus_error_init(&err);
676 int ret = STTD_ERROR_OPERATION_FAILED;
678 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
680 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
682 if (dbus_error_is_set(&err)) {
683 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
684 dbus_error_free(&err);
685 ret = STTD_ERROR_OPERATION_FAILED;
687 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%d)", uid);
688 ret = sttd_server_set_start_sound(uid, NULL);
692 reply = dbus_message_new_method_return(msg);
695 /* Append result and language */
696 dbus_message_append_args(reply,
697 DBUS_TYPE_INT32, &ret,
701 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
703 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
706 if (!dbus_connection_send(conn, reply, NULL)) {
707 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
710 dbus_connection_flush(conn);
711 dbus_message_unref(reply);
713 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
716 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
717 SLOG(LOG_DEBUG, TAG_STTD, " ");
722 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
725 dbus_error_init(&err);
729 int ret = STTD_ERROR_OPERATION_FAILED;
731 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
733 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
735 if (dbus_error_is_set(&err)) {
736 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
737 dbus_error_free(&err);
738 ret = STTD_ERROR_OPERATION_FAILED;
740 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%d) file(%s)", uid, file);
741 ret = sttd_server_set_stop_sound(uid, file);
745 reply = dbus_message_new_method_return(msg);
748 /* Append result and language */
749 dbus_message_append_args(reply,
750 DBUS_TYPE_INT32, &ret,
754 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
756 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
759 if (!dbus_connection_send(conn, reply, NULL)) {
760 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
763 dbus_connection_flush(conn);
764 dbus_message_unref(reply);
766 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
769 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
770 SLOG(LOG_DEBUG, TAG_STTD, " ");
775 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
778 dbus_error_init(&err);
781 int ret = STTD_ERROR_OPERATION_FAILED;
783 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
785 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
787 if (dbus_error_is_set(&err)) {
788 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
789 dbus_error_free(&err);
790 ret = STTD_ERROR_OPERATION_FAILED;
792 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%d)", uid);
793 ret = sttd_server_set_stop_sound(uid, NULL);
797 reply = dbus_message_new_method_return(msg);
800 /* Append result and language */
801 dbus_message_append_args(reply,
802 DBUS_TYPE_INT32, &ret,
806 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
808 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
811 if (!dbus_connection_send(conn, reply, NULL)) {
812 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
815 dbus_connection_flush(conn);
816 dbus_message_unref(reply);
818 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
821 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
822 SLOG(LOG_DEBUG, TAG_STTD, " ");
827 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
830 dbus_error_init(&err);
837 int ret = STTD_ERROR_OPERATION_FAILED;
839 dbus_message_get_args(msg, &err,
840 DBUS_TYPE_INT32, &uid,
841 DBUS_TYPE_STRING, &lang,
842 DBUS_TYPE_STRING, &type,
843 DBUS_TYPE_INT32, &silence,
844 DBUS_TYPE_STRING, &appid,
847 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
849 if (dbus_error_is_set(&err)) {
850 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
851 dbus_error_free(&err);
852 ret = STTD_ERROR_OPERATION_FAILED;
854 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%d), lang(%s), type(%s), silence(%d) appid(%s)"
855 , uid, lang, type, silence, appid);
856 ret = sttd_server_start(uid, lang, type, silence, appid);
860 reply = dbus_message_new_method_return(msg);
863 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
866 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
868 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
871 if (!dbus_connection_send(conn, reply, NULL)) {
872 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
875 dbus_connection_flush(conn);
876 dbus_message_unref(reply);
878 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
881 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
882 SLOG(LOG_DEBUG, TAG_STTD, " ");
887 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
890 dbus_error_init(&err);
893 int ret = STTD_ERROR_OPERATION_FAILED;
894 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
896 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
898 if (dbus_error_is_set(&err)) {
899 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
900 dbus_error_free(&err);
901 ret = STTD_ERROR_OPERATION_FAILED;
903 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%d)", uid);
904 ret = sttd_server_stop(uid);
908 reply = dbus_message_new_method_return(msg);
911 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
914 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
916 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
919 if (!dbus_connection_send(conn, reply, NULL)) {
920 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
923 dbus_connection_flush(conn);
924 dbus_message_unref(reply);
926 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
929 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
930 SLOG(LOG_DEBUG, TAG_STTD, " ");
935 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
938 dbus_error_init(&err);
941 int ret = STTD_ERROR_OPERATION_FAILED;
942 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
944 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
946 if (dbus_error_is_set(&err)) {
947 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
948 dbus_error_free(&err);
949 ret = STTD_ERROR_OPERATION_FAILED;
951 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%d)", uid);
952 ret = sttd_server_cancel(uid);
956 reply = dbus_message_new_method_return(msg);
959 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
962 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
964 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
967 if (!dbus_connection_send(conn, reply, NULL)) {
968 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
971 dbus_connection_flush(conn);
972 dbus_message_unref(reply);
974 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
977 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
978 SLOG(LOG_DEBUG, TAG_STTD, " ");