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.
16 #include "stt_setting_dbus.h"
18 static int g_waiting_time = 1500;
20 static DBusConnection* g_conn = NULL;
22 int stt_setting_dbus_open_connection()
24 if( NULL != g_conn ) {
25 SLOG(LOG_WARN, TAG_STTC, "already existed connection");
32 /* initialise the error value */
33 dbus_error_init(&err);
35 /* connect to the DBUS system bus, and check for errors */
36 g_conn = dbus_bus_get_private(DBUS_BUS_SYSTEM, &err);
38 if (dbus_error_is_set(&err)) {
39 SLOG(LOG_ERROR, TAG_STTC, "Dbus Connection Error (%s)\n", err.message);
40 dbus_error_free(&err);
44 SLOG(LOG_ERROR, TAG_STTC, "fail to get dbus connection \n");
45 return STT_SETTING_ERROR_OPERATION_FAILED;
50 char service_name[64];
51 memset(service_name, 0, 64);
52 snprintf(service_name, 64, "%s%d", STT_SETTING_SERVICE_NAME, pid);
54 SLOG(LOG_DEBUG, TAG_STTC, "service name is %s\n", service_name);
56 /* register our name on the bus, and check for errors */
57 ret = dbus_bus_request_name(g_conn, service_name, DBUS_NAME_FLAG_REPLACE_EXISTING , &err);
59 if (dbus_error_is_set(&err)) {
60 SLOG(LOG_ERROR, TAG_STTC, "Name Error (%s)\n", err.message);
61 dbus_error_free(&err);
64 if (DBUS_REQUEST_NAME_REPLY_PRIMARY_OWNER != ret) {
65 SLOG(LOG_ERROR, TAG_STTC, "fail dbus_bus_request_name()\n");
66 return STT_SETTING_ERROR_OPERATION_FAILED;
72 int stt_setting_dbus_close_connection()
75 dbus_error_init(&err);
79 char service_name[64];
80 memset(service_name, 0, 64);
81 snprintf(service_name, 64, "%s%d", STT_SETTING_SERVICE_NAME, pid);
83 dbus_bus_release_name(g_conn, service_name, &err);
85 dbus_connection_close(g_conn);
93 int stt_setting_dbus_request_hello()
97 msg = dbus_message_new_method_call(
98 STT_SERVER_SERVICE_NAME,
99 STT_SERVER_SERVICE_OBJECT_PATH,
100 STT_SERVER_SERVICE_INTERFACE,
101 STT_SETTING_METHOD_HELLO);
104 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting hello : Fail to make message \n");
105 return STT_SETTING_ERROR_OPERATION_FAILED;
107 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting hello");
111 dbus_error_init(&err);
113 DBusMessage* result_msg = NULL;
116 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, 500, &err);
118 dbus_message_unref(msg);
120 if (NULL != result_msg) {
121 dbus_message_unref(result_msg);
123 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting hello");
126 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting hello : no response");
133 int stt_setting_dbus_request_initialize()
137 msg = dbus_message_new_method_call(
138 STT_SERVER_SERVICE_NAME,
139 STT_SERVER_SERVICE_OBJECT_PATH,
140 STT_SERVER_SERVICE_INTERFACE,
141 STT_SETTING_METHOD_INITIALIZE);
144 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting initialize : Fail to make message \n");
145 return STT_SETTING_ERROR_OPERATION_FAILED;
147 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting initialize");
152 dbus_message_append_args( msg,
153 DBUS_TYPE_INT32, &pid,
157 dbus_error_init(&err);
159 DBusMessage* result_msg;
160 int result = STT_SETTING_ERROR_OPERATION_FAILED;
162 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
164 if (NULL != result_msg) {
165 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
167 if (dbus_error_is_set(&err)) {
168 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
169 dbus_error_free(&err);
170 result = STT_SETTING_ERROR_OPERATION_FAILED;
172 dbus_message_unref(result_msg);
176 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting initialize : result = %d", result);
178 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting initialize : result = %d", result);
181 dbus_message_unref(msg);
186 int stt_setting_dbus_request_finalilze(void)
190 msg = dbus_message_new_method_call(
191 STT_SERVER_SERVICE_NAME,
192 STT_SERVER_SERVICE_OBJECT_PATH,
193 STT_SERVER_SERVICE_INTERFACE,
194 STT_SETTING_METHOD_FINALIZE);
197 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting finalize : Fail to make message \n");
198 return STT_SETTING_ERROR_OPERATION_FAILED;
200 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting finalize");
205 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
208 dbus_error_init(&err);
210 DBusMessage* result_msg;
211 int result = STT_SETTING_ERROR_OPERATION_FAILED;
213 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
215 if (NULL != result_msg) {
216 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
218 if (dbus_error_is_set(&err)) {
219 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
220 dbus_error_free(&err);
221 result = STT_SETTING_ERROR_OPERATION_FAILED;
223 dbus_message_unref(result_msg);
227 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting finallize : result = %d", result);
229 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting finallize : result = %d", result);
232 dbus_message_unref(msg);
237 int stt_setting_dbus_request_get_engine_list(stt_setting_supported_engine_cb callback, void* user_data)
239 if (NULL == callback) {
240 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
246 msg = dbus_message_new_method_call(
247 STT_SERVER_SERVICE_NAME,
248 STT_SERVER_SERVICE_OBJECT_PATH,
249 STT_SERVER_SERVICE_INTERFACE,
250 STT_SETTING_METHOD_GET_ENGINE_LIST);
253 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get engine list : Fail to make message \n");
254 return STT_SETTING_ERROR_OPERATION_FAILED;
256 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get engine list");
261 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
264 dbus_error_init(&err);
266 DBusMessage* result_msg;
267 int result = STT_SETTING_ERROR_OPERATION_FAILED;
269 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
271 if (NULL != result_msg) {
272 DBusMessageIter args;
273 if (dbus_message_iter_init(result_msg, &args)) {
275 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
276 dbus_message_iter_get_basic(&args, &result);
277 dbus_message_iter_next(&args);
281 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get engine list : result = %d \n", result);
288 /* Get engine count */
289 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
290 dbus_message_iter_get_basic(&args, &size);
291 dbus_message_iter_next(&args);
295 for (i=0 ; i<size ; i++) {
296 dbus_message_iter_get_basic(&args, &(temp_id));
297 dbus_message_iter_next(&args);
299 dbus_message_iter_get_basic(&args, &(temp_name));
300 dbus_message_iter_next(&args);
302 dbus_message_iter_get_basic(&args, &(temp_path));
303 dbus_message_iter_next(&args);
305 if (true != callback(temp_id, temp_name, temp_path, user_data)) {
310 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine list : result = %d \n", result);
313 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine list : invalid message \n");
316 dbus_message_unref(result_msg);
318 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine list : result message is NULL!! \n");
321 dbus_message_unref(msg);
326 int stt_setting_dbus_request_get_engine(char** engine_id)
328 if (NULL == engine_id) {
329 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
330 return STT_SETTING_ERROR_INVALID_PARAMETER;
335 msg = dbus_message_new_method_call(
336 STT_SERVER_SERVICE_NAME,
337 STT_SERVER_SERVICE_OBJECT_PATH,
338 STT_SERVER_SERVICE_INTERFACE,
339 STT_SETTING_METHOD_GET_ENGINE);
342 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get engine : Fail to make message \n");
343 return STT_SETTING_ERROR_OPERATION_FAILED;
345 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get engine ");
350 dbus_message_append_args( msg,
351 DBUS_TYPE_INT32, &pid,
355 dbus_error_init(&err);
357 DBusMessage* result_msg;
358 int result = STT_SETTING_ERROR_OPERATION_FAILED;
361 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
363 if (NULL != result_msg) {
364 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_STRING, &temp, DBUS_TYPE_INVALID);
366 if (dbus_error_is_set(&err)) {
367 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
368 dbus_error_free(&err);
369 result = STT_SETTING_ERROR_OPERATION_FAILED;
371 dbus_message_unref(result_msg);
375 *engine_id = strdup(temp);
377 if (NULL == *engine_id) {
378 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine : Out of memory \n");
379 result = STT_SETTING_ERROR_OUT_OF_MEMORY;
381 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get engine : result(%d), engine id(%s)\n", result, *engine_id);
384 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine : result(%d) \n", result);
387 dbus_message_unref(msg);
392 int stt_setting_dbus_request_set_engine(const char* engine_id)
394 if (NULL == engine_id) {
395 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
396 return STT_SETTING_ERROR_INVALID_PARAMETER;
401 msg = dbus_message_new_method_call(
402 STT_SERVER_SERVICE_NAME,
403 STT_SERVER_SERVICE_OBJECT_PATH,
404 STT_SERVER_SERVICE_INTERFACE,
405 STT_SETTING_METHOD_SET_ENGINE);
408 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set engine : Fail to make message \n");
409 return STT_SETTING_ERROR_OPERATION_FAILED;
411 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set engine : engine id(%s)", engine_id);
416 dbus_message_append_args( msg,
417 DBUS_TYPE_INT32, &pid,
418 DBUS_TYPE_STRING, &engine_id,
422 dbus_error_init(&err);
424 DBusMessage* result_msg;
425 int result = STT_SETTING_ERROR_OPERATION_FAILED;
427 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
429 if (NULL != result_msg) {
430 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
432 if (dbus_error_is_set(&err)) {
433 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
434 dbus_error_free(&err);
435 result = STT_SETTING_ERROR_OPERATION_FAILED;
437 dbus_message_unref(result_msg);
441 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set engine : result(%d) \n", result);
443 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set engine : result(%d) \n", result);
446 dbus_message_unref(msg);
451 int stt_setting_dbus_request_get_language_list(stt_setting_supported_language_cb callback, void* user_data)
453 if (NULL == callback) {
454 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
455 return STT_SETTING_ERROR_INVALID_PARAMETER;
460 msg = dbus_message_new_method_call(
461 STT_SERVER_SERVICE_NAME,
462 STT_SERVER_SERVICE_OBJECT_PATH,
463 STT_SERVER_SERVICE_INTERFACE,
464 STT_SETTING_METHOD_GET_LANG_LIST);
467 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get language list : Fail to make message \n");
468 return STT_SETTING_ERROR_OPERATION_FAILED;
470 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get language list");
475 dbus_message_append_args( msg,
476 DBUS_TYPE_INT32, &pid,
480 dbus_error_init(&err);
482 DBusMessage* result_msg;
483 int result = STT_SETTING_ERROR_OPERATION_FAILED;
485 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
487 if (NULL != result_msg) {
488 DBusMessageIter args;
490 if (dbus_message_iter_init(result_msg, &args)) {
492 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
493 dbus_message_iter_get_basic(&args, &result);
494 dbus_message_iter_next(&args);
498 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get language list : result = %d \n", result);
501 char* temp_id = NULL;
502 char* temp_lang = NULL;
505 dbus_message_iter_get_basic(&args, &temp_id);
506 dbus_message_iter_next(&args);
508 if (NULL != temp_id) {
509 /* Get language count */
510 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
511 dbus_message_iter_get_basic(&args, &size);
512 dbus_message_iter_next(&args);
516 for (i=0 ; i<size ; i++) {
517 dbus_message_iter_get_basic(&args, &(temp_lang) );
518 dbus_message_iter_next(&args);
520 if (true != callback(temp_id, temp_lang, user_data)) {
525 SLOG(LOG_ERROR, TAG_STTC, "Engine ID is NULL \n");
526 result = STT_SETTING_ERROR_OPERATION_FAILED;
530 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get language list : result = %d \n", result);
534 dbus_message_unref(result_msg);
536 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get language list : Result message is NULL!!");
539 dbus_message_unref(msg);
544 int stt_setting_dbus_request_get_default_language(char** language)
546 if (NULL == language) {
547 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
548 return STT_SETTING_ERROR_INVALID_PARAMETER;
553 msg = dbus_message_new_method_call(
554 STT_SERVER_SERVICE_NAME,
555 STT_SERVER_SERVICE_OBJECT_PATH,
556 STT_SERVER_SERVICE_INTERFACE,
557 STT_SETTING_METHOD_GET_DEFAULT_LANG);
560 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get default language : Fail to make message \n");
561 return STT_SETTING_ERROR_OPERATION_FAILED;
563 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get default language");
568 dbus_message_append_args( msg,
569 DBUS_TYPE_INT32, &pid,
573 dbus_error_init(&err);
575 DBusMessage* result_msg;
576 int result = STT_SETTING_ERROR_OPERATION_FAILED;
579 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
581 if (NULL != result_msg) {
582 dbus_message_get_args(result_msg, &err,
583 DBUS_TYPE_INT32, &result,
584 DBUS_TYPE_STRING, &temp_char,
587 if (dbus_error_is_set(&err)) {
588 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
589 dbus_error_free(&err);
590 result = STT_SETTING_ERROR_OPERATION_FAILED;
593 dbus_message_unref(result_msg);
597 *language = strdup(temp_char);
599 if (NULL == *language) {
600 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get default language : Out of memory \n");
601 result = STT_SETTING_ERROR_OUT_OF_MEMORY;
603 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get default language : result(%d), lang(%s)\n", result, *language);
606 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get default language : result(%d) \n", result);
609 dbus_message_unref(msg);
615 int stt_setting_dbus_request_set_default_language(const char* language)
617 if (NULL == language) {
618 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
619 return STT_SETTING_ERROR_INVALID_PARAMETER;
624 msg = dbus_message_new_method_call(
625 STT_SERVER_SERVICE_NAME,
626 STT_SERVER_SERVICE_OBJECT_PATH,
627 STT_SERVER_SERVICE_INTERFACE,
628 STT_SETTING_METHOD_SET_DEFAULT_LANG);
631 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set default language : Fail to make message \n");
632 return STT_SETTING_ERROR_OPERATION_FAILED;
634 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set default language : lang(%s)\n", language);
639 dbus_message_append_args( msg,
640 DBUS_TYPE_INT32, &pid,
641 DBUS_TYPE_STRING, &language,
645 dbus_error_init(&err);
647 DBusMessage* result_msg;
648 int result = STT_SETTING_ERROR_OPERATION_FAILED;
650 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
652 if (NULL != result_msg) {
653 dbus_message_get_args(result_msg, &err,
654 DBUS_TYPE_INT32, &result,
657 if (dbus_error_is_set(&err)) {
658 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
659 dbus_error_free(&err);
660 result = STT_SETTING_ERROR_OPERATION_FAILED;
663 dbus_message_unref(result_msg);
667 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set default language : result(%d)", result);
669 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set default language : result(%d)", result);
672 dbus_message_unref(msg);
677 int stt_setting_dbus_request_get_engine_setting(stt_setting_engine_setting_cb callback, void* user_data)
679 if (NULL == callback) {
680 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
681 return STT_SETTING_ERROR_INVALID_PARAMETER;
686 msg = dbus_message_new_method_call(
687 STT_SERVER_SERVICE_NAME,
688 STT_SERVER_SERVICE_OBJECT_PATH,
689 STT_SERVER_SERVICE_INTERFACE,
690 STT_SETTING_METHOD_GET_ENGINE_SETTING);
693 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get engine setting : Fail to make message \n");
694 return STT_SETTING_ERROR_OPERATION_FAILED;
696 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get engine setting");
701 dbus_message_append_args( msg,
702 DBUS_TYPE_INT32, &pid,
706 dbus_error_init(&err);
708 DBusMessage* result_msg;
709 int result = STT_SETTING_ERROR_OPERATION_FAILED;
711 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
713 if (NULL != result_msg) {
714 DBusMessageIter args;
716 if (dbus_message_iter_init(result_msg, &args)) {
718 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
719 dbus_message_iter_get_basic(&args, &result);
720 dbus_message_iter_next(&args);
724 SLOG(LOG_DEBUG, TAG_STTC, "<<<< get engine setting : result = %d \n", result);
726 char* temp_id = NULL;
731 dbus_message_iter_get_basic(&args, &temp_id);
732 dbus_message_iter_next(&args);
734 if (NULL != temp_id) {
735 /* Get setting count */
736 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
737 dbus_message_iter_get_basic(&args, &size);
738 dbus_message_iter_next(&args);
742 for (i=0 ; i<size ; i++) {
743 dbus_message_iter_get_basic(&args, &(temp_key) );
744 dbus_message_iter_next(&args);
746 dbus_message_iter_get_basic(&args, &(temp_value) );
747 dbus_message_iter_next(&args);
749 if (true != callback(temp_id, temp_key, temp_value, user_data)) {
754 SLOG(LOG_ERROR, TAG_STTC, "<<<< get engine setting : result message is invalid \n");
755 result = STT_SETTING_ERROR_OPERATION_FAILED;
759 SLOG(LOG_ERROR, TAG_STTC, "<<<< get engine setting : result message is invalid \n");
760 result = STT_SETTING_ERROR_OPERATION_FAILED;
763 dbus_message_unref(result_msg);
765 SLOG(LOG_ERROR, TAG_STTC, "<<<< get engine setting : Result message is NULL!! \n");
768 dbus_message_unref(msg);
773 int stt_setting_dbus_request_set_engine_setting(const char* key, const char* value)
775 if (NULL == key || NULL == value) {
776 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
777 return STT_SETTING_ERROR_INVALID_PARAMETER;
782 msg = dbus_message_new_method_call(
783 STT_SERVER_SERVICE_NAME,
784 STT_SERVER_SERVICE_OBJECT_PATH,
785 STT_SERVER_SERVICE_INTERFACE,
786 STT_SETTING_METHOD_SET_ENGINE_SETTING);
789 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set engine setting : Fail to make message \n");
790 return STT_SETTING_ERROR_OPERATION_FAILED;
792 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set engine setting : key(%s), value(%s)", key, value);
797 dbus_message_append_args( msg,
798 DBUS_TYPE_INT32, &pid,
799 DBUS_TYPE_STRING, &key,
800 DBUS_TYPE_STRING, &value,
804 dbus_error_init(&err);
806 DBusMessage* result_msg;
807 int result = STT_SETTING_ERROR_OPERATION_FAILED;
809 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
811 if (NULL != result_msg) {
812 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
814 if (dbus_error_is_set(&err)) {
815 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)\n", err.message);
816 dbus_error_free(&err);
819 dbus_message_unref(result_msg);
823 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set engine setting : result(%d)", result);
825 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set engine setting : result(%d)", result);
828 dbus_message_unref(msg);
833 int stt_setting_dbus_request_get_profanity_filter(bool* value)
836 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
837 return STT_SETTING_ERROR_INVALID_PARAMETER;
842 msg = dbus_message_new_method_call(
843 STT_SERVER_SERVICE_NAME,
844 STT_SERVER_SERVICE_OBJECT_PATH,
845 STT_SERVER_SERVICE_INTERFACE,
846 STT_SETTING_METHOD_GET_PROFANITY);
849 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set profanity filter : Fail to make message \n");
850 return STT_SETTING_ERROR_OPERATION_FAILED;
852 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set profanity filter");
857 dbus_message_append_args( msg,
858 DBUS_TYPE_INT32, &pid,
862 dbus_error_init(&err);
864 DBusMessage* result_msg;
865 int result = STT_SETTING_ERROR_OPERATION_FAILED;
867 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
869 if (NULL != result_msg) {
870 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, value, DBUS_TYPE_INVALID);
872 if (dbus_error_is_set(&err)) {
873 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
874 dbus_error_free(&err);
875 result = STT_SETTING_ERROR_OPERATION_FAILED;
878 dbus_message_unref(result_msg);
882 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get profanity filter : result(%d), value(%s)", result, *value ? "true":"false");
884 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get profanity filter : result(%d)", result);
887 dbus_message_unref(msg);
892 int stt_setting_dbus_request_set_profanity_filter(const bool value)
896 msg = dbus_message_new_method_call(
897 STT_SERVER_SERVICE_NAME,
898 STT_SERVER_SERVICE_OBJECT_PATH,
899 STT_SERVER_SERVICE_INTERFACE,
900 STT_SETTING_METHOD_SET_PROFANITY);
903 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set profanity filter : Fail to make message \n");
904 return STT_SETTING_ERROR_OPERATION_FAILED;
906 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set profanity filter : value(%s)", value ? "true":"false");
911 dbus_message_append_args( msg,
912 DBUS_TYPE_INT32, &pid,
913 DBUS_TYPE_INT32, &value,
917 dbus_error_init(&err);
919 DBusMessage* result_msg;
920 int result = STT_SETTING_ERROR_OPERATION_FAILED;
922 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
924 if (NULL != result_msg) {
925 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
927 if (dbus_error_is_set(&err)) {
928 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
929 dbus_error_free(&err);
930 result = STT_SETTING_ERROR_OPERATION_FAILED;
933 dbus_message_unref(result_msg);
937 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set profanity filter : result(%d)", result);
939 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set profanity filter : result(%d)", result);
942 dbus_message_unref(msg);
947 int stt_setting_dbus_request_get_punctuation_override(bool* value)
950 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
951 return STT_SETTING_ERROR_INVALID_PARAMETER;
956 msg = dbus_message_new_method_call(
957 STT_SERVER_SERVICE_NAME,
958 STT_SERVER_SERVICE_OBJECT_PATH,
959 STT_SERVER_SERVICE_INTERFACE,
960 STT_SETTING_METHOD_GET_PUNCTUATION);
963 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get punctuation override : Fail to make message \n");
964 return STT_SETTING_ERROR_OPERATION_FAILED;
966 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get punctuation override ");
971 dbus_message_append_args( msg,
972 DBUS_TYPE_INT32, &pid,
976 dbus_error_init(&err);
978 DBusMessage* result_msg;
979 int result = STT_SETTING_ERROR_OPERATION_FAILED;
981 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
983 if (NULL != result_msg) {
984 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, value, DBUS_TYPE_INVALID);
986 if (dbus_error_is_set(&err)) {
987 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
988 dbus_error_free(&err);
989 result = STT_SETTING_ERROR_OPERATION_FAILED;
992 dbus_message_unref(result_msg);
996 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get punctuation override : result(%d), value(%s)", result, *value ? "true":"false");
998 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get punctuation override : result(%d)", result);
1001 dbus_message_unref(msg);
1006 int stt_setting_dbus_request_set_punctuation_override(const bool value )
1010 msg = dbus_message_new_method_call(
1011 STT_SERVER_SERVICE_NAME,
1012 STT_SERVER_SERVICE_OBJECT_PATH,
1013 STT_SERVER_SERVICE_INTERFACE,
1014 STT_SETTING_METHOD_SET_PUNCTUATION);
1017 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set punctuation override : Fail to make message \n");
1018 return STT_SETTING_ERROR_OPERATION_FAILED;
1020 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set punctuation override : value(%s)", value ? "true":"false");
1025 dbus_message_append_args( msg,
1026 DBUS_TYPE_INT32, &pid,
1027 DBUS_TYPE_INT32, &value,
1031 dbus_error_init(&err);
1033 DBusMessage* result_msg;
1034 int result = STT_SETTING_ERROR_OPERATION_FAILED;
1036 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
1038 if (NULL != result_msg) {
1039 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
1041 if (dbus_error_is_set(&err)) {
1042 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
1043 dbus_error_free(&err);
1044 result = STT_SETTING_ERROR_OPERATION_FAILED;
1047 dbus_message_unref(result_msg);
1051 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set punctuation override : result(%d)", result);
1053 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set punctuation override : result(%d)", result);
1056 dbus_message_unref(msg);
1061 int stt_setting_dbus_request_get_silence_detection(bool* value)
1063 if (NULL == value) {
1064 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
1065 return STT_SETTING_ERROR_INVALID_PARAMETER;
1070 msg = dbus_message_new_method_call(
1071 STT_SERVER_SERVICE_NAME,
1072 STT_SERVER_SERVICE_OBJECT_PATH,
1073 STT_SERVER_SERVICE_INTERFACE,
1074 STT_SETTING_METHOD_GET_SILENCE);
1077 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get silence detection : Fail to make message \n");
1078 return STT_SETTING_ERROR_OPERATION_FAILED;
1080 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get silence detection : value(%s)", value ? "true":"false");
1085 dbus_message_append_args( msg,
1086 DBUS_TYPE_INT32, &pid,
1087 DBUS_TYPE_INT32, &value,
1091 dbus_error_init(&err);
1093 DBusMessage* result_msg;
1094 int result = STT_SETTING_ERROR_OPERATION_FAILED;
1096 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
1098 if (NULL == result_msg) {
1099 dbus_message_unref(msg);
1100 return STT_SETTING_ERROR_OPERATION_FAILED;
1103 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, value, DBUS_TYPE_INVALID);
1105 if (dbus_error_is_set(&err)) {
1106 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
1107 dbus_error_free(&err);
1108 result = STT_SETTING_ERROR_OPERATION_FAILED;
1111 SLOG(LOG_DEBUG, TAG_STTC, "Get Silence Detection : result(%d), value(%d) \n", result, *value);
1113 dbus_message_unref(msg);
1118 int stt_setting_dbus_request_set_silence_detection(const bool value)
1122 msg = dbus_message_new_method_call(
1123 STT_SERVER_SERVICE_NAME,
1124 STT_SERVER_SERVICE_OBJECT_PATH,
1125 STT_SERVER_SERVICE_INTERFACE,
1126 STT_SETTING_METHOD_SET_SILENCE);
1129 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set silence detection : Fail to make message \n");
1130 return STT_SETTING_ERROR_OPERATION_FAILED;
1132 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set silence detection : value(%s)", value ? "true":"false");
1137 dbus_message_append_args( msg,
1138 DBUS_TYPE_INT32, &pid,
1139 DBUS_TYPE_INT32, &value,
1143 dbus_error_init(&err);
1145 DBusMessage* result_msg;
1146 int result = STT_SETTING_ERROR_OPERATION_FAILED;
1148 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
1150 if (NULL != result_msg) {
1151 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
1153 if (dbus_error_is_set(&err)) {
1154 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
1155 dbus_error_free(&err);
1156 result = STT_SETTING_ERROR_OPERATION_FAILED;
1159 dbus_message_unref(result_msg);
1163 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set set silence detection : result(%d)", result);
1165 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set set silence detection : result(%d)", result);
1168 dbus_message_unref(msg);