diff options
| author | Stéphane Doyon <s.doyon@videotron.ca> | 2008-08-18 00:58:47 +0000 |
|---|---|---|
| committer | Stéphane Doyon <s.doyon@videotron.ca> | 2008-08-18 00:58:47 +0000 |
| commit | 50512d696dc03bbfa74fee13e2df2616666fa0c7 (patch) | |
| tree | 3fa3de883775b0e6dd776ad71fd4729d357adea8 /apps | |
| parent | 9ffc30bec081b12cbc0da528bd2fdbd91e590be1 (diff) | |
| download | rockbox-50512d696dc03bbfa74fee13e2df2616666fa0c7.zip rockbox-50512d696dc03bbfa74fee13e2df2616666fa0c7.tar.gz rockbox-50512d696dc03bbfa74fee13e2df2616666fa0c7.tar.bz2 rockbox-50512d696dc03bbfa74fee13e2df2616666fa0c7.tar.xz | |
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
Diffstat (limited to 'apps')
| -rw-r--r-- | apps/gui/list.c | 2 | ||||
| -rw-r--r-- | 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 ee50ccf..12ff929 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 35fd100..72fa7da 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)) + { + talk_time(tm, true); + } + else { - 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_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 |