diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/menu.c | 4 | ||||
-rw-r--r-- | apps/menu.h | 90 | ||||
-rw-r--r-- | apps/onplay.c | 22 | ||||
-rw-r--r-- | apps/wps.c | 2 | ||||
-rw-r--r-- | apps/wps.h | 3 |
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 | ||
492 | static bool exit_to_main; | ||
493 | |||
494 | /* catch MENU_EXIT_MENU within context menu to call the main menu afterwards */ | ||
495 | static 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 | |||
491 | int onplay(char* file, int attr, int from) | 505 | int 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) |