summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/menu.c4
-rw-r--r--apps/menu.h90
-rw-r--r--apps/onplay.c22
-rw-r--r--apps/wps.c2
-rw-r--r--apps/wps.h3
5 files changed, 71 insertions, 50 deletions
diff --git a/apps/menu.c b/apps/menu.c
index 6966bc990e..60cc4b7682 100644
--- a/apps/menu.c
+++ b/apps/menu.c
@@ -376,8 +376,8 @@ int menu_show(int m)
376#ifdef MENU_EXIT2 376#ifdef MENU_EXIT2
377 case MENU_EXIT2: 377 case MENU_EXIT2:
378#endif 378#endif
379#ifdef MENU_EXIT3 379#ifdef MENU_EXIT_MENU
380 case MENU_EXIT3: 380 case MENU_EXIT_MENU:
381#endif 381#endif
382#ifdef MENU_RC_EXIT 382#ifdef MENU_RC_EXIT
383 case MENU_RC_EXIT: 383 case MENU_RC_EXIT:
diff --git a/apps/menu.h b/apps/menu.h
index 579de66aa0..9d682dad77 100644
--- a/apps/menu.h
+++ b/apps/menu.h
@@ -24,60 +24,60 @@
24 24
25/* button definitions */ 25/* button definitions */
26#if CONFIG_KEYPAD == IRIVER_H100_PAD 26#if CONFIG_KEYPAD == IRIVER_H100_PAD
27#define MENU_NEXT BUTTON_DOWN 27#define MENU_NEXT BUTTON_DOWN
28#define MENU_PREV BUTTON_UP 28#define MENU_PREV BUTTON_UP
29#define MENU_EXIT BUTTON_LEFT 29#define MENU_EXIT BUTTON_LEFT
30#define MENU_EXIT2 BUTTON_OFF 30#define MENU_EXIT2 BUTTON_OFF
31#define MENU_EXIT3 BUTTON_MODE 31#define MENU_EXIT_MENU BUTTON_MODE
32#define MENU_ENTER BUTTON_RIGHT 32#define MENU_ENTER BUTTON_RIGHT
33#define MENU_ENTER2 BUTTON_SELECT 33#define MENU_ENTER2 BUTTON_SELECT
34 34
35#define MENU_RC_NEXT BUTTON_RC_FF 35#define MENU_RC_NEXT BUTTON_RC_FF
36#define MENU_RC_PREV BUTTON_RC_REW 36#define MENU_RC_PREV BUTTON_RC_REW
37#define MENU_RC_EXIT BUTTON_RC_STOP 37#define MENU_RC_EXIT BUTTON_RC_STOP
38#define MENU_RC_ENTER BUTTON_RC_ON 38#define MENU_RC_ENTER BUTTON_RC_ON
39 39
40#elif CONFIG_KEYPAD == RECORDER_PAD 40#elif CONFIG_KEYPAD == RECORDER_PAD
41#define MENU_NEXT BUTTON_DOWN 41#define MENU_NEXT BUTTON_DOWN
42#define MENU_PREV BUTTON_UP 42#define MENU_PREV BUTTON_UP
43#define MENU_EXIT BUTTON_LEFT 43#define MENU_EXIT BUTTON_LEFT
44#define MENU_EXIT2 BUTTON_OFF 44#define MENU_EXIT2 BUTTON_OFF
45#define MENU_EXIT3 BUTTON_F1 45#define MENU_EXIT_MENU BUTTON_F1
46#define MENU_ENTER BUTTON_RIGHT 46#define MENU_ENTER BUTTON_RIGHT
47#define MENU_ENTER2 BUTTON_PLAY 47#define MENU_ENTER2 BUTTON_PLAY
48 48
49#define MENU_RC_NEXT BUTTON_RC_RIGHT 49#define MENU_RC_NEXT BUTTON_RC_RIGHT
50#define MENU_RC_PREV BUTTON_RC_LEFT 50#define MENU_RC_PREV BUTTON_RC_LEFT
51#define MENU_RC_EXIT BUTTON_RC_STOP 51#define MENU_RC_EXIT BUTTON_RC_STOP
52#define MENU_RC_ENTER BUTTON_RC_PLAY 52#define MENU_RC_ENTER BUTTON_RC_PLAY
53 53
54#elif CONFIG_KEYPAD == PLAYER_PAD 54#elif CONFIG_KEYPAD == PLAYER_PAD
55#define MENU_NEXT BUTTON_RIGHT 55#define MENU_NEXT BUTTON_RIGHT
56#define MENU_PREV BUTTON_LEFT 56#define MENU_PREV BUTTON_LEFT
57#define MENU_EXIT BUTTON_STOP 57#define MENU_EXIT BUTTON_STOP
58#define MENU_EXIT2 BUTTON_MENU 58#define MENU_EXIT_MENU BUTTON_MENU
59#define MENU_ENTER BUTTON_PLAY 59#define MENU_ENTER BUTTON_PLAY
60 60
61#define MENU_RC_NEXT BUTTON_RC_RIGHT 61#define MENU_RC_NEXT BUTTON_RC_RIGHT
62#define MENU_RC_PREV BUTTON_RC_LEFT 62#define MENU_RC_PREV BUTTON_RC_LEFT
63#define MENU_RC_EXIT BUTTON_RC_STOP 63#define MENU_RC_EXIT BUTTON_RC_STOP
64#define MENU_RC_ENTER BUTTON_RC_PLAY 64#define MENU_RC_ENTER BUTTON_RC_PLAY
65 65
66#elif CONFIG_KEYPAD == ONDIO_PAD 66#elif CONFIG_KEYPAD == ONDIO_PAD
67#define MENU_NEXT BUTTON_DOWN 67#define MENU_NEXT BUTTON_DOWN
68#define MENU_PREV BUTTON_UP 68#define MENU_PREV BUTTON_UP
69#define MENU_EXIT BUTTON_LEFT 69#define MENU_EXIT BUTTON_LEFT
70#define MENU_EXIT2 BUTTON_MENU 70#define MENU_EXIT_MENU BUTTON_MENU
71#define MENU_ENTER BUTTON_RIGHT 71#define MENU_ENTER BUTTON_RIGHT
72 72
73#elif CONFIG_KEYPAD == GMINI100_PAD 73#elif CONFIG_KEYPAD == GMINI100_PAD
74#define MENU_NEXT BUTTON_DOWN 74#define MENU_NEXT BUTTON_DOWN
75#define MENU_PREV BUTTON_UP 75#define MENU_PREV BUTTON_UP
76#define MENU_EXIT BUTTON_LEFT 76#define MENU_EXIT BUTTON_LEFT
77#define MENU_EXIT2 BUTTON_OFF 77#define MENU_EXIT2 BUTTON_OFF
78#define MENU_EXIT3 BUTTON_MENU 78#define MENU_EXIT_MENU BUTTON_MENU
79#define MENU_ENTER BUTTON_RIGHT 79#define MENU_ENTER BUTTON_RIGHT
80#define MENU_ENTER2 BUTTON_PLAY 80#define MENU_ENTER2 BUTTON_PLAY
81 81
82#endif 82#endif
83 83
diff --git a/apps/onplay.c b/apps/onplay.c
index f686533324..762ab9e58b 100644
--- a/apps/onplay.c
+++ b/apps/onplay.c
@@ -51,6 +51,7 @@
51#ifdef HAVE_LCD_BITMAP 51#ifdef HAVE_LCD_BITMAP
52#include "icons.h" 52#include "icons.h"
53#endif 53#endif
54#include "main_menu.h"
54 55
55#define DEFAULT_PLAYLIST_NAME "/dynamic.m3u" 56#define DEFAULT_PLAYLIST_NAME "/dynamic.m3u"
56 57
@@ -488,6 +489,19 @@ bool create_dir(void)
488 return true; 489 return true;
489} 490}
490 491
492static bool exit_to_main;
493
494/* catch MENU_EXIT_MENU within context menu to call the main menu afterwards */
495static int onplay_callback(int key, int menu)
496{
497 (void)menu;
498
499 if (key == MENU_EXIT_MENU)
500 exit_to_main = true;
501
502 return key;
503}
504
491int onplay(char* file, int attr, int from) 505int onplay(char* file, int attr, int from)
492{ 506{
493 struct menu_item items[8]; /* increase this if you add entries! */ 507 struct menu_item items[8]; /* increase this if you add entries! */
@@ -495,6 +509,7 @@ int onplay(char* file, int attr, int from)
495 509
496 onplay_result = ONPLAY_OK; 510 onplay_result = ONPLAY_OK;
497 context=from; 511 context=from;
512 exit_to_main = false;
498 selected_file = file; 513 selected_file = file;
499 selected_file_attr = attr; 514 selected_file_attr = attr;
500 515
@@ -523,7 +538,7 @@ int onplay(char* file, int attr, int from)
523 i++; 538 i++;
524 } 539 }
525 540
526#ifdef HAVE_MULTIVOLUME 541#ifdef HAVE_MULTIVOLUME
527 if (!(attr & ATTR_VOLUME)) /* no rename+delete for volumes */ 542 if (!(attr & ATTR_VOLUME)) /* no rename+delete for volumes */
528#endif 543#endif
529 { 544 {
@@ -570,11 +585,14 @@ int onplay(char* file, int attr, int from)
570 button_clear_queue(); 585 button_clear_queue();
571 if (i) 586 if (i)
572 { 587 {
573 m = menu_init( items, i, NULL, NULL, NULL, NULL ); 588 m = menu_init( items, i, onplay_callback, NULL, NULL, NULL );
574 result = menu_show(m); 589 result = menu_show(m);
575 if (result >= 0) 590 if (result >= 0)
576 items[result].function(); 591 items[result].function();
577 menu_exit(m); 592 menu_exit(m);
593
594 if (exit_to_main)
595 result = main_menu();
578 596
579#ifdef HAVE_LCD_BITMAP 597#ifdef HAVE_LCD_BITMAP
580 if (global_settings.statusbar) 598 if (global_settings.statusbar)
diff --git a/apps/wps.c b/apps/wps.c
index 022226c43d..bc545e4f52 100644
--- a/apps/wps.c
+++ b/apps/wps.c
@@ -616,6 +616,7 @@ long wps_show(void)
616 break; 616 break;
617 617
618 /* menu key functions */ 618 /* menu key functions */
619#ifdef WPS_MENU
619#ifdef WPS_RC_MENU 620#ifdef WPS_RC_MENU
620 case WPS_RC_MENU: 621 case WPS_RC_MENU:
621#endif 622#endif
@@ -640,6 +641,7 @@ long wps_show(void)
640#endif 641#endif
641 restore = true; 642 restore = true;
642 break; 643 break;
644#endif /* WPS_MENU */
643 645
644#ifdef WPS_KEYLOCK 646#ifdef WPS_KEYLOCK
645 /* key lock */ 647 /* key lock */
diff --git a/apps/wps.h b/apps/wps.h
index 2af2c72ef3..4f22ed9e45 100644
--- a/apps/wps.h
+++ b/apps/wps.h
@@ -115,11 +115,12 @@
115#define WPS_INCVOL BUTTON_UP 115#define WPS_INCVOL BUTTON_UP
116#define WPS_DECVOL BUTTON_DOWN 116#define WPS_DECVOL BUTTON_DOWN
117#define WPS_PAUSE BUTTON_OFF 117#define WPS_PAUSE BUTTON_OFF
118#define WPS_MENU (BUTTON_MENU | BUTTON_REPEAT) 118/* #define WPS_MENU Ondio can't have both main menu and context menu in wps */
119#define WPS_BROWSE (BUTTON_MENU | BUTTON_REL) 119#define WPS_BROWSE (BUTTON_MENU | BUTTON_REL)
120#define WPS_BROWSE_PRE BUTTON_MENU 120#define WPS_BROWSE_PRE BUTTON_MENU
121#define WPS_KEYLOCK (BUTTON_MENU | BUTTON_DOWN) 121#define WPS_KEYLOCK (BUTTON_MENU | BUTTON_DOWN)
122#define WPS_EXIT (BUTTON_OFF | BUTTON_REPEAT) 122#define WPS_EXIT (BUTTON_OFF | BUTTON_REPEAT)
123#define WPS_CONTEXT (BUTTON_MENU | BUTTON_REPEAT)
123 124
124#elif CONFIG_KEYPAD == GMINI100_PAD 125#elif CONFIG_KEYPAD == GMINI100_PAD
125#define WPS_NEXT (BUTTON_RIGHT | BUTTON_REL) 126#define WPS_NEXT (BUTTON_RIGHT | BUTTON_REL)