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_INT32, &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(%d)", pid , uid);
74 ret = sttd_server_initialize(pid, uid, &silence_supported, &credential_needed);
78 reply = dbus_message_new_method_return(msg);
81 dbus_message_append_args(reply,
82 DBUS_TYPE_INT32, &ret,
83 DBUS_TYPE_INT32, &silence_supported,
84 DBUS_TYPE_INT32, &credential_needed,
88 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
89 ret, silence_supported, credential_needed);
91 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
94 if (!dbus_connection_send(conn, reply, NULL)) {
95 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
98 dbus_connection_flush(conn);
99 dbus_message_unref(reply);
101 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
104 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
105 SLOG(LOG_DEBUG, TAG_STTD, " ");
110 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
113 dbus_error_init(&err);
116 int ret = STTD_ERROR_OPERATION_FAILED;
117 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
119 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
121 if (dbus_error_is_set(&err)) {
122 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
123 dbus_error_free(&err);
124 ret = STTD_ERROR_OPERATION_FAILED;
126 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%d)", uid);
127 ret = sttd_server_finalize(uid);
132 reply = dbus_message_new_method_return(msg);
135 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
138 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
140 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
143 if (!dbus_connection_send(conn, reply, NULL)) {
144 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
147 dbus_connection_flush(conn);
148 dbus_message_unref(reply);
150 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
153 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
154 SLOG(LOG_DEBUG, TAG_STTD, " ");
159 int sttd_dbus_server_get_support_engines(DBusConnection* conn, DBusMessage* msg)
162 dbus_error_init(&err);
165 int ret = STTD_ERROR_OPERATION_FAILED;
166 GSList* engine_list = NULL;
168 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
170 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported engines");
172 if (dbus_error_is_set(&err)) {
173 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported engines : get arguments error (%s)", err.message);
174 dbus_error_free(&err);
175 ret = STTD_ERROR_OPERATION_FAILED;
177 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported engines : uid(%d)", uid);
178 ret = sttd_server_get_supported_engines(uid, &engine_list);
182 reply = dbus_message_new_method_return(msg);
185 DBusMessageIter args;
187 dbus_message_iter_init_append(reply, &args);
190 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
194 int size = g_slist_length(engine_list);
195 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
196 ret = STTD_ERROR_OPERATION_FAILED;
201 iter = g_slist_nth(engine_list, 0);
203 while (NULL != iter) {
206 if (NULL != engine) {
207 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
208 SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
209 engine->engine_id, engine->engine_name, engine->ug_name);
211 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id));
212 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name));
213 /* dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name)); */
215 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
218 if (NULL != engine->engine_id) free(engine->engine_id);
219 if (NULL != engine->engine_name) free(engine->engine_name);
220 if (NULL != engine->ug_name) free(engine->ug_name);
224 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
227 engine_list = g_slist_remove_link(engine_list, iter);
229 iter = g_slist_nth(engine_list, 0);
232 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
234 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
237 if (!dbus_connection_send(conn, reply, NULL)) {
238 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
241 dbus_connection_flush(conn);
242 dbus_message_unref(reply);
244 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
247 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
248 SLOG(LOG_DEBUG, TAG_STTD, " ");
253 int sttd_dbus_server_set_current_engine(DBusConnection* conn, DBusMessage* msg)
256 dbus_error_init(&err);
260 bool silence_supported = false;
261 bool credential_needed = false;
262 int ret = STTD_ERROR_OPERATION_FAILED;
264 dbus_message_get_args(msg, &err,
265 DBUS_TYPE_INT32, &uid,
266 DBUS_TYPE_STRING, &engine_id,
269 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set current engine");
271 if (dbus_error_is_set(&err)) {
272 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set current engine : get arguments error (%s)", err.message);
273 dbus_error_free(&err);
274 ret = STTD_ERROR_OPERATION_FAILED;
276 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set current engine : uid(%d), engine_id(%s)", uid, (NULL == engine_id) ? "NULL" : engine_id);
277 ret = sttd_server_set_current_engine(uid, engine_id, &silence_supported, &credential_needed);
281 reply = dbus_message_new_method_return(msg);
284 dbus_message_append_args(reply,
285 DBUS_TYPE_INT32, &ret,
286 DBUS_TYPE_INT32, &silence_supported,
287 DBUS_TYPE_INT32, &credential_needed,
291 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), credential(%d)",
292 ret, silence_supported, credential_needed);
294 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
297 if (!dbus_connection_send(conn, reply, NULL)) {
298 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
301 dbus_connection_flush(conn);
302 dbus_message_unref(reply);
304 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
307 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
308 SLOG(LOG_DEBUG, TAG_STTD, " ");
313 int sttd_dbus_server_get_current_engine(DBusConnection* conn, DBusMessage* msg)
316 dbus_error_init(&err);
320 int ret = STTD_ERROR_OPERATION_FAILED;
322 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
324 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get current engine");
326 if (dbus_error_is_set(&err)) {
327 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get current engine : get arguments error (%s)", err.message);
328 dbus_error_free(&err);
329 ret = STTD_ERROR_OPERATION_FAILED;
331 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get current engine : uid(%d)", uid);
332 ret = sttd_server_get_current_engine(uid, &engine);
336 reply = dbus_message_new_method_return(msg);
340 /* Append result and language */
341 dbus_message_append_args(reply,
342 DBUS_TYPE_INT32, &ret,
343 DBUS_TYPE_STRING, &engine,
346 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
348 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
350 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
353 if (!dbus_connection_send(conn, reply, NULL)) {
354 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
357 dbus_connection_flush(conn);
358 dbus_message_unref(reply);
360 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
363 if (NULL != engine) free(engine);
365 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
366 SLOG(LOG_DEBUG, TAG_STTD, " ");
371 int sttd_dbus_server_check_app_agreed(DBusConnection* conn, DBusMessage* msg)
374 dbus_error_init(&err);
378 int ret = STTD_ERROR_OPERATION_FAILED;
379 bool available = false;
381 dbus_message_get_args(msg, &err,
382 DBUS_TYPE_INT32, &uid,
383 DBUS_TYPE_STRING, &appid,
386 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Is engine available");
388 if (dbus_error_is_set(&err)) {
389 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt Is engine available : get arguments error (%s)", err.message);
390 dbus_error_free(&err);
391 ret = STTD_ERROR_OPERATION_FAILED;
393 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt Is engine available : uid(%d)", uid);
394 ret = sttd_server_check_app_agreed(uid, appid, &available);
398 reply = dbus_message_new_method_return(msg);
401 /* Append result and language */
402 dbus_message_append_args(reply,
403 DBUS_TYPE_INT32, &ret,
404 DBUS_TYPE_INT32, &available,
408 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
410 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
413 if (!dbus_connection_send(conn, reply, NULL)) {
414 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
417 dbus_connection_flush(conn);
418 dbus_message_unref(reply);
420 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
423 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
424 SLOG(LOG_DEBUG, TAG_STTD, " ");
429 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
432 dbus_error_init(&err);
435 int ret = STTD_ERROR_OPERATION_FAILED;
436 GSList* lang_list = NULL;
438 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
440 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
442 if (dbus_error_is_set(&err)) {
443 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
444 dbus_error_free(&err);
445 ret = STTD_ERROR_OPERATION_FAILED;
447 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%d)", uid);
448 ret = sttd_server_get_supported_languages(uid, &lang_list);
452 reply = dbus_message_new_method_return(msg);
455 DBusMessageIter args;
456 dbus_message_iter_init_append(reply, &args);
459 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
462 /* Append language size */
463 int size = g_slist_length(lang_list);
465 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
466 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
467 ret = STTD_ERROR_OPERATION_FAILED;
472 iter = g_slist_nth(lang_list, 0);
474 while (NULL != iter) {
475 temp_lang = iter->data;
477 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang));
479 if (NULL != temp_lang)
482 lang_list = g_slist_remove_link(lang_list, iter);
484 iter = g_slist_nth(lang_list, 0);
487 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
489 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
492 if (!dbus_connection_send(conn, reply, NULL)) {
493 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
496 dbus_connection_flush(conn);
497 dbus_message_unref(reply);
499 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
502 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
503 SLOG(LOG_DEBUG, TAG_STTD, " ");
508 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
511 dbus_error_init(&err);
515 int ret = STTD_ERROR_OPERATION_FAILED;
517 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
519 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
521 if (dbus_error_is_set(&err)) {
522 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
523 dbus_error_free(&err);
524 ret = STTD_ERROR_OPERATION_FAILED;
526 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%d)", uid);
527 ret = sttd_server_get_current_langauage(uid, &lang);
531 reply = dbus_message_new_method_return(msg);
535 /* Append result and language */
536 dbus_message_append_args(reply,
537 DBUS_TYPE_INT32, &ret,
538 DBUS_TYPE_STRING, &lang,
541 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
543 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
545 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
548 if (!dbus_connection_send(conn, reply, NULL)) {
549 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
552 dbus_connection_flush(conn);
553 dbus_message_unref(reply);
555 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
558 if (NULL != lang) free(lang);
560 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
561 SLOG(LOG_DEBUG, TAG_STTD, " ");
566 int sttd_dbus_server_set_private_data(DBusConnection* conn, DBusMessage* msg)
569 dbus_error_init(&err);
575 dbus_message_get_args(msg, &err,
576 DBUS_TYPE_INT32, &uid,
577 DBUS_TYPE_STRING, &key,
578 DBUS_TYPE_STRING, &data,
581 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Set private data");
583 if (dbus_error_is_set(&err)) {
584 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set private data : get arguments error (%s)", err.message);
585 dbus_error_free(&err);
586 ret = STTD_ERROR_OPERATION_FAILED;
588 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set private data : uid(%d)", uid);
589 ret = sttd_server_set_private_data(uid, key, data);
593 reply = dbus_message_new_method_return(msg);
596 dbus_message_append_args(reply,
597 DBUS_TYPE_INT32, &ret,
601 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
603 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
606 if (!dbus_connection_send(conn, reply, NULL)) {
607 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to send reply");
610 dbus_connection_flush(conn);
611 dbus_message_unref(reply);
613 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
616 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
617 SLOG(LOG_DEBUG, TAG_STTD, " ");
622 int sttd_dbus_server_get_private_data(DBusConnection* conn, DBusMessage* msg)
625 dbus_error_init(&err);
632 dbus_message_get_args(msg, &err,
633 DBUS_TYPE_INT32, &uid,
634 DBUS_TYPE_STRING, &key,
637 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get private data");
639 if (dbus_error_is_set(&err)) {
640 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get private data : get arguments error (%s)", err.message);
641 dbus_error_free(&err);
642 ret = STTD_ERROR_OPERATION_FAILED;
644 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get private data : uid(%d), key(%s)", uid, (NULL == key) ? "NULL" : key);
645 ret = sttd_server_get_private_data(uid, key, &data);
649 reply = dbus_message_new_method_return(msg);
652 /* Append result and private data */
653 dbus_message_append_args(reply,
654 DBUS_TYPE_INT32, &ret,
655 DBUS_TYPE_STRING, &data,
659 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), data(%s)", ret, (NULL == data) ? "NULL" : data);
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] Fail to send reply");
668 dbus_connection_flush(conn);
669 dbus_message_unref(reply);
671 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
674 if (NULL != data) free(data);
676 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
677 SLOG(LOG_DEBUG, TAG_STTD, " ");
682 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
685 dbus_error_init(&err);
690 int ret = STTD_ERROR_OPERATION_FAILED;
692 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
694 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
696 if (dbus_error_is_set(&err)) {
697 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
698 dbus_error_free(&err);
699 ret = STTD_ERROR_OPERATION_FAILED;
701 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%d)", uid);
702 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
706 reply = dbus_message_new_method_return(msg);
709 /* Append result and language */
710 dbus_message_append_args(reply,
711 DBUS_TYPE_INT32, &ret,
712 DBUS_TYPE_INT32, &support,
716 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
718 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
721 if (!dbus_connection_send(conn, reply, NULL)) {
722 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
725 dbus_connection_flush(conn);
726 dbus_message_unref(reply);
728 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
731 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
732 SLOG(LOG_DEBUG, TAG_STTD, " ");
737 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
740 dbus_error_init(&err);
744 int ret = STTD_ERROR_OPERATION_FAILED;
746 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
748 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
750 if (dbus_error_is_set(&err)) {
751 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
752 dbus_error_free(&err);
753 ret = STTD_ERROR_OPERATION_FAILED;
755 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%d) file(%s)", uid, file);
756 ret = sttd_server_set_start_sound(uid, file);
760 reply = dbus_message_new_method_return(msg);
763 /* Append result and language */
764 dbus_message_append_args(reply,
765 DBUS_TYPE_INT32, &ret,
769 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
771 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
774 if (!dbus_connection_send(conn, reply, NULL)) {
775 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
778 dbus_connection_flush(conn);
779 dbus_message_unref(reply);
781 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
784 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
785 SLOG(LOG_DEBUG, TAG_STTD, " ");
790 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
793 dbus_error_init(&err);
796 int ret = STTD_ERROR_OPERATION_FAILED;
798 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
800 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
802 if (dbus_error_is_set(&err)) {
803 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
804 dbus_error_free(&err);
805 ret = STTD_ERROR_OPERATION_FAILED;
807 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%d)", uid);
808 ret = sttd_server_set_start_sound(uid, NULL);
812 reply = dbus_message_new_method_return(msg);
815 /* Append result and language */
816 dbus_message_append_args(reply,
817 DBUS_TYPE_INT32, &ret,
821 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
823 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
826 if (!dbus_connection_send(conn, reply, NULL)) {
827 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
830 dbus_connection_flush(conn);
831 dbus_message_unref(reply);
833 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
836 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
837 SLOG(LOG_DEBUG, TAG_STTD, " ");
842 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
845 dbus_error_init(&err);
849 int ret = STTD_ERROR_OPERATION_FAILED;
851 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
853 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
855 if (dbus_error_is_set(&err)) {
856 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
857 dbus_error_free(&err);
858 ret = STTD_ERROR_OPERATION_FAILED;
860 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%d) file(%s)", uid, file);
861 ret = sttd_server_set_stop_sound(uid, file);
865 reply = dbus_message_new_method_return(msg);
868 /* Append result and language */
869 dbus_message_append_args(reply,
870 DBUS_TYPE_INT32, &ret,
874 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
876 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
879 if (!dbus_connection_send(conn, reply, NULL)) {
880 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
883 dbus_connection_flush(conn);
884 dbus_message_unref(reply);
886 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
889 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
890 SLOG(LOG_DEBUG, TAG_STTD, " ");
895 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
898 dbus_error_init(&err);
901 int ret = STTD_ERROR_OPERATION_FAILED;
903 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
905 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
907 if (dbus_error_is_set(&err)) {
908 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
909 dbus_error_free(&err);
910 ret = STTD_ERROR_OPERATION_FAILED;
912 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%d)", uid);
913 ret = sttd_server_set_stop_sound(uid, NULL);
917 reply = dbus_message_new_method_return(msg);
920 /* Append result and language */
921 dbus_message_append_args(reply,
922 DBUS_TYPE_INT32, &ret,
926 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
928 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
931 if (!dbus_connection_send(conn, reply, NULL)) {
932 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
935 dbus_connection_flush(conn);
936 dbus_message_unref(reply);
938 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
941 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
942 SLOG(LOG_DEBUG, TAG_STTD, " ");
947 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
950 dbus_error_init(&err);
958 int ret = STTD_ERROR_OPERATION_FAILED;
960 dbus_message_get_args(msg, &err,
961 DBUS_TYPE_INT32, &uid,
962 DBUS_TYPE_STRING, &lang,
963 DBUS_TYPE_STRING, &type,
964 DBUS_TYPE_INT32, &silence,
965 DBUS_TYPE_STRING, &appid,
966 DBUS_TYPE_STRING, &credential,
969 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
971 if (dbus_error_is_set(&err)) {
972 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
973 dbus_error_free(&err);
974 ret = STTD_ERROR_OPERATION_FAILED;
976 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%d), lang(%s), type(%s), silence(%d) appid(%s) credential(%s)"
977 , uid, lang, type, silence, appid, credential);
978 ret = sttd_server_start(uid, lang, type, silence, appid, credential);
982 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
984 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
985 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start")) {
986 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
992 reply = dbus_message_new_method_return(msg);
995 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
998 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1000 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1003 if (!dbus_connection_send(conn, reply, NULL)) {
1004 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1007 dbus_connection_flush(conn);
1008 dbus_message_unref(reply);
1010 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1014 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1015 SLOG(LOG_DEBUG, TAG_STTD, " ");
1020 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
1023 dbus_error_init(&err);
1026 int ret = STTD_ERROR_OPERATION_FAILED;
1027 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
1029 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
1031 if (dbus_error_is_set(&err)) {
1032 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
1033 dbus_error_free(&err);
1034 ret = STTD_ERROR_OPERATION_FAILED;
1036 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%d)", uid);
1037 ret = sttd_server_stop(uid);
1041 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1043 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1044 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to stop")) {
1045 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1050 reply = dbus_message_new_method_return(msg);
1052 if (NULL != reply) {
1053 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1056 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1058 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1061 if (!dbus_connection_send(conn, reply, NULL)) {
1062 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1065 dbus_connection_flush(conn);
1066 dbus_message_unref(reply);
1068 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1072 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1073 SLOG(LOG_DEBUG, TAG_STTD, " ");
1078 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
1081 dbus_error_init(&err);
1084 int ret = STTD_ERROR_OPERATION_FAILED;
1085 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
1087 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
1089 if (dbus_error_is_set(&err)) {
1090 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
1091 dbus_error_free(&err);
1092 ret = STTD_ERROR_OPERATION_FAILED;
1094 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%d)", uid);
1095 ret = sttd_server_cancel(uid);
1099 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1101 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1102 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
1103 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1108 reply = dbus_message_new_method_return(msg);
1110 if (NULL != reply) {
1111 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1114 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1116 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1119 if (!dbus_connection_send(conn, reply, NULL)) {
1120 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1123 dbus_connection_flush(conn);
1124 dbus_message_unref(reply);
1126 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1129 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1130 SLOG(LOG_DEBUG, TAG_STTD, " ");