2 * Copyright (c) 2015 Samsung Electronics Co., Ltd. All rights reserved.
4 * Licensed under the Flora License, Version 1.1 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://floralicense.org/license/
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 #include <Elementary.h>
19 #include "screen_reader_vconf.h"
20 #include "screen_reader_spi.h"
23 #ifdef RUN_IPC_TEST_SUIT
24 #include "test_suite/test_suite.h"
30 #define LOG_TAG "SCREEN READER VCONF"
32 keylist_t *keys = NULL;
34 // ------------------------------ vconf callbacks----------------------
36 void app_termination_cb(keynode_t * node, void *user_data)
39 DEBUG("Application terminate %d", !vconf_keynode_get_int(node));
41 Service_Data *service_data = user_data;
42 service_data->run_service = vconf_keynode_get_int(node);
44 if (service_data->run_service == 0) {
51 void display_language_cb(keynode_t * node, void *user_data)
54 DEBUG("Trying to set LC_MESSAGES to: %s", vconf_keynode_get_str(node));
56 Service_Data *sd = user_data;
57 snprintf(sd->display_language, LANGUAGE_NAME_SIZE, "%s", vconf_keynode_get_str(node));
58 //to make gettext work
59 setenv("LC_MESSAGES", sd->display_language, 1);
64 // --------------------------------------------------------------------
66 int get_key_values(Service_Data * sd)
71 char *display_language = vconf_get_str("db/menu_widget/language");
72 if (display_language) {
73 snprintf(sd->display_language, LANGUAGE_NAME_SIZE, "%s", display_language);
74 //to make gettext work
75 setenv("LC_MESSAGES", sd->display_language, 1);
76 free(display_language);
78 WARNING("Can't get db/menu_widget/language value");
80 DEBUG("SCREEN READER DATA SET TO: Display_Language: %s, Tracking signal: %s;", sd->display_language, sd->tracking_signal_name);
86 int _set_vconf_callback_and_print_message_on_error_and_return_error_code(const char *in_key, vconf_callback_fn cb, void *user_data)
88 int ret = vconf_notify_key_changed(in_key, cb, user_data);
90 DEBUG("Could not add notify callback to %s key", in_key);
95 bool vconf_init(Service_Data * service_data)
97 DEBUG("--------------------- VCONF_init START ---------------------");
100 if (vconf_set(keys)) {
101 DEBUG("nothing is written\n");
103 DEBUG("everything is written\n");
106 vconf_keylist_free(keys);
107 // ----------------------------------------------------------------------------------
109 ret = get_key_values(service_data);
111 DEBUG("Could not set data from vconf: %d", ret);
114 _set_vconf_callback_and_print_message_on_error_and_return_error_code("db/menu_widget/language", display_language_cb, service_data);
116 DEBUG("---------------------- VCONF_init END ----------------------\n\n");