Index: rockbox-devel/apps/playlist_catalog.c =================================================================== --- rockbox-devel.orig/apps/playlist_catalog.c +++ rockbox-devel/apps/playlist_catalog.c @@ -224,6 +225,7 @@ static int display_playlists(char* playl char temp_buf[MAX_PATH]; char* playlists[MAX_PLAYLISTS]; struct gui_synclist playlist_lists; + bool say_fresh_line = true; if (create_playlist_list(playlists, sizeof(playlists), &num_playlists) != 0) @@ -245,10 +247,21 @@ static int display_playlists(char* playl while (!exit) { - int button = get_action(CONTEXT_LIST,HZ/2); char* sel_file; - gui_synclist_do_button(&playlist_lists, button,LIST_WRAP_UNLESS_HELD); + if (global_settings.talk_menu && say_fresh_line) + { + say_fresh_line = false; + sel_file = playlists[gui_synclist_get_sel_pos(&playlist_lists)]; + talk_file_or_spell(playlist_dir, sel_file, NULL, false); + } + + int button = get_action(CONTEXT_LIST,HZ/2); + + unsigned returned_button = gui_synclist_do_button(&playlist_lists, button,LIST_WRAP_UNLESS_HELD); + if(returned_button == ACTION_STD_NEXT + || returned_button == ACTION_STD_PREV) + say_fresh_line = true; sel_file = playlists[gui_synclist_get_sel_pos(&playlist_lists)];