summaryrefslogtreecommitdiff
path: root/apps/menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/menu.c')
-rw-r--r--apps/menu.c34
1 files changed, 20 insertions, 14 deletions
diff --git a/apps/menu.c b/apps/menu.c
index 9cedbebed8..4f15b4b8ae 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -231,7 +231,7 @@ void menu_exit(int m)
231 inuse[m] = false; 231 inuse[m] = false;
232} 232}
233 233
234bool menu_run(int m) 234int menu_show(int m)
235{ 235{
236 bool exit = false; 236 bool exit = false;
237 237
@@ -289,17 +289,7 @@ bool menu_run(int m)
289 case BUTTON_PLAY: 289 case BUTTON_PLAY:
290 /* Erase current display state */ 290 /* Erase current display state */
291 lcd_clear_display(); 291 lcd_clear_display();
292 292 return menus[m].cursor;
293 /* if a child returns that USB was used,
294 we return immediately */
295 if (menus[m].items[menus[m].cursor].function()) {
296 lcd_stop_scroll(); /* just in case */
297 return true;
298 }
299
300 /* Return to previous display state */
301 menu_draw(m);
302 break;
303 293
304#ifdef HAVE_RECORDER_KEYPAD 294#ifdef HAVE_RECORDER_KEYPAD
305 case BUTTON_LEFT: 295 case BUTTON_LEFT:
@@ -331,11 +321,27 @@ bool menu_run(int m)
331#ifdef HAVE_LCD_CHARCELLS 321#ifdef HAVE_LCD_CHARCELLS
332 status_set_param(false); 322 status_set_param(false);
333#endif 323#endif
334 return true; 324 return MENU_ATTACHED_USB;
335 } 325 }
336 326
337 status_draw(); 327 status_draw();
338 } 328 }
329 return MENU_SELECTED_EXIT;
330}
331
339 332
340 return false; 333bool menu_run(int m)
334{
335 bool stop=false;
336 while (!stop) {
337 int result=menu_show(m);
338 if (result == MENU_SELECTED_EXIT)
339 return false;
340 else if (result == MENU_ATTACHED_USB)
341 return true;
342 if (menus[m].items[menus[m].cursor].function()) {
343 return true;
344 }
345 }
346 return false;
341} 347}