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);
34 if (EINA_TRUE == sttd_get_daemon_exist()) {
35 status = STTD_DAEMON_NORMAL;
37 status = STTD_DAEMON_ON_TERMINATING;
41 dbus_message_append_args(reply, DBUS_TYPE_INT32, &status, DBUS_TYPE_INVALID);
43 if (!dbus_connection_send(conn, reply, NULL)) {
44 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
47 dbus_connection_flush(conn);
48 dbus_message_unref(reply);
50 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
53 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
54 SLOG(LOG_DEBUG, TAG_STTD, " ");
59 int sttd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
62 dbus_error_init(&err);
66 bool silence_supported = false;
68 int ret = STTD_ERROR_OPERATION_FAILED;
70 dbus_message_get_args(msg, &err,
71 DBUS_TYPE_INT32, &pid,
72 DBUS_TYPE_INT32, &uid,
75 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Initialize");
77 if (dbus_error_is_set(&err)) {
78 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt initialize : get arguments error (%s)", err.message);
79 dbus_error_free(&err);
80 ret = STTD_ERROR_OPERATION_FAILED;
82 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt initialize : pid(%d), uid(%d)", pid , uid);
83 ret = sttd_server_initialize(pid, uid, &silence_supported);
87 reply = dbus_message_new_method_return(msg);
90 dbus_message_append_args(reply,
91 DBUS_TYPE_INT32, &ret,
92 DBUS_TYPE_INT32, &silence_supported,
96 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d)",
97 ret, silence_supported);
99 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
102 if (!dbus_connection_send(conn, reply, NULL)) {
103 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
106 dbus_connection_flush(conn);
107 dbus_message_unref(reply);
109 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
112 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
113 SLOG(LOG_DEBUG, TAG_STTD, " ");
118 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
121 dbus_error_init(&err);
124 int ret = STTD_ERROR_OPERATION_FAILED;
125 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
127 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
129 if (dbus_error_is_set(&err)) {
130 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
131 dbus_error_free(&err);
132 ret = STTD_ERROR_OPERATION_FAILED;
134 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%d)", uid);
135 ret = sttd_server_finalize(uid);
140 reply = dbus_message_new_method_return(msg);
143 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
146 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
148 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
151 if (!dbus_connection_send(conn, reply, NULL)) {
152 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
155 dbus_connection_flush(conn);
156 dbus_message_unref(reply);
158 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
161 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
162 SLOG(LOG_DEBUG, TAG_STTD, " ");
167 int sttd_dbus_server_get_support_engines(DBusConnection* conn, DBusMessage* msg)
170 dbus_error_init(&err);
173 int ret = STTD_ERROR_OPERATION_FAILED;
174 GSList* engine_list = NULL;
176 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
178 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported engines");
180 if (dbus_error_is_set(&err)) {
181 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported engines : get arguments error (%s)", err.message);
182 dbus_error_free(&err);
183 ret = STTD_ERROR_OPERATION_FAILED;
185 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported engines : uid(%d)", uid);
186 ret = sttd_server_get_supported_engines(uid, &engine_list);
190 reply = dbus_message_new_method_return(msg);
193 DBusMessageIter args;
195 dbus_message_iter_init_append(reply, &args);
198 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
202 int size = g_slist_length(engine_list);
203 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
204 ret = STTD_ERROR_OPERATION_FAILED;
209 iter = g_slist_nth(engine_list, 0);
211 while (NULL != iter) {
214 if (NULL != engine) {
215 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
216 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
217 engine->engine_id, engine->engine_name, engine->ug_name);
219 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id));
220 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name));
221 /* dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name)); */
223 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
226 if (NULL != engine->engine_id) free(engine->engine_id);
227 if (NULL != engine->engine_name) free(engine->engine_name);
228 if (NULL != engine->ug_name) free(engine->ug_name);
232 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
235 engine_list = g_slist_remove_link(engine_list, iter);
237 iter = g_slist_nth(engine_list, 0);
240 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
242 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
245 if (!dbus_connection_send(conn, reply, NULL)) {
246 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
249 dbus_connection_flush(conn);
250 dbus_message_unref(reply);
252 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
255 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
256 SLOG(LOG_DEBUG, TAG_STTD, " ");
261 int sttd_dbus_server_set_current_engine(DBusConnection* conn, DBusMessage* msg)
264 dbus_error_init(&err);
268 bool silence_supported = false;
269 int ret = STTD_ERROR_OPERATION_FAILED;
271 dbus_message_get_args(msg, &err,
272 DBUS_TYPE_INT32, &uid,
273 DBUS_TYPE_STRING, &engine_id,
276 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set current engine");
278 if (dbus_error_is_set(&err)) {
279 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set current engine : get arguments error (%s)", err.message);
280 dbus_error_free(&err);
281 ret = STTD_ERROR_OPERATION_FAILED;
283 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set current engine : uid(%d)", uid);
284 ret = sttd_server_set_current_engine(uid, engine_id, &silence_supported);
288 reply = dbus_message_new_method_return(msg);
291 dbus_message_append_args(reply,
292 DBUS_TYPE_INT32, &ret,
293 DBUS_TYPE_INT32, &silence_supported,
297 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d)",
298 ret, silence_supported);
300 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
303 if (!dbus_connection_send(conn, reply, NULL)) {
304 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
307 dbus_connection_flush(conn);
308 dbus_message_unref(reply);
310 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
313 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
314 SLOG(LOG_DEBUG, TAG_STTD, " ");
319 int sttd_dbus_server_get_current_engine(DBusConnection* conn, DBusMessage* msg)
322 dbus_error_init(&err);
326 int ret = STTD_ERROR_OPERATION_FAILED;
328 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
330 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get current engine");
332 if (dbus_error_is_set(&err)) {
333 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get current engine : get arguments error (%s)", err.message);
334 dbus_error_free(&err);
335 ret = STTD_ERROR_OPERATION_FAILED;
337 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get current engine : uid(%d)", uid);
338 ret = sttd_server_get_current_engine(uid, &engine);
342 reply = dbus_message_new_method_return(msg);
346 /* Append result and language */
347 dbus_message_append_args( reply,
348 DBUS_TYPE_INT32, &ret,
349 DBUS_TYPE_STRING, &engine,
352 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
354 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
356 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
359 if (!dbus_connection_send(conn, reply, NULL)) {
360 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
363 dbus_connection_flush(conn);
364 dbus_message_unref(reply);
366 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
369 if (NULL != engine) free(engine);
371 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
372 SLOG(LOG_DEBUG, TAG_STTD, " ");
377 int sttd_dbus_server_check_app_agreed(DBusConnection* conn, DBusMessage* msg)
380 dbus_error_init(&err);
384 int ret = STTD_ERROR_OPERATION_FAILED;
385 bool available = false;
387 dbus_message_get_args(msg, &err,
388 DBUS_TYPE_INT32, &uid,
389 DBUS_TYPE_STRING, &appid,
392 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Is engine available");
394 if (dbus_error_is_set(&err)) {
395 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt Is engine available : get arguments error (%s)", err.message);
396 dbus_error_free(&err);
397 ret = STTD_ERROR_OPERATION_FAILED;
399 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt Is engine available : uid(%d)", uid);
400 ret = sttd_server_check_agg_agreed(uid, appid, &available);
404 reply = dbus_message_new_method_return(msg);
407 /* Append result and language */
408 dbus_message_append_args(reply,
409 DBUS_TYPE_INT32, &ret,
410 DBUS_TYPE_INT32, &available,
414 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
416 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
419 if (!dbus_connection_send(conn, reply, NULL)) {
420 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
423 dbus_connection_flush(conn);
424 dbus_message_unref(reply);
426 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
429 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
430 SLOG(LOG_DEBUG, TAG_STTD, " ");
435 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
438 dbus_error_init(&err);
441 int ret = STTD_ERROR_OPERATION_FAILED;
442 GSList* lang_list = NULL;
444 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
446 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
448 if (dbus_error_is_set(&err)) {
449 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
450 dbus_error_free(&err);
451 ret = STTD_ERROR_OPERATION_FAILED;
453 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%d)", uid);
454 ret = sttd_server_get_supported_languages(uid, &lang_list);
458 reply = dbus_message_new_method_return(msg);
461 DBusMessageIter args;
462 dbus_message_iter_init_append(reply, &args);
465 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
468 /* Append language size */
469 int size = g_slist_length(lang_list);
471 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
472 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
473 ret = STTD_ERROR_OPERATION_FAILED;
478 iter = g_slist_nth(lang_list, 0);
480 while (NULL != iter) {
481 temp_lang = iter->data;
483 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang) );
485 if (NULL != temp_lang)
488 lang_list = g_slist_remove_link(lang_list, iter);
490 iter = g_slist_nth(lang_list, 0);
493 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
495 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
498 if (!dbus_connection_send(conn, reply, NULL)) {
499 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
502 dbus_connection_flush(conn);
503 dbus_message_unref(reply);
505 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
508 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
509 SLOG(LOG_DEBUG, TAG_STTD, " ");
514 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
517 dbus_error_init(&err);
521 int ret = STTD_ERROR_OPERATION_FAILED;
523 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
525 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
527 if (dbus_error_is_set(&err)) {
528 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
529 dbus_error_free(&err);
530 ret = STTD_ERROR_OPERATION_FAILED;
532 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%d)", uid);
533 ret = sttd_server_get_current_langauage(uid, &lang);
537 reply = dbus_message_new_method_return(msg);
541 /* Append result and language */
542 dbus_message_append_args( reply,
543 DBUS_TYPE_INT32, &ret,
544 DBUS_TYPE_STRING, &lang,
547 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
549 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
551 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
554 if (!dbus_connection_send(conn, reply, NULL)) {
555 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
558 dbus_connection_flush(conn);
559 dbus_message_unref(reply);
561 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
564 if (NULL != lang) free(lang);
566 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
567 SLOG(LOG_DEBUG, TAG_STTD, " ");
572 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
575 dbus_error_init(&err);
580 int ret = STTD_ERROR_OPERATION_FAILED;
582 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
584 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
586 if (dbus_error_is_set(&err)) {
587 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
588 dbus_error_free(&err);
589 ret = STTD_ERROR_OPERATION_FAILED;
591 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%d)", uid);
592 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
596 reply = dbus_message_new_method_return(msg);
599 /* Append result and language */
600 dbus_message_append_args(reply,
601 DBUS_TYPE_INT32, &ret,
602 DBUS_TYPE_INT32, &support,
606 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
608 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
611 if (!dbus_connection_send(conn, reply, NULL)) {
612 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
615 dbus_connection_flush(conn);
616 dbus_message_unref(reply);
618 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
621 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
622 SLOG(LOG_DEBUG, TAG_STTD, " ");
627 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
630 dbus_error_init(&err);
634 int ret = STTD_ERROR_OPERATION_FAILED;
636 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
638 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
640 if (dbus_error_is_set(&err)) {
641 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
642 dbus_error_free(&err);
643 ret = STTD_ERROR_OPERATION_FAILED;
645 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%d) file(%s)", uid, file);
646 ret = sttd_server_set_start_sound(uid, file);
650 reply = dbus_message_new_method_return(msg);
653 /* Append result and language */
654 dbus_message_append_args(reply,
655 DBUS_TYPE_INT32, &ret,
659 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
661 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
664 if (!dbus_connection_send(conn, reply, NULL)) {
665 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
668 dbus_connection_flush(conn);
669 dbus_message_unref(reply);
671 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
674 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
675 SLOG(LOG_DEBUG, TAG_STTD, " ");
680 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
683 dbus_error_init(&err);
686 int ret = STTD_ERROR_OPERATION_FAILED;
688 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
690 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
692 if (dbus_error_is_set(&err)) {
693 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
694 dbus_error_free(&err);
695 ret = STTD_ERROR_OPERATION_FAILED;
697 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%d)", uid);
698 ret = sttd_server_set_start_sound(uid, NULL);
702 reply = dbus_message_new_method_return(msg);
705 /* Append result and language */
706 dbus_message_append_args(reply,
707 DBUS_TYPE_INT32, &ret,
711 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
713 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
716 if (!dbus_connection_send(conn, reply, NULL)) {
717 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
720 dbus_connection_flush(conn);
721 dbus_message_unref(reply);
723 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
726 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
727 SLOG(LOG_DEBUG, TAG_STTD, " ");
732 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
735 dbus_error_init(&err);
739 int ret = STTD_ERROR_OPERATION_FAILED;
741 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
743 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
745 if (dbus_error_is_set(&err)) {
746 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
747 dbus_error_free(&err);
748 ret = STTD_ERROR_OPERATION_FAILED;
750 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%d) file(%s)", uid, file);
751 ret = sttd_server_set_stop_sound(uid, file);
755 reply = dbus_message_new_method_return(msg);
758 /* Append result and language */
759 dbus_message_append_args(reply,
760 DBUS_TYPE_INT32, &ret,
764 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
766 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
769 if (!dbus_connection_send(conn, reply, NULL)) {
770 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
773 dbus_connection_flush(conn);
774 dbus_message_unref(reply);
776 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
779 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
780 SLOG(LOG_DEBUG, TAG_STTD, " ");
785 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
788 dbus_error_init(&err);
791 int ret = STTD_ERROR_OPERATION_FAILED;
793 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
795 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
797 if (dbus_error_is_set(&err)) {
798 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
799 dbus_error_free(&err);
800 ret = STTD_ERROR_OPERATION_FAILED;
802 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%d)", uid);
803 ret = sttd_server_set_stop_sound(uid, NULL);
807 reply = dbus_message_new_method_return(msg);
810 /* Append result and language */
811 dbus_message_append_args(reply,
812 DBUS_TYPE_INT32, &ret,
816 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
818 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
821 if (!dbus_connection_send(conn, reply, NULL)) {
822 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
825 dbus_connection_flush(conn);
826 dbus_message_unref(reply);
828 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
831 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
832 SLOG(LOG_DEBUG, TAG_STTD, " ");
837 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
840 dbus_error_init(&err);
847 int ret = STTD_ERROR_OPERATION_FAILED;
849 dbus_message_get_args(msg, &err,
850 DBUS_TYPE_INT32, &uid,
851 DBUS_TYPE_STRING, &lang,
852 DBUS_TYPE_STRING, &type,
853 DBUS_TYPE_INT32, &silence,
854 DBUS_TYPE_STRING, &appid,
857 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
859 if (dbus_error_is_set(&err)) {
860 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
861 dbus_error_free(&err);
862 ret = STTD_ERROR_OPERATION_FAILED;
864 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%d), lang(%s), type(%s), silence(%d) appid(%s)"
865 , uid, lang, type, silence, appid);
866 ret = sttd_server_start(uid, lang, type, silence, appid);
870 reply = dbus_message_new_method_return(msg);
873 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
876 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
878 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
881 if (!dbus_connection_send(conn, reply, NULL)) {
882 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
885 dbus_connection_flush(conn);
886 dbus_message_unref(reply);
888 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
891 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
892 SLOG(LOG_DEBUG, TAG_STTD, " ");
897 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
900 dbus_error_init(&err);
903 int ret = STTD_ERROR_OPERATION_FAILED;
904 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
906 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
908 if (dbus_error_is_set(&err)) {
909 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
910 dbus_error_free(&err);
911 ret = STTD_ERROR_OPERATION_FAILED;
913 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%d)", uid);
914 ret = sttd_server_stop(uid);
918 reply = dbus_message_new_method_return(msg);
921 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
924 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
926 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
929 if (!dbus_connection_send(conn, reply, NULL)) {
930 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
933 dbus_connection_flush(conn);
934 dbus_message_unref(reply);
936 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
939 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
940 SLOG(LOG_DEBUG, TAG_STTD, " ");
945 int sttd_dbus_server_cancel(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_INT32, &uid, DBUS_TYPE_INVALID);
954 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
956 if (dbus_error_is_set(&err)) {
957 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
958 dbus_error_free(&err);
959 ret = STTD_ERROR_OPERATION_FAILED;
961 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%d)", uid);
962 ret = sttd_server_cancel(uid);
966 reply = dbus_message_new_method_return(msg);
969 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
972 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
974 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
977 if (!dbus_connection_send(conn, reply, NULL)) {
978 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
981 dbus_connection_flush(conn);
982 dbus_message_unref(reply);
984 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
987 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
988 SLOG(LOG_DEBUG, TAG_STTD, " ");