From: Bartlomiej Uliasz Date: Thu, 10 Mar 2016 08:46:36 +0000 (+0100) Subject: Set necessary callbacks to external status value change of buttons X-Git-Tag: submit/tizen/20160314.091911~7^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=78b63d6b9f31a545eb2c4bec0abc030bab74ce02;p=profile%2Ftv%2Fapps%2Fnative%2Fair_settings.git Set necessary callbacks to external status value change of buttons Change-Id: I2302b981ff53c87db20feb490b06208b7a12f5f4 Signed-off-by: Bartlomiej Uliasz --- diff --git a/include/common/menumgr.h b/include/common/menumgr.h index d30bded..6678cb1 100644 --- a/include/common/menumgr.h +++ b/include/common/menumgr.h @@ -33,6 +33,10 @@ struct menumgr_info { void (*selected)(void *data, int id); void (*focused)(void *data, int id); void (*selected_menu)(void *data, int id); + + /* Function to register callback that update what needed and calls menumgr_update when value changes + * in system (changed by any app/service etc.). When data == NULL callbacks are unregistered. */ + void (*update_cb)(void *data); }; struct menumgr *menumgr_create(Evas_Object *table, Evas_Object *tab_menu_btn, diff --git a/include/data/settings_picture.h b/include/data/settings_picture.h index bc20d03..8acaafd 100644 --- a/include/data/settings_picture.h +++ b/include/data/settings_picture.h @@ -62,4 +62,13 @@ void settings_picture_set_screen_adjust(int adj); int settings_picture_get_screen_adjust(void); const char *settings_picture_get_screen_adjust_str(void); +/* Sets callbacks for menumgr_update when proper setting changes in system. */ +void settings_picture_set_picture_mode_update_callbacks(void *data); +void settings_picture_set_contrast_update_callbacks(void *data); +void settings_picture_set_brightness_update_callbacks(void *data); +void settings_picture_set_sharpness_update_callbacks(void *data); +void settings_picture_set_color_update_callbacks(void *data); +void settings_picture_set_tint_update_callbacks(void *data); +void settings_picture_set_screen_adj_update_callbacks(void *data); + #endif /* __AIR_SETTINGS_PICTURE_H__ */ diff --git a/include/data/system/settings_clock.h b/include/data/system/settings_clock.h index 932db2e..a0c3a29 100644 --- a/include/data/system/settings_clock.h +++ b/include/data/system/settings_clock.h @@ -12,4 +12,8 @@ bool settings_clock_get_current_time(struct tm *current_time); bool settings_clock_set_current_time(struct tm *current_time); char *settings_clock_get_clock_status_str(); +/* Set callbacks to call menumgr_update() when status changed + * (system settings changes and minute update) */ +void settings_clock_set_state_update_callbacks(void *data); + #endif /* SETTINGS_CLOCK_H_ */ diff --git a/include/data/system/settings_language.h b/include/data/system/settings_language.h index 02811e8..564611a 100644 --- a/include/data/system/settings_language.h +++ b/include/data/system/settings_language.h @@ -28,19 +28,30 @@ typedef enum _language_type { /* Sets current language */ void settings_language_set_language(settings_language_type lang_type); + /* Gets current language ID */ settings_language_type settings_language_get_language_id(void); + /* Gets current locale language string. * Note that the returned string needs to be freed after use. */ char *settings_language_get_language_locale_str(void); + /* Gets current display language string. */ char *settings_language_get_language_display_str(void); /* Sets current subtitle language */ void settings_language_set_subtitle_language(settings_language_type lang_type); + /* Gets current subtitle language ID */ settings_language_type settings_language_get_subtitle_language_id(void); + /* Gets current display subtitlelanguage string. */ char *settings_language_get_subtitle_language_display_str(void); +/* Sets callback for menumgr_update when language system setting changes. */ +void settings_language_set_state_update_callbacks(void *data); + +/* Sets callback for menumgr_update when subtitle system setting changes. */ +void settings_language_set_subtitle_state_update_callbacks(void *data); + #endif /* __AIR_SETTINGS_LANGUAGE_H__ */ diff --git a/include/data/system/settings_wakeup_timer.h b/include/data/system/settings_wakeup_timer.h index 95bfb17..b6b7217 100644 --- a/include/data/system/settings_wakeup_timer.h +++ b/include/data/system/settings_wakeup_timer.h @@ -56,5 +56,7 @@ int settings_wakeup_timer_get_source(void); int settings_wakeup_timer_get_channel(void); //@TODO settings_wakeup_timer_set_timer() +/* Sets callback for menumgr_update when setting changes in system. */ +void settings_wakeup_timer_set_state_update_callbacks(void *data); #endif /* __AIR_SETTINGS_WAKEUP_TIMER_H__ */ diff --git a/org.tizen.settings.xml.in b/org.tizen.settings.xml.in index c668bf2..5537544 100644 --- a/org.tizen.settings.xml.in +++ b/org.tizen.settings.xml.in @@ -9,6 +9,7 @@ http://tizen.org/privilege/appmanager.launch + http://tizen.org/privilege/alarm.get http://tizen.org/privilege/alarm.set http://tizen.org/privilege/internet http://tizen.org/privilege/network.get diff --git a/src/common/menumgr.c b/src/common/menumgr.c index c858a99..52183a0 100644 --- a/src/common/menumgr.c +++ b/src/common/menumgr.c @@ -227,6 +227,9 @@ struct menumgr *menumgr_create(Evas_Object *table, Evas_Object *tab_menu_btn, m->btn[i] = btn; m->info[i] = &info[i]; + + if (m->info[i]->update_cb) + m->info[i]->update_cb(m); } return m; @@ -242,8 +245,11 @@ void menumgr_destroy(struct menumgr *m) return; } - for (i = 0; i < m->len; i++) + for (i = 0; i < m->len; i++) { inputmgr_remove_callback(m->btn[i], &_handler); + if (m->info[i]->update_cb) + m->info[i]->update_cb(NULL); + } free(m); } diff --git a/src/data/settings_picture.c b/src/data/settings_picture.c index 487f9a7..55dfbbd 100644 --- a/src/data/settings_picture.c +++ b/src/data/settings_picture.c @@ -241,3 +241,66 @@ const char *settings_picture_get_screen_adjust_str(void) { return screen_adj_names[screen_adj]; } + +void settings_picture_set_picture_mode_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + +void settings_picture_set_contrast_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + +void settings_picture_set_brightness_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + +void settings_picture_set_sharpness_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + +void settings_picture_set_color_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + +void settings_picture_set_tint_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + +void settings_picture_set_screen_adj_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} diff --git a/src/data/system/settings_clock.c b/src/data/system/settings_clock.c index 06636ff..ec258bc 100644 --- a/src/data/system/settings_clock.c +++ b/src/data/system/settings_clock.c @@ -1,12 +1,19 @@ -#include #include +#include #include -#include "define.h" +#include +#include #include "app_debug.h" +#include "define.h" +#include "common/menumgr.h" #include "data/system/settings_clock.h" #define MAX_DATETIME_LENGTH 35 +Ecore_Timer *priv_timer = NULL; + +static void add_next_minute_cb(void *data); + bool settings_clock_is_24h_set(bool *h24) { int res = 0; @@ -119,3 +126,111 @@ char *settings_clock_get_clock_status_str() return strdup(str_buffer); } } + +static void _system_time_setting_changed_cb(system_settings_key_e key, void *user_data) +{ + _DBG("System setting %d changed", key); + menumgr_update(user_data); +} + +/* TODO: Change when alarm will work to: + * int _minute_update_cb(alarm_id_t alarm_id,void *user_data) + */ +static Eina_Bool _minute_update_cb(void *data) +{ + menumgr_update(data); + add_next_minute_cb(data); + return ECORE_CALLBACK_CANCEL; +} + +static void add_next_minute_cb(void *data) +{ + priv_timer = ecore_timer_add((double)(60 - (time(NULL) % 60)), _minute_update_cb, data); +/* + * Currently gives ERR_ALARM_NO_PERMISSION result despite alarm.set permission set + int result = ALARMMGR_RESULT_SUCCESS; + alarm_id_t _minute_alarm_id = 0; + time_t trigger_at_time = time(NULL); + trigger_at_time += 60 - (trigger_at_time % 60); + result = alarmmgr_add_alarm_withcb(ALARM_TYPE_VOLATILE, trigger_at_time, + (time_t)60, _minute_update_cb, data, &_minute_alarm_id); + if (result != ALARMMGR_RESULT_SUCCESS) + _ERR("Cannot add alarm. Error value %d", result); + else + _DBG("Time cb set"); +*/ +/* + * This method also gives ERR_ALARM_NO_PERMISSION result as above + int ret = ALARMMGR_RESULT_SUCCESS; + time_t current_time = 0; + struct tm current_tm; + alarm_entry_t* alarm = NULL; + alarm_id_t alarm_id; + alarm_date_t alarm_time; + + time(¤t_time); + _DBG("Current time: %s", ctime(¤t_time)); + localtime_r(¤t_time, ¤t_tm); + + alarm = alarmmgr_create_alarm(); + if (!alarm) { + _ERR("Cannot create alarm"); + return; + } + alarm_time.year = current_tm.tm_year + 1900; + alarm_time.month = current_tm.tm_mon + 1; + alarm_time.day = current_tm.tm_mday; + alarm_time.hour = current_tm.tm_hour; + alarm_time.min = current_tm.tm_min + 1; + alarm_time.sec = 0; + _DBG("Alarm time: %d/%d/%d %d:%d:%d\n", + alarm_time.year, alarm_time.month, alarm_time.day, alarm_time.hour, alarm_time.min, alarm_time.sec); + if( + (ret = alarmmgr_set_time(alarm, alarm_time)) != ALARMMGR_RESULT_SUCCESS + || (ret = alarmmgr_set_repeat_mode(alarm, ALARM_REPEAT_MODE_REPEAT, 60)) != ALARMMGR_RESULT_SUCCESS + || (ret = alarmmgr_set_time(alarm, alarm_time)) != ALARMMGR_RESULT_SUCCESS + || (ret = alarmmgr_set_type(alarm, ALARM_TYPE_VOLATILE)) != ALARMMGR_RESULT_SUCCESS + || (ret = alarmmgr_add_alarm_with_localtime(alarm, NULL, &alarm_id)) != ALARMMGR_RESULT_SUCCESS + ) { + _ERR("Failed to create alarm. Error: %d", ret); + SYSTEM_SETTINGS_KEY_TIME_CHANGED + } +*/ +} + +void settings_clock_set_state_update_callbacks(void *data) +{ + int ret = 0; + if (data) { + if ((ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, + _system_time_setting_changed_cb, data)) != SYSTEM_SETTINGS_ERROR_NONE + || (ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED, + _system_time_setting_changed_cb, data)) != SYSTEM_SETTINGS_ERROR_NONE + || (ret = system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE, + _system_time_setting_changed_cb, data)) != SYSTEM_SETTINGS_ERROR_NONE) + _ERR("Cannot set callbacks for system settings change. Code = %d", ret); + + /* TODO: look at add_next_minute_cb() comments + if (alarmmgr_init("org.tizen.settings") == ALARMMGR_RESULT_SUCCESS + && alarmmgr_set_cb(_minute_update_cb, data) == ALARMMGR_RESULT_SUCCESS) { + } + */ + add_next_minute_cb(data); + /* TODO: ditto + } else { + _ERR("Failed to initialize alarmmgr"); + } + */ + } else { + if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR) + != SYSTEM_SETTINGS_ERROR_NONE + || system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_TIME_CHANGED) + != SYSTEM_SETTINGS_ERROR_NONE + || system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_TIMEZONE) + != SYSTEM_SETTINGS_ERROR_NONE) + _ERR("Cannot unset callbacks for system settings change"); + + if (!ecore_timer_del(priv_timer)) + _ERR("Cannot delete ecore timer"); + } +} diff --git a/src/data/system/settings_language.c b/src/data/system/settings_language.c index c5db57c..69eef4f 100644 --- a/src/data/system/settings_language.c +++ b/src/data/system/settings_language.c @@ -19,6 +19,7 @@ #include #include "app_debug.h" #include "define.h" +#include "common/menumgr.h" #include "data/system/settings_language.h" #define LANG_LOCALE_STR_L 6 @@ -107,3 +108,31 @@ char *settings_language_get_subtitle_language_display_str(void) //@TODO: get subtitle language and corresponding display string return strdup("English"); } + +static void _language_update_cb(system_settings_key_e key, void *user_data) +{ + _DBG("Language system setting changed"); + menumgr_update(user_data); +} + +void settings_language_set_state_update_callbacks(void *data) +{ + if (data) { + if (system_settings_set_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE, _language_update_cb, data) + != SYSTEM_SETTINGS_ERROR_NONE) + _ERR("Cannot set callback for language system setting change"); + } else { + if (system_settings_unset_changed_cb(SYSTEM_SETTINGS_KEY_LOCALE_LANGUAGE) + != SYSTEM_SETTINGS_ERROR_NONE) + _ERR("Cannot remove callback for language system setting change"); + } +} + +void settings_language_set_subtitle_state_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} diff --git a/src/data/system/settings_wakeup_timer.c b/src/data/system/settings_wakeup_timer.c index d065f57..0f33c89 100644 --- a/src/data/system/settings_wakeup_timer.c +++ b/src/data/system/settings_wakeup_timer.c @@ -73,3 +73,12 @@ int settings_wakeup_timer_get_channel(void) return TMP_CHANNEL1; } + +void settings_wakeup_timer_set_state_update_callbacks(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} diff --git a/src/layout/layout_picture.c b/src/layout/layout_picture.c index c36f5f7..e98b050 100644 --- a/src/layout/layout_picture.c +++ b/src/layout/layout_picture.c @@ -78,7 +78,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_picture_mode_update_callbacks }, { .id = MENU_CONTRAST, @@ -90,7 +91,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_contrast_update_callbacks }, { .id = MENU_BRIGHTNESS, @@ -102,7 +104,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_brightness_update_callbacks }, { .id = MENU_SHARPNESS, @@ -114,7 +117,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_sharpness_update_callbacks }, { .id = MENU_COLOR, @@ -126,7 +130,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_color_update_callbacks }, { .id = MENU_TINT, @@ -138,7 +143,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_tint_update_callbacks }, { .id = MENU_SCREEN_ADJ, @@ -150,7 +156,8 @@ static struct menumgr_info menu_info[] = { .progress_evas = NULL, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .update_cb = settings_picture_set_screen_adj_update_callbacks }, }; diff --git a/src/layout/layout_support.c b/src/layout/layout_support.c index 13ad2cd..f96a5b8 100644 --- a/src/layout/layout_support.c +++ b/src/layout/layout_support.c @@ -58,6 +58,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = _get_sw_version, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_MOTION_CONTROL, @@ -66,6 +69,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = NULL, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_USER_MODE, @@ -74,6 +80,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = NULL, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_VOICE_RECOGNITION, @@ -81,6 +90,9 @@ static struct menumgr_info menu_info[] = { .style = STYLE_NORMAL_BTN, .disabled = EINA_TRUE, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_SMART_CONTROL, @@ -89,6 +101,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = NULL, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_CONTACT, @@ -97,6 +112,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = NULL, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, }; diff --git a/src/layout/layout_system.c b/src/layout/layout_system.c index ef25764..2f23ea5 100644 --- a/src/layout/layout_system.c +++ b/src/layout/layout_system.c @@ -69,6 +69,12 @@ static void _focused(void *data, int id); static void _selected_menu(void *data, int id); static void _location_selected(void *data, int id); +/* TODO: Move it to proper file when exist */ +void set_callback_for_sleep_timer_change(void *data); + +/* TODO: Move it to proper file when exist */ +void set_callback_for_system_location_change(void *data); + static struct menumgr_info menu_info[] = { { .id = MENU_CLOCK, @@ -79,7 +85,10 @@ static struct menumgr_info menu_info[] = { .status = _get_clock_mode, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = settings_clock_set_state_update_callbacks }, { .id = MENU_SLEEP_TIMER, @@ -89,7 +98,10 @@ static struct menumgr_info menu_info[] = { .status = _get_sleep_timer, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = set_callback_for_sleep_timer_change }, { .id = MENU_WAKEUP_TIMER, @@ -99,7 +111,10 @@ static struct menumgr_info menu_info[] = { .status = _get_wakeup_timer, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = settings_wakeup_timer_set_state_update_callbacks }, { .id = MENU_CHANGE_PINCODE, @@ -108,7 +123,10 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_FALSE, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL }, { .id = MENU_LANGUAGE, @@ -118,7 +136,10 @@ static struct menumgr_info menu_info[] = { .status = _get_language, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = settings_language_set_state_update_callbacks }, { .id = MENU_SUBTITLE, @@ -128,7 +149,10 @@ static struct menumgr_info menu_info[] = { .status = _get_subtitle, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = settings_language_set_subtitle_state_update_callbacks }, { .id = MENU_LOCATION, @@ -138,7 +162,10 @@ static struct menumgr_info menu_info[] = { .status = _get_location, .selected = _location_selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = set_callback_for_system_location_change }, { .id = MENU_RESET, @@ -147,7 +174,10 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_FALSE, .selected = _selected, .focused = _focused, - .selected_menu = _selected_menu + .selected_menu = _selected_menu, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL }, }; @@ -162,6 +192,15 @@ static char *_get_sleep_timer(void *data, int id) return strdup(STR_OFF); } +void set_callback_for_sleep_timer_change(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + static char *_get_wakeup_timer(void *data, int id) { return settings_wakeup_timer_display_str(); @@ -216,6 +255,15 @@ static char *_get_location(void *data, int id) return strdup(name); } +void set_callback_for_system_location_change(void *data) +{ + if (data) { + //@TODO: set needed callbacks + } else { + //@TODO: unset previously set callbacks + } +} + static void _selected(void *data, int id) { switch (id) { diff --git a/src/layout/layout_voice.c b/src/layout/layout_voice.c index 7c01b66..79d8dec 100644 --- a/src/layout/layout_voice.c +++ b/src/layout/layout_voice.c @@ -55,6 +55,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = _get_status, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_VOICE_LANGUAGE, @@ -63,6 +66,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = _get_status, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_TTS_SPEED, @@ -71,6 +77,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = _get_status, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, { .id = MENU_TTS_LANGUAGE, @@ -79,6 +88,9 @@ static struct menumgr_info menu_info[] = { .disabled = EINA_TRUE, .status = _get_status, .selected = _selected, + .progress_value = NULL, + .progress_evas = NULL, + .update_cb = NULL, }, };