From 50512d696dc03bbfa74fee13e2df2616666fa0c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Doyon?= Date: Mon, 18 Aug 2008 00:58:47 +0000 Subject: [PATCH] Fix for issues in speaking the time in Rockbox Info screen (B#9167). git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18309 a1c6a512-1295-4272-9138-f99709370657 --- apps/gui/list.c | 2 -- apps/menus/main_menu.c | 33 +++++++++++---------------------- 2 files changed, 11 insertions(+), 24 deletions(-) diff --git a/apps/gui/list.c b/apps/gui/list.c index ee50ccf63e..12ff929e8a 100644 --- a/apps/gui/list.c +++ b/apps/gui/list.c @@ -905,8 +905,6 @@ bool simplelist_show_list(struct simplelist_info *info) if (info->get_name == NULL) gui_synclist_set_nb_items(&lists, simplelist_line_count*info->selection_size); gui_synclist_draw(&lists); - if (action != ACTION_NONE) - gui_synclist_speak_item(&lists); old_line_count = simplelist_line_count; } else if(default_event_handler(action) == SYS_USB_CONNECTED) diff --git a/apps/menus/main_menu.c b/apps/menus/main_menu.c index 35fd100b5b..72fa7da1df 100644 --- a/apps/menus/main_menu.c +++ b/apps/menus/main_menu.c @@ -289,7 +289,6 @@ static int info_speak_item(int selected_item, void * data) #if CONFIG_RTC struct tm *tm; - static int last_talk = 0; #endif switch (selected_item) @@ -300,19 +299,15 @@ static int info_speak_item(int selected_item, void * data) break; #if CONFIG_RTC case INFO_TIME: - if (TIME_AFTER(current_tick, last_talk + HZ*60)) + tm = get_time(); + talk_id(VOICE_CURRENT_TIME, false); + if (valid_time(tm)) { - tm = get_time(); - talk_id(VOICE_CURRENT_TIME, false); - if (valid_time(tm)) - { - talk_time(tm, true); - } - else - { - talk_id(LANG_UNKNOWN, true); - } - last_talk = current_tick; + talk_time(tm, true); + } + else + { + talk_id(LANG_UNKNOWN, true); } break; case INFO_DATE: @@ -417,21 +412,15 @@ static int info_action_callback(int action, struct gui_synclist *lists) (void) lists; #endif + gui_synclist_speak_item(lists); return ACTION_REDRAW; } #if CONFIG_RTC else if (action == ACTION_NONE) { - if ((global_settings.talk_menu && lists->selected_item == INFO_TIME) || - (!global_settings.talk_menu && - gui_synclist_item_is_onscreen(lists, 0, INFO_TIME))) + if (gui_synclist_item_is_onscreen(lists, 0, INFO_TIME)) { - static int last_redraw = 0; - if (TIME_AFTER(current_tick, last_redraw + HZ*5)) - { - last_redraw = current_tick; - return ACTION_REDRAW; - } + return ACTION_REDRAW; } } #endif