summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorStéphane Doyon <s.doyon@videotron.ca>2008-08-18 00:58:47 +0000
committerStéphane Doyon <s.doyon@videotron.ca>2008-08-18 00:58:47 +0000
commit50512d696dc03bbfa74fee13e2df2616666fa0c7 (patch)
tree3fa3de883775b0e6dd776ad71fd4729d357adea8 /apps
parent9ffc30bec081b12cbc0da528bd2fdbd91e590be1 (diff)
downloadrockbox-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.c2
-rw-r--r--apps/menus/main_menu.c33
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