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;
109 dbus_error_init(&err);
111 DBusMessage* result_msg = NULL;
114 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, 500, &err);
116 dbus_message_unref(msg);
118 if (NULL != result_msg) {
119 dbus_message_unref(result_msg);
121 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting hello");
130 int stt_setting_dbus_request_initialize()
134 msg = dbus_message_new_method_call(
135 STT_SERVER_SERVICE_NAME,
136 STT_SERVER_SERVICE_OBJECT_PATH,
137 STT_SERVER_SERVICE_INTERFACE,
138 STT_SETTING_METHOD_INITIALIZE);
141 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting initialize : Fail to make message \n");
142 return STT_SETTING_ERROR_OPERATION_FAILED;
144 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting initialize");
149 dbus_message_append_args( msg,
150 DBUS_TYPE_INT32, &pid,
154 dbus_error_init(&err);
156 DBusMessage* result_msg;
157 int result = STT_SETTING_ERROR_OPERATION_FAILED;
159 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
161 if (NULL != result_msg) {
162 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
164 if (dbus_error_is_set(&err)) {
165 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
166 dbus_error_free(&err);
167 result = STT_SETTING_ERROR_OPERATION_FAILED;
169 dbus_message_unref(result_msg);
173 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting initialize : result = %d", result);
175 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting initialize : result = %d", result);
178 dbus_message_unref(msg);
183 int stt_setting_dbus_request_finalilze(void)
187 msg = dbus_message_new_method_call(
188 STT_SERVER_SERVICE_NAME,
189 STT_SERVER_SERVICE_OBJECT_PATH,
190 STT_SERVER_SERVICE_INTERFACE,
191 STT_SETTING_METHOD_FINALIZE);
194 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting finalize : Fail to make message \n");
195 return STT_SETTING_ERROR_OPERATION_FAILED;
197 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting finalize");
202 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
205 dbus_error_init(&err);
207 DBusMessage* result_msg;
208 int result = STT_SETTING_ERROR_OPERATION_FAILED;
210 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
212 if (NULL != result_msg) {
213 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
215 if (dbus_error_is_set(&err)) {
216 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
217 dbus_error_free(&err);
218 result = STT_SETTING_ERROR_OPERATION_FAILED;
220 dbus_message_unref(result_msg);
224 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting finallize : result = %d", result);
226 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting finallize : result = %d", result);
229 dbus_message_unref(msg);
234 int stt_setting_dbus_request_get_engine_list(stt_setting_supported_engine_cb callback, void* user_data)
236 if (NULL == callback) {
237 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
243 msg = dbus_message_new_method_call(
244 STT_SERVER_SERVICE_NAME,
245 STT_SERVER_SERVICE_OBJECT_PATH,
246 STT_SERVER_SERVICE_INTERFACE,
247 STT_SETTING_METHOD_GET_ENGINE_LIST);
250 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get engine list : Fail to make message \n");
251 return STT_SETTING_ERROR_OPERATION_FAILED;
253 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get engine list");
258 dbus_message_append_args(msg, DBUS_TYPE_INT32, &pid, DBUS_TYPE_INVALID);
261 dbus_error_init(&err);
263 DBusMessage* result_msg;
264 int result = STT_SETTING_ERROR_OPERATION_FAILED;
266 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
268 if (NULL != result_msg) {
269 DBusMessageIter args;
270 if (dbus_message_iter_init(result_msg, &args)) {
272 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
273 dbus_message_iter_get_basic(&args, &result);
274 dbus_message_iter_next(&args);
278 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get engine list : result = %d \n", result);
285 /* Get engine count */
286 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
287 dbus_message_iter_get_basic(&args, &size);
288 dbus_message_iter_next(&args);
292 for (i=0 ; i<size ; i++) {
293 dbus_message_iter_get_basic(&args, &(temp_id));
294 dbus_message_iter_next(&args);
296 dbus_message_iter_get_basic(&args, &(temp_name));
297 dbus_message_iter_next(&args);
299 dbus_message_iter_get_basic(&args, &(temp_path));
300 dbus_message_iter_next(&args);
302 if (true != callback(temp_id, temp_name, temp_path, user_data)) {
307 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine list : result = %d \n", result);
310 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine list : invalid message \n");
313 dbus_message_unref(result_msg);
315 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine list : result message is NULL!! \n");
318 dbus_message_unref(msg);
323 int stt_setting_dbus_request_get_engine(char** engine_id)
325 if (NULL == engine_id) {
326 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
327 return STT_SETTING_ERROR_INVALID_PARAMETER;
332 msg = dbus_message_new_method_call(
333 STT_SERVER_SERVICE_NAME,
334 STT_SERVER_SERVICE_OBJECT_PATH,
335 STT_SERVER_SERVICE_INTERFACE,
336 STT_SETTING_METHOD_GET_ENGINE);
339 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get engine : Fail to make message \n");
340 return STT_SETTING_ERROR_OPERATION_FAILED;
342 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get engine ");
347 dbus_message_append_args( msg,
348 DBUS_TYPE_INT32, &pid,
352 dbus_error_init(&err);
354 DBusMessage* result_msg;
355 int result = STT_SETTING_ERROR_OPERATION_FAILED;
358 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
360 if (NULL != result_msg) {
361 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_STRING, &temp, DBUS_TYPE_INVALID);
363 if (dbus_error_is_set(&err)) {
364 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
365 dbus_error_free(&err);
366 result = STT_SETTING_ERROR_OPERATION_FAILED;
368 dbus_message_unref(result_msg);
372 *engine_id = strdup(temp);
374 if (NULL == *engine_id) {
375 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine : Out of memory \n");
376 result = STT_SETTING_ERROR_OUT_OF_MEMORY;
378 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get engine : result(%d), engine id(%s)\n", result, *engine_id);
381 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get engine : result(%d) \n", result);
384 dbus_message_unref(msg);
389 int stt_setting_dbus_request_set_engine(const char* engine_id)
391 if (NULL == engine_id) {
392 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
393 return STT_SETTING_ERROR_INVALID_PARAMETER;
398 msg = dbus_message_new_method_call(
399 STT_SERVER_SERVICE_NAME,
400 STT_SERVER_SERVICE_OBJECT_PATH,
401 STT_SERVER_SERVICE_INTERFACE,
402 STT_SETTING_METHOD_SET_ENGINE);
405 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set engine : Fail to make message \n");
406 return STT_SETTING_ERROR_OPERATION_FAILED;
408 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set engine : engine id(%s)", engine_id);
413 dbus_message_append_args( msg,
414 DBUS_TYPE_INT32, &pid,
415 DBUS_TYPE_STRING, &engine_id,
419 dbus_error_init(&err);
421 DBusMessage* result_msg;
422 int result = STT_SETTING_ERROR_OPERATION_FAILED;
424 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
426 if (NULL != result_msg) {
427 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
429 if (dbus_error_is_set(&err)) {
430 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
431 dbus_error_free(&err);
432 result = STT_SETTING_ERROR_OPERATION_FAILED;
434 dbus_message_unref(result_msg);
438 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set engine : result(%d) \n", result);
440 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set engine : result(%d) \n", result);
443 dbus_message_unref(msg);
448 int stt_setting_dbus_request_get_language_list(stt_setting_supported_language_cb callback, void* user_data)
450 if (NULL == callback) {
451 SLOG(LOG_ERROR, TAG_STTC, "Input parameter is NULL");
452 return STT_SETTING_ERROR_INVALID_PARAMETER;
457 msg = dbus_message_new_method_call(
458 STT_SERVER_SERVICE_NAME,
459 STT_SERVER_SERVICE_OBJECT_PATH,
460 STT_SERVER_SERVICE_INTERFACE,
461 STT_SETTING_METHOD_GET_LANG_LIST);
464 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get language list : Fail to make message \n");
465 return STT_SETTING_ERROR_OPERATION_FAILED;
467 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get language list");
472 dbus_message_append_args( msg,
473 DBUS_TYPE_INT32, &pid,
477 dbus_error_init(&err);
479 DBusMessage* result_msg;
480 int result = STT_SETTING_ERROR_OPERATION_FAILED;
482 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
484 if (NULL != result_msg) {
485 DBusMessageIter args;
487 if (dbus_message_iter_init(result_msg, &args)) {
489 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
490 dbus_message_iter_get_basic(&args, &result);
491 dbus_message_iter_next(&args);
495 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get language list : result = %d \n", result);
498 char* temp_id = NULL;
499 char* temp_lang = NULL;
502 dbus_message_iter_get_basic(&args, &temp_id);
503 dbus_message_iter_next(&args);
505 if (NULL != temp_id) {
506 /* Get language count */
507 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
508 dbus_message_iter_get_basic(&args, &size);
509 dbus_message_iter_next(&args);
513 for (i=0 ; i<size ; i++) {
514 dbus_message_iter_get_basic(&args, &(temp_lang) );
515 dbus_message_iter_next(&args);
517 if (true != callback(temp_id, temp_lang, user_data)) {
522 SLOG(LOG_ERROR, TAG_STTC, "Engine ID is NULL \n");
523 result = STT_SETTING_ERROR_OPERATION_FAILED;
527 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get language list : result = %d \n", result);
531 dbus_message_unref(result_msg);
533 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get language list : Result message is NULL!!");
536 dbus_message_unref(msg);
541 int stt_setting_dbus_request_get_default_language(char** language)
543 if (NULL == language) {
544 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
545 return STT_SETTING_ERROR_INVALID_PARAMETER;
550 msg = dbus_message_new_method_call(
551 STT_SERVER_SERVICE_NAME,
552 STT_SERVER_SERVICE_OBJECT_PATH,
553 STT_SERVER_SERVICE_INTERFACE,
554 STT_SETTING_METHOD_GET_DEFAULT_LANG);
557 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get default language : Fail to make message \n");
558 return STT_SETTING_ERROR_OPERATION_FAILED;
560 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get default language");
565 dbus_message_append_args( msg,
566 DBUS_TYPE_INT32, &pid,
570 dbus_error_init(&err);
572 DBusMessage* result_msg;
573 int result = STT_SETTING_ERROR_OPERATION_FAILED;
576 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
578 if (NULL != result_msg) {
579 dbus_message_get_args(result_msg, &err,
580 DBUS_TYPE_INT32, &result,
581 DBUS_TYPE_STRING, &temp_char,
584 if (dbus_error_is_set(&err)) {
585 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
586 dbus_error_free(&err);
587 result = STT_SETTING_ERROR_OPERATION_FAILED;
590 dbus_message_unref(result_msg);
594 *language = strdup(temp_char);
596 if (NULL == *language) {
597 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get default language : Out of memory \n");
598 result = STT_SETTING_ERROR_OUT_OF_MEMORY;
600 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get default language : result(%d), lang(%s)\n", result, *language);
603 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get default language : result(%d) \n", result);
606 dbus_message_unref(msg);
612 int stt_setting_dbus_request_set_default_language(const char* language)
614 if (NULL == language) {
615 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
616 return STT_SETTING_ERROR_INVALID_PARAMETER;
621 msg = dbus_message_new_method_call(
622 STT_SERVER_SERVICE_NAME,
623 STT_SERVER_SERVICE_OBJECT_PATH,
624 STT_SERVER_SERVICE_INTERFACE,
625 STT_SETTING_METHOD_SET_DEFAULT_LANG);
628 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set default language : Fail to make message \n");
629 return STT_SETTING_ERROR_OPERATION_FAILED;
631 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set default language : lang(%s)\n", language);
636 dbus_message_append_args( msg,
637 DBUS_TYPE_INT32, &pid,
638 DBUS_TYPE_STRING, &language,
642 dbus_error_init(&err);
644 DBusMessage* result_msg;
645 int result = STT_SETTING_ERROR_OPERATION_FAILED;
647 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
649 if (NULL != result_msg) {
650 dbus_message_get_args(result_msg, &err,
651 DBUS_TYPE_INT32, &result,
654 if (dbus_error_is_set(&err)) {
655 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
656 dbus_error_free(&err);
657 result = STT_SETTING_ERROR_OPERATION_FAILED;
660 dbus_message_unref(result_msg);
664 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set default language : result(%d)", result);
666 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set default language : result(%d)", result);
669 dbus_message_unref(msg);
674 int stt_setting_dbus_request_get_engine_setting(stt_setting_engine_setting_cb callback, void* user_data)
676 if (NULL == callback) {
677 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
678 return STT_SETTING_ERROR_INVALID_PARAMETER;
683 msg = dbus_message_new_method_call(
684 STT_SERVER_SERVICE_NAME,
685 STT_SERVER_SERVICE_OBJECT_PATH,
686 STT_SERVER_SERVICE_INTERFACE,
687 STT_SETTING_METHOD_GET_ENGINE_SETTING);
690 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get engine setting : Fail to make message \n");
691 return STT_SETTING_ERROR_OPERATION_FAILED;
693 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get engine setting");
698 dbus_message_append_args( msg,
699 DBUS_TYPE_INT32, &pid,
703 dbus_error_init(&err);
705 DBusMessage* result_msg;
706 int result = STT_SETTING_ERROR_OPERATION_FAILED;
708 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
710 if (NULL != result_msg) {
711 DBusMessageIter args;
713 if (dbus_message_iter_init(result_msg, &args)) {
715 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
716 dbus_message_iter_get_basic(&args, &result);
717 dbus_message_iter_next(&args);
721 SLOG(LOG_DEBUG, TAG_STTC, "<<<< get engine setting : result = %d \n", result);
723 char* temp_id = NULL;
728 dbus_message_iter_get_basic(&args, &temp_id);
729 dbus_message_iter_next(&args);
731 if (NULL != temp_id) {
732 /* Get setting count */
733 if (DBUS_TYPE_INT32 == dbus_message_iter_get_arg_type(&args)) {
734 dbus_message_iter_get_basic(&args, &size);
735 dbus_message_iter_next(&args);
739 for (i=0 ; i<size ; i++) {
740 dbus_message_iter_get_basic(&args, &(temp_key) );
741 dbus_message_iter_next(&args);
743 dbus_message_iter_get_basic(&args, &(temp_value) );
744 dbus_message_iter_next(&args);
746 if (true != callback(temp_id, temp_key, temp_value, user_data)) {
751 SLOG(LOG_ERROR, TAG_STTC, "<<<< get engine setting : result message is invalid \n");
752 result = STT_SETTING_ERROR_OPERATION_FAILED;
756 SLOG(LOG_ERROR, TAG_STTC, "<<<< get engine setting : result message is invalid \n");
757 result = STT_SETTING_ERROR_OPERATION_FAILED;
760 dbus_message_unref(result_msg);
762 SLOG(LOG_ERROR, TAG_STTC, "<<<< get engine setting : Result message is NULL!! \n");
765 dbus_message_unref(msg);
770 int stt_setting_dbus_request_set_engine_setting(const char* key, const char* value)
772 if (NULL == key || NULL == value) {
773 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
774 return STT_SETTING_ERROR_INVALID_PARAMETER;
779 msg = dbus_message_new_method_call(
780 STT_SERVER_SERVICE_NAME,
781 STT_SERVER_SERVICE_OBJECT_PATH,
782 STT_SERVER_SERVICE_INTERFACE,
783 STT_SETTING_METHOD_SET_ENGINE_SETTING);
786 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set engine setting : Fail to make message \n");
787 return STT_SETTING_ERROR_OPERATION_FAILED;
789 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set engine setting : key(%s), value(%s)", key, value);
794 dbus_message_append_args( msg,
795 DBUS_TYPE_INT32, &pid,
796 DBUS_TYPE_STRING, &key,
797 DBUS_TYPE_STRING, &value,
801 dbus_error_init(&err);
803 DBusMessage* result_msg;
804 int result = STT_SETTING_ERROR_OPERATION_FAILED;
806 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
808 if (NULL != result_msg) {
809 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
811 if (dbus_error_is_set(&err)) {
812 SLOG(LOG_ERROR, TAG_STTC, "<<<< Get arguments error (%s)\n", err.message);
813 dbus_error_free(&err);
816 dbus_message_unref(result_msg);
820 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set engine setting : result(%d)", result);
822 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set engine setting : result(%d)", result);
825 dbus_message_unref(msg);
830 int stt_setting_dbus_request_get_profanity_filter(bool* value)
833 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
834 return STT_SETTING_ERROR_INVALID_PARAMETER;
839 msg = dbus_message_new_method_call(
840 STT_SERVER_SERVICE_NAME,
841 STT_SERVER_SERVICE_OBJECT_PATH,
842 STT_SERVER_SERVICE_INTERFACE,
843 STT_SETTING_METHOD_GET_PROFANITY);
846 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set profanity filter : Fail to make message \n");
847 return STT_SETTING_ERROR_OPERATION_FAILED;
849 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set profanity filter");
854 dbus_message_append_args( msg,
855 DBUS_TYPE_INT32, &pid,
859 dbus_error_init(&err);
861 DBusMessage* result_msg;
862 int result = STT_SETTING_ERROR_OPERATION_FAILED;
864 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
866 if (NULL != result_msg) {
867 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, value, DBUS_TYPE_INVALID);
869 if (dbus_error_is_set(&err)) {
870 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
871 dbus_error_free(&err);
872 result = STT_SETTING_ERROR_OPERATION_FAILED;
875 dbus_message_unref(result_msg);
879 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get profanity filter : result(%d), value(%s)", result, *value ? "true":"false");
881 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get profanity filter : result(%d)", result);
884 dbus_message_unref(msg);
889 int stt_setting_dbus_request_set_profanity_filter(const bool value)
893 msg = dbus_message_new_method_call(
894 STT_SERVER_SERVICE_NAME,
895 STT_SERVER_SERVICE_OBJECT_PATH,
896 STT_SERVER_SERVICE_INTERFACE,
897 STT_SETTING_METHOD_SET_PROFANITY);
900 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set profanity filter : Fail to make message \n");
901 return STT_SETTING_ERROR_OPERATION_FAILED;
903 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set profanity filter : value(%s)", value ? "true":"false");
908 dbus_message_append_args( msg,
909 DBUS_TYPE_INT32, &pid,
910 DBUS_TYPE_INT32, &value,
914 dbus_error_init(&err);
916 DBusMessage* result_msg;
917 int result = STT_SETTING_ERROR_OPERATION_FAILED;
919 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
921 if (NULL != result_msg) {
922 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
924 if (dbus_error_is_set(&err)) {
925 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
926 dbus_error_free(&err);
927 result = STT_SETTING_ERROR_OPERATION_FAILED;
930 dbus_message_unref(result_msg);
934 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set profanity filter : result(%d)", result);
936 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set profanity filter : result(%d)", result);
939 dbus_message_unref(msg);
944 int stt_setting_dbus_request_get_punctuation_override(bool* value)
947 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
948 return STT_SETTING_ERROR_INVALID_PARAMETER;
953 msg = dbus_message_new_method_call(
954 STT_SERVER_SERVICE_NAME,
955 STT_SERVER_SERVICE_OBJECT_PATH,
956 STT_SERVER_SERVICE_INTERFACE,
957 STT_SETTING_METHOD_GET_PUNCTUATION);
960 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get punctuation override : Fail to make message \n");
961 return STT_SETTING_ERROR_OPERATION_FAILED;
963 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get punctuation override ");
968 dbus_message_append_args( msg,
969 DBUS_TYPE_INT32, &pid,
973 dbus_error_init(&err);
975 DBusMessage* result_msg;
976 int result = STT_SETTING_ERROR_OPERATION_FAILED;
978 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
980 if (NULL != result_msg) {
981 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, value, DBUS_TYPE_INVALID);
983 if (dbus_error_is_set(&err)) {
984 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
985 dbus_error_free(&err);
986 result = STT_SETTING_ERROR_OPERATION_FAILED;
989 dbus_message_unref(result_msg);
993 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting get punctuation override : result(%d), value(%s)", result, *value ? "true":"false");
995 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting get punctuation override : result(%d)", result);
998 dbus_message_unref(msg);
1003 int stt_setting_dbus_request_set_punctuation_override(const bool value )
1007 msg = dbus_message_new_method_call(
1008 STT_SERVER_SERVICE_NAME,
1009 STT_SERVER_SERVICE_OBJECT_PATH,
1010 STT_SERVER_SERVICE_INTERFACE,
1011 STT_SETTING_METHOD_SET_PUNCTUATION);
1014 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set punctuation override : Fail to make message \n");
1015 return STT_SETTING_ERROR_OPERATION_FAILED;
1017 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set punctuation override : value(%s)", value ? "true":"false");
1022 dbus_message_append_args( msg,
1023 DBUS_TYPE_INT32, &pid,
1024 DBUS_TYPE_INT32, &value,
1028 dbus_error_init(&err);
1030 DBusMessage* result_msg;
1031 int result = STT_SETTING_ERROR_OPERATION_FAILED;
1033 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
1035 if (NULL != result_msg) {
1036 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
1038 if (dbus_error_is_set(&err)) {
1039 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
1040 dbus_error_free(&err);
1041 result = STT_SETTING_ERROR_OPERATION_FAILED;
1044 dbus_message_unref(result_msg);
1048 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set punctuation override : result(%d)", result);
1050 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set punctuation override : result(%d)", result);
1053 dbus_message_unref(msg);
1058 int stt_setting_dbus_request_get_silence_detection(bool* value)
1060 if (NULL == value) {
1061 SLOG(LOG_ERROR, TAG_STTC, "Input Parameter is NULL");
1062 return STT_SETTING_ERROR_INVALID_PARAMETER;
1067 msg = dbus_message_new_method_call(
1068 STT_SERVER_SERVICE_NAME,
1069 STT_SERVER_SERVICE_OBJECT_PATH,
1070 STT_SERVER_SERVICE_INTERFACE,
1071 STT_SETTING_METHOD_GET_SILENCE);
1074 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting get silence detection : Fail to make message \n");
1075 return STT_SETTING_ERROR_OPERATION_FAILED;
1077 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting get silence detection : value(%s)", value ? "true":"false");
1082 dbus_message_append_args( msg,
1083 DBUS_TYPE_INT32, &pid,
1084 DBUS_TYPE_INT32, &value,
1088 dbus_error_init(&err);
1090 DBusMessage* result_msg;
1091 int result = STT_SETTING_ERROR_OPERATION_FAILED;
1093 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
1095 if (NULL == result_msg) {
1096 dbus_message_unref(msg);
1097 return STT_SETTING_ERROR_OPERATION_FAILED;
1100 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INT32, value, DBUS_TYPE_INVALID);
1102 if (dbus_error_is_set(&err)) {
1103 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
1104 dbus_error_free(&err);
1105 result = STT_SETTING_ERROR_OPERATION_FAILED;
1108 SLOG(LOG_DEBUG, TAG_STTC, "Get Silence Detection : result(%d), value(%d) \n", result, *value);
1110 dbus_message_unref(msg);
1115 int stt_setting_dbus_request_set_silence_detection(const bool value)
1119 msg = dbus_message_new_method_call(
1120 STT_SERVER_SERVICE_NAME,
1121 STT_SERVER_SERVICE_OBJECT_PATH,
1122 STT_SERVER_SERVICE_INTERFACE,
1123 STT_SETTING_METHOD_SET_SILENCE);
1126 SLOG(LOG_ERROR, TAG_STTC, ">>>> Request setting set silence detection : Fail to make message \n");
1127 return STT_SETTING_ERROR_OPERATION_FAILED;
1129 SLOG(LOG_DEBUG, TAG_STTC, ">>>> Request setting set silence detection : value(%s)", value ? "true":"false");
1134 dbus_message_append_args( msg,
1135 DBUS_TYPE_INT32, &pid,
1136 DBUS_TYPE_INT32, &value,
1140 dbus_error_init(&err);
1142 DBusMessage* result_msg;
1143 int result = STT_SETTING_ERROR_OPERATION_FAILED;
1145 result_msg = dbus_connection_send_with_reply_and_block(g_conn, msg, g_waiting_time, &err);
1147 if (NULL != result_msg) {
1148 dbus_message_get_args(result_msg, &err, DBUS_TYPE_INT32, &result, DBUS_TYPE_INVALID);
1150 if (dbus_error_is_set(&err)) {
1151 SLOG(LOG_ERROR, TAG_STTC, "Get arguments error (%s)\n", err.message);
1152 dbus_error_free(&err);
1153 result = STT_SETTING_ERROR_OPERATION_FAILED;
1156 dbus_message_unref(result_msg);
1160 SLOG(LOG_DEBUG, TAG_STTC, "<<<< setting set set silence detection : result(%d)", result);
1162 SLOG(LOG_ERROR, TAG_STTC, "<<<< setting set set silence detection : result(%d)", result);
1165 dbus_message_unref(msg);