2 * Copyright (c) 2012, 2013 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 (!dbus_connection_send(conn, reply, NULL)) {
35 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
38 dbus_connection_flush(conn);
39 dbus_message_unref(reply);
41 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
44 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
45 SLOG(LOG_DEBUG, TAG_STTD, " ");
50 int sttd_dbus_server_initialize(DBusConnection* conn, DBusMessage* msg)
53 dbus_error_init(&err);
57 bool silence_supported = false;
58 bool profanity_supported = false;
59 bool punctuation_supported = false;
61 int ret = STTD_ERROR_OPERATION_FAILED;
63 dbus_message_get_args(msg, &err,
64 DBUS_TYPE_INT32, &pid,
65 DBUS_TYPE_INT32, &uid,
68 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Initialize");
70 if (dbus_error_is_set(&err)) {
71 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt initialize : get arguments error (%s)", err.message);
72 dbus_error_free(&err);
73 ret = STTD_ERROR_OPERATION_FAILED;
75 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt initialize : pid(%d), uid(%d)", pid , uid);
76 ret = sttd_server_initialize(pid, uid, &silence_supported, &profanity_supported, &punctuation_supported);
80 reply = dbus_message_new_method_return(msg);
83 dbus_message_append_args(reply,
84 DBUS_TYPE_INT32, &ret,
85 DBUS_TYPE_INT32, &silence_supported,
86 DBUS_TYPE_INT32, &profanity_supported,
87 DBUS_TYPE_INT32, &punctuation_supported,
91 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), silence(%d), profanity(%d), punctuation(%d)",
92 ret, silence_supported, profanity_supported, punctuation_supported);
94 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
97 if (!dbus_connection_send(conn, reply, NULL)) {
98 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
101 dbus_connection_flush(conn);
102 dbus_message_unref(reply);
104 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
107 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
108 SLOG(LOG_DEBUG, TAG_STTD, " ");
113 int sttd_dbus_server_finalize(DBusConnection* conn, DBusMessage* msg)
116 dbus_error_init(&err);
119 int ret = STTD_ERROR_OPERATION_FAILED;
120 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
122 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Finalize");
124 if (dbus_error_is_set(&err)) {
125 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt finalize : get arguments error (%s)", err.message);
126 dbus_error_free(&err);
127 ret = STTD_ERROR_OPERATION_FAILED;
129 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt finalize : uid(%d)", uid);
130 ret = sttd_server_finalize(uid);
135 reply = dbus_message_new_method_return(msg);
138 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
141 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
143 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
146 if (!dbus_connection_send(conn, reply, NULL)) {
147 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
150 dbus_connection_flush(conn);
151 dbus_message_unref(reply);
153 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
156 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
157 SLOG(LOG_DEBUG, TAG_STTD, " ");
162 int sttd_dbus_server_get_support_lang(DBusConnection* conn, DBusMessage* msg)
165 dbus_error_init(&err);
168 int ret = STTD_ERROR_OPERATION_FAILED;
169 GList* lang_list = NULL;
171 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
173 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get supported langs");
175 if (dbus_error_is_set(&err)) {
176 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt supported langs : get arguments error (%s)", err.message);
177 dbus_error_free(&err);
178 ret = STTD_ERROR_OPERATION_FAILED;
180 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt supported langs : uid(%d)", uid);
181 ret = sttd_server_get_supported_languages(uid, &lang_list);
185 reply = dbus_message_new_method_return(msg);
188 DBusMessageIter args;
189 dbus_message_iter_init_append(reply, &args);
192 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret));
195 /* Append language size */
196 int size = g_list_length(lang_list);
198 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
199 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to append type");
200 ret = STTD_ERROR_OPERATION_FAILED;
205 iter = g_list_first(lang_list);
207 while (NULL != iter) {
208 temp_lang = iter->data;
210 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang) );
212 if (NULL != temp_lang)
215 lang_list = g_list_remove_link(lang_list, iter);
217 iter = g_list_first(lang_list);
220 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
222 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
225 if (!dbus_connection_send(conn, reply, NULL)) {
226 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
229 dbus_connection_flush(conn);
230 dbus_message_unref(reply);
232 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
235 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
236 SLOG(LOG_DEBUG, TAG_STTD, " ");
241 int sttd_dbus_server_get_default_lang(DBusConnection* conn, DBusMessage* msg)
244 dbus_error_init(&err);
248 int ret = STTD_ERROR_OPERATION_FAILED;
250 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
252 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Get default langs");
254 if (dbus_error_is_set(&err)) {
255 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt get default lang : get arguments error (%s)", err.message);
256 dbus_error_free(&err);
257 ret = STTD_ERROR_OPERATION_FAILED;
259 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt get default lang : uid(%d)", uid);
260 ret = sttd_server_get_current_langauage(uid, &lang);
264 reply = dbus_message_new_method_return(msg);
268 /* Append result and language */
269 dbus_message_append_args( reply,
270 DBUS_TYPE_INT32, &ret,
271 DBUS_TYPE_STRING, &lang,
274 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
280 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
282 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
285 if (!dbus_connection_send(conn, reply, NULL)) {
286 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
289 dbus_connection_flush(conn);
290 dbus_message_unref(reply);
292 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
295 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
296 SLOG(LOG_DEBUG, TAG_STTD, " ");
301 int sttd_dbus_server_is_partial_result_supported(DBusConnection* conn, DBusMessage* msg)
304 dbus_error_init(&err);
308 int ret = STTD_ERROR_OPERATION_FAILED;
310 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
312 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT is partial result supported");
314 if (dbus_error_is_set(&err)) {
315 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt is partial result supported : get arguments error (%s)", err.message);
316 dbus_error_free(&err);
317 ret = STTD_ERROR_OPERATION_FAILED;
319 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt is partial result supported : uid(%d)", uid);
320 ret = sttd_server_is_partial_result_supported(uid, &support);
324 reply = dbus_message_new_method_return(msg);
327 /* Append result and language */
328 dbus_message_append_args(reply,
329 DBUS_TYPE_INT32, &ret,
330 DBUS_TYPE_INT32, &support,
334 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Support(%s)", ret, support ? "true" : "false");
336 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
339 if (!dbus_connection_send(conn, reply, NULL)) {
340 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
343 dbus_connection_flush(conn);
344 dbus_message_unref(reply);
346 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
349 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
350 SLOG(LOG_DEBUG, TAG_STTD, " ");
355 int sttd_dbus_server_start(DBusConnection* conn, DBusMessage* msg)
358 dbus_error_init(&err);
366 int ret = STTD_ERROR_OPERATION_FAILED;
368 dbus_message_get_args(msg, &err,
369 DBUS_TYPE_INT32, &uid,
370 DBUS_TYPE_STRING, &lang,
371 DBUS_TYPE_STRING, &type,
372 DBUS_TYPE_INT32, &profanity,
373 DBUS_TYPE_INT32, &punctuation,
374 DBUS_TYPE_INT32, &silence,
377 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start");
379 if (dbus_error_is_set(&err)) {
380 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start : get arguments error (%s)", err.message);
381 dbus_error_free(&err);
382 ret = STTD_ERROR_OPERATION_FAILED;
384 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start : uid(%d), lang(%s), type(%s), profanity(%d), punctuation(%d), silence(%d)"
385 , uid, lang, type, profanity, punctuation, silence);
386 ret = sttd_server_start(uid, lang, type, profanity, punctuation, silence);
390 reply = dbus_message_new_method_return(msg);
393 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
396 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
398 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
401 if (!dbus_connection_send(conn, reply, NULL)) {
402 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
405 dbus_connection_flush(conn);
406 dbus_message_unref(reply);
408 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
411 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
412 SLOG(LOG_DEBUG, TAG_STTD, " ");
417 int sttd_dbus_server_stop(DBusConnection* conn, DBusMessage* msg)
420 dbus_error_init(&err);
423 int ret = STTD_ERROR_OPERATION_FAILED;
424 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
426 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Stop");
428 if (dbus_error_is_set(&err)) {
429 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt stop : get arguments error (%s)", err.message);
430 dbus_error_free(&err);
431 ret = STTD_ERROR_OPERATION_FAILED;
433 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt stop : uid(%d)", uid);
434 ret = sttd_server_stop(uid);
438 reply = dbus_message_new_method_return(msg);
441 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
444 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
446 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
449 if (!dbus_connection_send(conn, reply, NULL)) {
450 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
453 dbus_connection_flush(conn);
454 dbus_message_unref(reply);
456 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
459 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
460 SLOG(LOG_DEBUG, TAG_STTD, " ");
465 int sttd_dbus_server_cancel(DBusConnection* conn, DBusMessage* msg)
468 dbus_error_init(&err);
471 int ret = STTD_ERROR_OPERATION_FAILED;
472 dbus_message_get_args(msg, &err, DBUS_TYPE_INT32, &uid, DBUS_TYPE_INVALID);
474 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Cancel");
476 if (dbus_error_is_set(&err)) {
477 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt cancel : get arguments error (%s)", err.message);
478 dbus_error_free(&err);
479 ret = STTD_ERROR_OPERATION_FAILED;
481 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt cancel : uid(%d)", uid);
482 ret = sttd_server_cancel(uid);
486 reply = dbus_message_new_method_return(msg);
489 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
492 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
494 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
497 if (!dbus_connection_send(conn, reply, NULL)) {
498 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
501 dbus_connection_flush(conn);
502 dbus_message_unref(reply);
504 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
507 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
508 SLOG(LOG_DEBUG, TAG_STTD, " ");
513 int sttd_dbus_server_start_file_recognition(DBusConnection* conn, DBusMessage* msg)
516 dbus_error_init(&err);
524 int ret = STTD_ERROR_OPERATION_FAILED;
526 dbus_message_get_args(msg, &err,
527 DBUS_TYPE_INT32, &uid,
528 DBUS_TYPE_STRING, &filepath,
529 DBUS_TYPE_STRING, &lang,
530 DBUS_TYPE_STRING, &type,
531 DBUS_TYPE_INT32, &profanity,
532 DBUS_TYPE_INT32, &punctuation,
535 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> STT Start File Recognition");
537 if (dbus_error_is_set(&err)) {
538 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] stt start file recognition : get arguments error (%s)", err.message);
539 dbus_error_free(&err);
540 ret = STTD_ERROR_OPERATION_FAILED;
542 SLOG(LOG_DEBUG, TAG_STTD, "[IN] stt start file recognition : uid(%d), filepath(%s), lang(%s), type(%s), profanity(%d), punctuation(%d)"
543 , uid, filepath, lang, type, profanity, punctuation);
545 ret = sttd_server_start_file_recognition(uid, filepath, lang, type,profanity, punctuation);
549 reply = dbus_message_new_method_return(msg);
552 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
555 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
557 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
560 if (!dbus_connection_send(conn, reply, NULL)) {
561 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
564 dbus_connection_flush(conn);
565 dbus_message_unref(reply);
567 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
570 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
571 SLOG(LOG_DEBUG, TAG_STTD, " ");
577 * Dbus Setting-Daemon Server
580 int sttd_dbus_server_setting_initialize(DBusConnection* conn, DBusMessage* msg)
583 dbus_error_init(&err);
586 int ret = STTD_ERROR_OPERATION_FAILED;
588 dbus_message_get_args(msg, &err,
589 DBUS_TYPE_INT32, &pid,
592 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Initialize");
594 if (dbus_error_is_set(&err)) {
595 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting initializie : get arguments error (%s)", err.message);
596 dbus_error_free(&err);
597 ret = STTD_ERROR_OPERATION_FAILED;
599 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting initializie : uid(%d)", pid);
600 ret = sttd_server_setting_initialize(pid);
604 reply = dbus_message_new_method_return(msg);
607 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
610 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
612 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
615 if (!dbus_connection_send(conn, reply, NULL)) {
616 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
618 dbus_connection_flush(conn);
619 dbus_message_unref(reply);
621 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
624 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
625 SLOG(LOG_DEBUG, TAG_STTD, " ");
630 int sttd_dbus_server_setting_finalize(DBusConnection* conn, DBusMessage* msg)
633 dbus_error_init(&err);
636 int ret = STTD_ERROR_OPERATION_FAILED;
638 dbus_message_get_args(msg, &err,
639 DBUS_TYPE_INT32, &pid,
642 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Finalize");
644 if (dbus_error_is_set(&err)) {
645 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting finalize : get arguments error (%s)", err.message);
646 dbus_error_free(&err);
647 ret = STTD_ERROR_OPERATION_FAILED;
649 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting finalize : uid(%d)", pid);
650 ret = sttd_server_setting_finalize(pid);
654 reply = dbus_message_new_method_return(msg);
657 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
660 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
662 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
665 if (!dbus_connection_send(conn, reply, NULL)) {
666 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
669 dbus_connection_flush(conn);
670 dbus_message_unref(reply);
672 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
675 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
676 SLOG(LOG_DEBUG, TAG_STTD, " ");
681 int sttd_dbus_server_setting_get_engine_list(DBusConnection* conn, DBusMessage* msg)
684 dbus_error_init(&err);
687 GList* engine_list = NULL;
688 int ret = STTD_ERROR_OPERATION_FAILED;
690 dbus_message_get_args(msg, &err,
691 DBUS_TYPE_INT32, &pid,
694 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Engine List");
696 if (dbus_error_is_set(&err)) {
697 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get engine list : get arguments error (%s)", err.message);
698 dbus_error_free(&err);
699 ret = STTD_ERROR_OPERATION_FAILED;
701 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get engine list : uid(%d)", pid);
702 ret = sttd_server_setting_get_engine_list(pid, &engine_list);
706 reply = dbus_message_new_method_return(msg);
709 DBusMessageIter args;
711 dbus_message_iter_init_append(reply, &args);
714 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
718 int size = g_list_length(engine_list);
719 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
720 ret = STTD_ERROR_OPERATION_FAILED;
725 iter = g_list_first(engine_list);
727 while (NULL != iter) {
730 if (NULL != engine) {
732 if (NULL != engine->engine_id && NULL != engine->engine_name && NULL != engine->ug_name) {
733 SLOG(LOG_DEBUG, TAG_STTD, "engine id : %s, engine name : %s, ug_name, : %s",
734 engine->engine_id, engine->engine_name, engine->ug_name);
736 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_id) );
737 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->engine_name) );
738 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine->ug_name) );
740 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
743 if (NULL != engine->engine_id)
744 g_free(engine->engine_id);
745 if (NULL != engine->engine_name)
746 g_free(engine->engine_name);
747 if (NULL != engine->ug_name)
748 g_free(engine->ug_name);
752 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] Engine info is NULL");
755 engine_list = g_list_remove_link(engine_list, iter);
757 iter = g_list_first(engine_list);
760 SLOG(LOG_DEBUG, TAG_STTD, "[OUT] Result(%d)", ret);
762 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
765 if (!dbus_connection_send(conn, reply, NULL)) {
766 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
769 dbus_connection_flush(conn);
770 dbus_message_unref(reply);
772 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
775 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
776 SLOG(LOG_DEBUG, TAG_STTD, " ");
781 int sttd_dbus_server_setting_get_engine(DBusConnection* conn, DBusMessage* msg)
784 dbus_error_init(&err);
788 int ret = STTD_ERROR_OPERATION_FAILED;
790 dbus_message_get_args(msg, &err,
791 DBUS_TYPE_INT32, &pid,
794 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Engine");
796 if (dbus_error_is_set(&err)) {
797 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get engine : get arguments error (%s)", err.message);
798 dbus_error_free(&err);
799 ret = STTD_ERROR_OPERATION_FAILED;
801 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get engine : uid(%d)", pid);
802 ret = sttd_server_setting_get_engine(pid, &engine_id);
806 reply = dbus_message_new_method_return(msg);
810 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_STRING, &engine_id, DBUS_TYPE_INVALID);
812 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Engine id(%s)", ret, engine_id);
815 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
816 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
819 if (!dbus_connection_send(conn, reply, NULL)) {
820 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
823 dbus_connection_flush(conn);
824 dbus_message_unref(reply);
826 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
829 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
830 SLOG(LOG_DEBUG, TAG_STTD, " ");
835 int sttd_dbus_server_setting_set_engine(DBusConnection* conn, DBusMessage* msg)
838 dbus_error_init(&err);
842 int ret = STTD_ERROR_OPERATION_FAILED;
844 dbus_message_get_args(msg, &err,
845 DBUS_TYPE_INT32, &pid,
846 DBUS_TYPE_STRING, &engine_id,
849 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Set Engine");
851 if (dbus_error_is_set(&err)) {
852 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting set engine : get arguments error (%s)", err.message);
853 dbus_error_free(&err);
854 ret = STTD_ERROR_OPERATION_FAILED;
856 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting set engine : uid(%d)", pid);
857 ret = sttd_server_setting_set_engine(pid, engine_id);
861 reply = dbus_message_new_method_return(msg);
864 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
867 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d) ", ret);
869 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
872 if (!dbus_connection_send(conn, reply, NULL)) {
873 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
876 dbus_connection_flush(conn);
877 dbus_message_unref(reply);
879 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
882 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
883 SLOG(LOG_DEBUG, TAG_STTD, " ");
888 int sttd_dbus_server_setting_get_language_list(DBusConnection* conn, DBusMessage* msg)
891 dbus_error_init(&err);
894 GList* lang_list = NULL;
896 int ret = STTD_ERROR_OPERATION_FAILED;
898 dbus_message_get_args(msg, &err,
899 DBUS_TYPE_INT32, &pid,
902 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Language List");
904 if (dbus_error_is_set(&err)) {
905 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get language list : get arguments error (%s)", err.message);
906 dbus_error_free(&err);
907 ret = STTD_ERROR_OPERATION_FAILED;
909 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get language list : uid(%d)", pid);
910 ret = sttd_server_setting_get_lang_list(pid, &engine_id, &lang_list);
914 reply = dbus_message_new_method_return(msg);
917 DBusMessageIter args;
918 dbus_message_iter_init_append(reply, &args);
921 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &ret);
924 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine_id));
926 int size = g_list_length(lang_list);
927 SLOG(LOG_ERROR, TAG_STTD, "[OUT DEBUG] Count(%d) ", size);
930 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
931 ret = STTD_ERROR_OPERATION_FAILED;
932 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
937 iter = g_list_first(lang_list);
939 while (NULL != iter) {
940 temp_lang = iter->data;
942 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(temp_lang) );
944 if (NULL != temp_lang)
947 lang_list = g_list_remove_link(lang_list, iter);
949 iter = g_list_first(lang_list);
951 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d) ", ret);
954 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d) ", ret);
957 if (!dbus_connection_send(conn, reply, NULL)) {
958 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
961 dbus_connection_flush(conn);
962 dbus_message_unref(reply);
964 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
967 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
968 SLOG(LOG_DEBUG, TAG_STTD, " ");
973 int sttd_dbus_server_setting_get_default_language(DBusConnection* conn, DBusMessage* msg)
976 dbus_error_init(&err);
980 int ret = STTD_ERROR_OPERATION_FAILED;
982 dbus_message_get_args(msg, &err,
983 DBUS_TYPE_INT32, &pid,
986 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Default Language");
988 if (dbus_error_is_set(&err)) {
989 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get default language : get arguments error (%s)", err.message);
990 dbus_error_free(&err);
991 ret = STTD_ERROR_OPERATION_FAILED;
993 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get default language : uid(%d)", pid);
994 ret = sttd_server_setting_get_default_language(pid, &language);
998 reply = dbus_message_new_method_return(msg);
1000 if (NULL != reply) {
1002 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_STRING, &language, DBUS_TYPE_INVALID);
1003 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d), Default Language(%s)", ret, language);
1006 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1007 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1010 if (!dbus_connection_send(conn, reply, NULL)) {
1011 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1014 dbus_connection_flush(conn);
1015 dbus_message_unref(reply);
1017 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1020 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1021 SLOG(LOG_DEBUG, TAG_STTD, " ");
1026 int sttd_dbus_server_setting_set_default_language(DBusConnection* conn, DBusMessage* msg)
1029 dbus_error_init(&err);
1033 int ret = STTD_ERROR_OPERATION_FAILED;
1035 dbus_message_get_args(msg, &err,
1036 DBUS_TYPE_INT32, &pid,
1037 DBUS_TYPE_STRING, &language,
1040 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Set Default Language");
1042 if (dbus_error_is_set(&err)) {
1043 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting set default language : get arguments error (%s)", err.message);
1044 dbus_error_free(&err);
1045 ret = STTD_ERROR_OPERATION_FAILED;
1047 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting set default language : uid(%d), language(%s)", pid, language);
1048 ret = sttd_server_setting_set_default_language(pid, language);
1052 reply = dbus_message_new_method_return(msg);
1054 if (NULL != reply) {
1055 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1058 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1060 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1063 if (!dbus_connection_send(conn, reply, NULL)) {
1064 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1067 dbus_connection_flush(conn);
1068 dbus_message_unref(reply);
1070 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1073 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1074 SLOG(LOG_DEBUG, TAG_STTD, " ");
1079 int sttd_dbus_server_setting_get_profanity_filter(DBusConnection* conn, DBusMessage* msg)
1082 dbus_error_init(&err);
1086 int ret = STTD_ERROR_OPERATION_FAILED;
1088 dbus_message_get_args(msg, &err,
1089 DBUS_TYPE_INT32, &pid,
1092 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Profanity Filter");
1094 if (dbus_error_is_set(&err)) {
1095 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get profanity filter : get arguments error (%s)", err.message);
1096 dbus_error_free(&err);
1097 ret = STTD_ERROR_OPERATION_FAILED;
1099 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get profanity filter : uid(%d)", pid);
1100 ret = sttd_server_setting_get_profanity_filter(pid, &value);
1104 reply = dbus_message_new_method_return(msg);
1106 if (NULL != reply) {
1108 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INT32, &value, DBUS_TYPE_INVALID);
1109 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d) , value(%s)", ret, value ? "true":"false");
1111 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1112 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1115 if (!dbus_connection_send(conn, reply, NULL)) {
1116 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1119 dbus_connection_flush(conn);
1120 dbus_message_unref(reply);
1122 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1125 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1126 SLOG(LOG_DEBUG, TAG_STTD, " ");
1131 int sttd_dbus_server_setting_set_profanity_filter(DBusConnection* conn, DBusMessage* msg)
1134 dbus_error_init(&err);
1138 int ret = STTD_ERROR_OPERATION_FAILED;
1140 dbus_message_get_args(msg, &err,
1141 DBUS_TYPE_INT32, &pid,
1142 DBUS_TYPE_INT32, &value,
1145 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Set Profanity Filter");
1147 if (dbus_error_is_set(&err)) {
1148 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting set profanity filter : get arguments error (%s)", err.message);
1149 dbus_error_free(&err);
1150 ret = STTD_ERROR_OPERATION_FAILED;
1152 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting set profanity filter : uid(%d), value(%s)", pid, value ? "true":"false");
1153 ret = sttd_server_setting_set_profanity_filter(pid, (bool)value);
1157 reply = dbus_message_new_method_return(msg);
1159 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1161 if (NULL != reply) {
1163 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1165 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1168 if (!dbus_connection_send(conn, reply, NULL)) {
1169 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1172 dbus_connection_flush(conn);
1173 dbus_message_unref(reply);
1175 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1178 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1179 SLOG(LOG_DEBUG, TAG_STTD, " ");
1184 int sttd_dbus_server_setting_get_punctuation_override(DBusConnection* conn, DBusMessage* msg)
1187 dbus_error_init(&err);
1191 int ret = STTD_ERROR_OPERATION_FAILED;
1193 dbus_message_get_args(msg, &err,
1194 DBUS_TYPE_INT32, &pid,
1197 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Punctuation Override");
1199 if (dbus_error_is_set(&err)) {
1200 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get punctuation override : get arguments error (%s)", err.message);
1201 dbus_error_free(&err);
1202 ret = STTD_ERROR_OPERATION_FAILED;
1204 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get punctuation override : uid(%d)", pid);
1205 ret = sttd_server_setting_get_punctuation_override(pid, &value);
1209 reply = dbus_message_new_method_return(msg);
1211 if (NULL != reply) {
1213 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INT32, &value, DBUS_TYPE_INVALID);
1214 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d) , value(%s)", ret, value ? "true":"false");
1216 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1217 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1220 if (!dbus_connection_send(conn, reply, NULL)) {
1221 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1225 dbus_connection_flush(conn);
1226 dbus_message_unref(reply);
1228 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1231 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1232 SLOG(LOG_DEBUG, TAG_STTD, " ");
1237 int sttd_dbus_server_setting_set_punctuation_override(DBusConnection* conn, DBusMessage* msg)
1240 dbus_error_init(&err);
1244 int ret = STTD_ERROR_OPERATION_FAILED;
1246 dbus_message_get_args(msg, &err,
1247 DBUS_TYPE_INT32, &pid,
1248 DBUS_TYPE_INT32, &value,
1251 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Set Profanity Filter");
1253 if (dbus_error_is_set(&err)) {
1254 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting set punctuation override : get arguments error (%s)", err.message);
1255 dbus_error_free(&err);
1256 ret = STTD_ERROR_OPERATION_FAILED;
1258 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting set punctuation override : uid(%d), value(%s)", pid, value ? "true":"false");
1259 ret = sttd_server_setting_set_punctuation_override(pid, value);
1263 reply = dbus_message_new_method_return(msg);
1265 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1267 if (NULL != reply) {
1269 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1271 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1274 if (!dbus_connection_send(conn, reply, NULL)) {
1275 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1279 dbus_connection_flush(conn);
1280 dbus_message_unref(reply);
1282 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1285 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1286 SLOG(LOG_DEBUG, TAG_STTD, " ");
1291 int sttd_dbus_server_setting_get_silence_detection(DBusConnection* conn, DBusMessage* msg)
1294 dbus_error_init(&err);
1298 int ret = STTD_ERROR_OPERATION_FAILED;
1300 dbus_message_get_args(msg, &err,
1301 DBUS_TYPE_INT32, &pid,
1304 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Silence Detection");
1306 if (dbus_error_is_set(&err)) {
1307 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get silence detection : get arguments error (%s)", err.message);
1308 dbus_error_free(&err);
1309 ret = STTD_ERROR_OPERATION_FAILED;
1311 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get silence detection : uid(%d)", pid);
1312 ret = sttd_server_setting_get_silence_detection(pid, &value);
1316 reply = dbus_message_new_method_return(msg);
1318 if (NULL != reply) {
1320 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INT32, &value, DBUS_TYPE_INVALID);
1321 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d) , Value(%s)", ret, value ? "true":"false");
1323 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1324 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1327 if (!dbus_connection_send(conn, reply, NULL)) {
1328 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1332 dbus_connection_flush(conn);
1333 dbus_message_unref(reply);
1335 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1338 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1339 SLOG(LOG_DEBUG, TAG_STTD, " ");
1344 int sttd_dbus_server_setting_set_silence_detection(DBusConnection* conn, DBusMessage* msg)
1347 dbus_error_init(&err);
1351 int ret = STTD_ERROR_OPERATION_FAILED;
1353 dbus_message_get_args(msg, &err,
1354 DBUS_TYPE_INT32, &pid,
1355 DBUS_TYPE_INT32, &value,
1357 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Set Silence Detection");
1359 if (dbus_error_is_set(&err)) {
1360 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting set silence detection : get arguments error (%s)", err.message);
1361 dbus_error_free(&err);
1362 ret = STTD_ERROR_OPERATION_FAILED;
1364 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting set silence detection : uid(%d), value(%s)", pid, value ? "true":"false");
1365 ret = sttd_server_setting_set_silence_detection(pid, value);
1369 reply = dbus_message_new_method_return(msg);
1371 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1373 if (NULL != reply) {
1375 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1377 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1380 if (!dbus_connection_send(conn, reply, NULL)) {
1381 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1384 dbus_connection_flush(conn);
1385 dbus_message_unref(reply);
1387 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1390 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1391 SLOG(LOG_DEBUG, TAG_STTD, " ");
1397 int sttd_dbus_server_setting_get_engine_setting(DBusConnection* conn, DBusMessage* msg)
1400 dbus_error_init(&err);
1404 GList* engine_setting_list = NULL;
1405 int ret = STTD_ERROR_OPERATION_FAILED;
1407 dbus_message_get_args(msg, &err,
1408 DBUS_TYPE_INT32, &pid,
1411 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Get Engine Setting");
1413 if (dbus_error_is_set(&err)) {
1414 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting get engine setting : get arguments error (%s)", err.message);
1415 dbus_error_free(&err);
1416 ret = STTD_ERROR_OPERATION_FAILED;
1418 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting get engine setting : uid(%d)", pid);
1419 ret = sttd_server_setting_get_engine_setting(pid, &engine_id, &engine_setting_list);
1423 reply = dbus_message_new_method_return(msg);
1425 if (NULL != reply) {
1426 DBusMessageIter args;
1427 dbus_message_iter_init_append(reply, &args);
1430 dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(ret) );
1433 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(engine_id))) {
1434 ret = STTD_ERROR_OPERATION_FAILED;
1435 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to add engine id");
1437 if (NULL != engine_id) free(engine_id);
1440 int size = g_list_length(engine_setting_list);
1441 if (!dbus_message_iter_append_basic(&args, DBUS_TYPE_INT32, &(size))) {
1442 ret = STTD_ERROR_OPERATION_FAILED;
1443 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] setting get engine setting : result(%d)", ret);
1446 engine_setting_s* setting;
1448 iter = g_list_first(engine_setting_list);
1450 while (NULL != iter) {
1451 setting = iter->data;
1453 if (NULL != setting) {
1454 if (NULL != setting->key && NULL != setting->value) {
1455 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(setting->key) );
1456 dbus_message_iter_append_basic(&args, DBUS_TYPE_STRING, &(setting->value) );
1458 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] setting key is NULL");
1461 if (NULL != setting->key)
1462 g_free(setting->key);
1463 if (NULL != setting->value)
1464 g_free(setting->value);
1468 SLOG(LOG_ERROR, TAG_STTD, "[ERROR] setting key is NULL");
1471 engine_setting_list = g_list_remove_link(engine_setting_list, iter);
1473 iter = g_list_first(engine_setting_list);
1475 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] setting engine setting list : result(%d) \n", ret);
1479 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1482 if (!dbus_connection_send(conn, reply, NULL)) {
1483 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1486 dbus_connection_flush(conn);
1487 dbus_message_unref(reply);
1489 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1492 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1493 SLOG(LOG_DEBUG, TAG_STTD, " ");
1498 int sttd_dbus_server_setting_set_engine_setting(DBusConnection* conn, DBusMessage* msg)
1501 dbus_error_init(&err);
1506 int ret = STTD_ERROR_OPERATION_FAILED;
1508 dbus_message_get_args(msg, &err,
1509 DBUS_TYPE_INT32, &pid,
1510 DBUS_TYPE_STRING, &key,
1511 DBUS_TYPE_STRING, &value,
1514 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Setting Set Engine Setting");
1516 if (dbus_error_is_set(&err)) {
1517 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] setting set engine setting : get arguments error (%s)", err.message);
1518 dbus_error_free(&err);
1519 ret = STTD_ERROR_OPERATION_FAILED;
1521 SLOG(LOG_DEBUG, TAG_STTD, "[IN] setting set engine setting : uid(%d), key(%s), value(%s)", pid, key, value);
1522 ret = sttd_server_setting_set_engine_setting(pid, key, value);
1526 reply = dbus_message_new_method_return(msg);
1528 dbus_message_append_args(reply, DBUS_TYPE_INT32, &ret, DBUS_TYPE_INVALID);
1530 if (NULL != reply) {
1532 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1534 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1537 if (!dbus_connection_send(conn, reply, NULL)) {
1538 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Out Of Memory!");
1541 dbus_connection_flush(conn);
1542 dbus_message_unref(reply);
1544 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Fail to create reply message!!");
1547 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1548 SLOG(LOG_DEBUG, TAG_STTD, " ");
1553 int sttd_dbus_server_stop_by_daemon(DBusMessage* msg)
1556 dbus_error_init(&err);
1560 dbus_message_get_args(msg, &err,
1561 DBUS_TYPE_INT32, &uid,
1564 SLOG(LOG_DEBUG, TAG_STTD, ">>>>> Stop by daemon");
1566 if (dbus_error_is_set(&err)) {
1567 SLOG(LOG_ERROR, TAG_STTD, "[IN ERROR] sttd stop by daemon : Get arguments error (%s)", err.message);
1568 dbus_error_free(&err);
1570 SLOG(LOG_DEBUG, TAG_STTD, "[IN] sttd stop by daemon : uid(%d)", uid);
1571 sttd_server_stop(uid);
1573 /* check silence detection option from config */
1574 int ret = sttdc_send_set_state(uid, (int)APP_STATE_PROCESSING);
1576 SLOG(LOG_DEBUG, TAG_STTD, "[OUT SUCCESS] Result(%d)", ret);
1578 SLOG(LOG_ERROR, TAG_STTD, "[OUT ERROR] Result(%d)", ret);
1580 sttd_server_finalize(uid);
1584 SLOG(LOG_DEBUG, TAG_STTD, "<<<<<");
1585 SLOG(LOG_DEBUG, TAG_STTD, " ");