summaryrefslogtreecommitdiff
path: root/apps/onplay.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/onplay.c')
-rw-r--r--apps/onplay.c40
1 files changed, 39 insertions, 1 deletions
diff --git a/apps/onplay.c b/apps/onplay.c
index 6c538f8d8a..6c6b2eed0b 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -62,7 +62,45 @@ static bool add_to_playlist(int position, bool queue)
62 if (selected_file_attr & TREE_ATTR_MPA) 62 if (selected_file_attr & TREE_ATTR_MPA)
63 playlist_insert_track(selected_file, position, queue); 63 playlist_insert_track(selected_file, position, queue);
64 else if (selected_file_attr & ATTR_DIRECTORY) 64 else if (selected_file_attr & ATTR_DIRECTORY)
65 playlist_insert_directory(selected_file, position, queue); 65 {
66 bool recurse = false;
67
68 if (global_settings.recursive_dir_insert != RECURSE_ASK)
69 recurse = (bool)global_settings.recursive_dir_insert;
70 else
71 {
72 /* Ask if user wants to recurse directory */
73 bool exit = false;
74
75 lcd_clear_display();
76 lcd_puts_scroll(0,0,str(LANG_RECURSE_DIRECTORY_QUESTION));
77 lcd_puts_scroll(0,1,selected_file);
78
79#ifdef HAVE_LCD_BITMAP
80 lcd_puts(0,3,str(LANG_CONFIRM_WITH_PLAY_RECORDER));
81 lcd_puts(0,4,str(LANG_CANCEL_WITH_ANY_RECORDER));
82#endif
83
84 lcd_update();
85
86 while (!exit) {
87 int btn = button_get(true);
88 switch (btn) {
89 case BUTTON_PLAY:
90 recurse = true;
91 exit = true;
92 break;
93 default:
94 /* ignore button releases */
95 if (!(btn & BUTTON_REL))
96 exit = true;
97 break;
98 }
99 }
100 }
101
102 playlist_insert_directory(selected_file, position, queue, recurse);
103 }
66 else if (selected_file_attr & TREE_ATTR_M3U) 104 else if (selected_file_attr & TREE_ATTR_M3U)
67 playlist_insert_playlist(selected_file, position, queue); 105 playlist_insert_playlist(selected_file, position, queue);
68 106