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);
574 int ret = STTD_ERROR_OPERATION_FAILED;
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] Out Of Memory!");
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);
630 int ret = STTD_ERROR_OPERATION_FAILED;
631 dbus_message_get_args(msg, &err,
632 DBUS_TYPE_INT32, &uid,
633 DBUS_TYPE_STRING, &key,
636 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get private data");
638 if (dbus_error_is_set(&err)) {
639 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get private data : get arguments error (%s)", err.message);
640 dbus_error_free(&err);
641 ret = STTD_ERROR_OPERATION_FAILED;
643 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get private data : uid(%d), key(%s)", uid, (NULL == key) ? "NULL" : key);
644 ret = sttd_server_get_private_data(uid, key, &data);
648 reply = dbus_message_new_method_return(msg);
651 /* Append result and private data */
652 dbus_message_append_args(reply,
653 DBUS_TYPE_INT32, &ret,
654 DBUS_TYPE_STRING, &data,
658 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), data(%s)", ret, (NULL == data) ? "NULL" : data);
660 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
663 if (!dbus_connection_send(conn, reply, NULL)) {
664 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
667 dbus_connection_flush(conn);
668 dbus_message_unref(reply);
670 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
673 if (NULL != data) free(data);
675 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
676 SLOG(LOG_DEBUG, TAG_STTD, " ");
681 int sttd_dbus_server_is_recognition_type_supported(DBusConnection* conn, DBusMessage* msg)
684 dbus_error_init(&err);
689 int ret = STTD_ERROR_OPERATION_FAILED;
691 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &type, DBUS_TYPE_INVALID);
693 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is recognition type supported");
695 if (dbus_error_is_set(&err)) {
696 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is recognition type supported : get arguments error (%s)", err.message);
697 dbus_error_free(&err);
698 ret = STTD_ERROR_OPERATION_FAILED;
700 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is recognition type supported : uid(%d)", uid);
701 ret = sttd_server_is_recognition_type_supported(uid, type, &support);
705 reply = dbus_message_new_method_return(msg);
708 /* Append result and language */
709 dbus_message_append_args(reply,
710 DBUS_TYPE_INT32, &ret,
711 DBUS_TYPE_INT32, &support,
715 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
717 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
720 if (!dbus_connection_send(conn, reply, NULL)) {
721 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
724 dbus_connection_flush(conn);
725 dbus_message_unref(reply);
727 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
730 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
731 SLOG(LOG_DEBUG, TAG_STTD, " ");
736 int sttd_dbus_server_set_start_sound(DBusConnection* conn, DBusMessage* msg)
739 dbus_error_init(&err);
743 int ret = STTD_ERROR_OPERATION_FAILED;
745 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
747 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set start sound");
749 if (dbus_error_is_set(&err)) {
750 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set start sound : get arguments error (%s)", err.message);
751 dbus_error_free(&err);
752 ret = STTD_ERROR_OPERATION_FAILED;
754 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set start sound : uid(%d) file(%s)", uid, file);
755 ret = sttd_server_set_start_sound(uid, file);
759 reply = dbus_message_new_method_return(msg);
762 /* Append result and language */
763 dbus_message_append_args(reply,
764 DBUS_TYPE_INT32, &ret,
768 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
770 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
773 if (!dbus_connection_send(conn, reply, NULL)) {
774 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
777 dbus_connection_flush(conn);
778 dbus_message_unref(reply);
780 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
783 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
784 SLOG(LOG_DEBUG, TAG_STTD, " ");
789 int sttd_dbus_server_unset_start_sound(DBusConnection* conn, DBusMessage* msg)
792 dbus_error_init(&err);
795 int ret = STTD_ERROR_OPERATION_FAILED;
797 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
799 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset start sound");
801 if (dbus_error_is_set(&err)) {
802 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset start sound : get arguments error (%s)", err.message);
803 dbus_error_free(&err);
804 ret = STTD_ERROR_OPERATION_FAILED;
806 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset start sound : uid(%d)", uid);
807 ret = sttd_server_set_start_sound(uid, NULL);
811 reply = dbus_message_new_method_return(msg);
814 /* Append result and language */
815 dbus_message_append_args(reply,
816 DBUS_TYPE_INT32, &ret,
820 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
822 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
825 if (!dbus_connection_send(conn, reply, NULL)) {
826 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
829 dbus_connection_flush(conn);
830 dbus_message_unref(reply);
832 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
835 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
836 SLOG(LOG_DEBUG, TAG_STTD, " ");
841 int sttd_dbus_server_set_stop_sound(DBusConnection* conn, DBusMessage* msg)
844 dbus_error_init(&err);
848 int ret = STTD_ERROR_OPERATION_FAILED;
850 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_STRING, &file, DBUS_TYPE_INVALID);
852 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT set stop sound");
854 if (dbus_error_is_set(&err)) {
855 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt set stop sound : get arguments error (%s)", err.message);
856 dbus_error_free(&err);
857 ret = STTD_ERROR_OPERATION_FAILED;
859 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt set stop sound : uid(%d) file(%s)", uid, file);
860 ret = sttd_server_set_stop_sound(uid, file);
864 reply = dbus_message_new_method_return(msg);
867 /* Append result and language */
868 dbus_message_append_args(reply,
869 DBUS_TYPE_INT32, &ret,
873 SECURE_SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
875 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
878 if (!dbus_connection_send(conn, reply, NULL)) {
879 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
882 dbus_connection_flush(conn);
883 dbus_message_unref(reply);
885 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
888 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
889 SLOG(LOG_DEBUG, TAG_STTD, " ");
894 int sttd_dbus_server_unset_stop_sound(DBusConnection* conn, DBusMessage* msg)
897 dbus_error_init(&err);
900 int ret = STTD_ERROR_OPERATION_FAILED;
902 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
904 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT unset stop sound");
906 if (dbus_error_is_set(&err)) {
907 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt unset stop sound : get arguments error (%s)", err.message);
908 dbus_error_free(&err);
909 ret = STTD_ERROR_OPERATION_FAILED;
911 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt unset stop sound : uid(%d)", uid);
912 ret = sttd_server_set_stop_sound(uid, NULL);
916 reply = dbus_message_new_method_return(msg);
919 /* Append result and language */
920 dbus_message_append_args(reply,
921 DBUS_TYPE_INT32, &ret,
925 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
927 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
930 if (!dbus_connection_send(conn, reply, NULL)) {
931 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
934 dbus_connection_flush(conn);
935 dbus_message_unref(reply);
937 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
940 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
941 SLOG(LOG_DEBUG, TAG_STTD, " ");
946 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
949 dbus_error_init(&err);
957 int ret = STTD_ERROR_OPERATION_FAILED;
959 dbus_message_get_args(msg, &err,
960 DBUS_TYPE_INT32, &uid,
961 DBUS_TYPE_STRING, &lang,
962 DBUS_TYPE_STRING, &type,
963 DBUS_TYPE_INT32, &silence,
964 DBUS_TYPE_STRING, &appid,
965 DBUS_TYPE_STRING, &credential,
968 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
970 if (dbus_error_is_set(&err)) {
971 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
972 dbus_error_free(&err);
973 ret = STTD_ERROR_OPERATION_FAILED;
975 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%d), lang(%s), type(%s), silence(%d) appid(%s) credential(%s)"
976 , uid, lang, type, silence, appid, credential);
977 ret = sttd_server_start(uid, lang, type, silence, appid, credential);
981 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
983 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
984 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to start")) {
985 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
991 reply = dbus_message_new_method_return(msg);
994 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
997 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
999 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1002 if (!dbus_connection_send(conn, reply, NULL)) {
1003 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1006 dbus_connection_flush(conn);
1007 dbus_message_unref(reply);
1009 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1013 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1014 SLOG(LOG_DEBUG, TAG_STTD, " ");
1019 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
1022 dbus_error_init(&err);
1025 int ret = STTD_ERROR_OPERATION_FAILED;
1026 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
1028 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
1030 if (dbus_error_is_set(&err)) {
1031 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
1032 dbus_error_free(&err);
1033 ret = STTD_ERROR_OPERATION_FAILED;
1035 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%d)", uid);
1036 ret = sttd_server_stop(uid);
1040 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1042 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1043 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to stop")) {
1044 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1049 reply = dbus_message_new_method_return(msg);
1051 if (NULL != reply) {
1052 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1055 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1057 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1060 if (!dbus_connection_send(conn, reply, NULL)) {
1061 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1064 dbus_connection_flush(conn);
1065 dbus_message_unref(reply);
1067 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1071 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1072 SLOG(LOG_DEBUG, TAG_STTD, " ");
1077 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
1080 dbus_error_init(&err);
1083 int ret = STTD_ERROR_OPERATION_FAILED;
1084 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
1086 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
1088 if (dbus_error_is_set(&err)) {
1089 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
1090 dbus_error_free(&err);
1091 ret = STTD_ERROR_OPERATION_FAILED;
1093 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%d)", uid);
1094 ret = sttd_server_cancel(uid);
1098 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1100 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1101 if (0 != sttdc_send_error_signal(uid, ret, "[ERROR] Fail to cancel")) {
1102 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Fail to send error signal");
1107 reply = dbus_message_new_method_return(msg);
1109 if (NULL != reply) {
1110 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1113 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1115 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1118 if (!dbus_connection_send(conn, reply, NULL)) {
1119 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1122 dbus_connection_flush(conn);
1123 dbus_message_unref(reply);
1125 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1128 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1129 SLOG(LOG_DEBUG, TAG_STTD, " ");