diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/wps.c | 53 |
1 files changed, 36 insertions, 17 deletions
diff --git a/apps/wps.c b/apps/wps.c index f80cec95a4..9255b86243 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -54,12 +54,13 @@ | |||
54 | #define PLAY_DISPLAY_TRACK_TITLE 2 | 54 | #define PLAY_DISPLAY_TRACK_TITLE 2 |
55 | 55 | ||
56 | #ifdef HAVE_RECORDER_KEYPAD | 56 | #ifdef HAVE_RECORDER_KEYPAD |
57 | #define RELEASE_MASK (BUTTON_F1 | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT) | 57 | #define RELEASE_MASK (BUTTON_F1 | BUTTON_DOWN | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_UP) |
58 | #else | 58 | #else |
59 | #define RELEASE_MASK (BUTTON_MENU | BUTTON_STOP | BUTTON_LEFT | BUTTON_RIGHT) | 59 | #define RELEASE_MASK (BUTTON_MENU | BUTTON_STOP | BUTTON_LEFT | BUTTON_RIGHT | BUTTON_PLAY) |
60 | #endif | 60 | #endif |
61 | 61 | ||
62 | bool keys_locked = false; | 62 | bool keys_locked = false; |
63 | bool device_muted = false; | ||
63 | static bool ff_rewind = false; | 64 | static bool ff_rewind = false; |
64 | 65 | ||
65 | static void draw_screen(struct mp3entry* id3) | 66 | static void draw_screen(struct mp3entry* id3) |
@@ -386,6 +387,7 @@ int wps_show(void) | |||
386 | bool dont_go_to_menu = false; | 387 | bool dont_go_to_menu = false; |
387 | bool menu_button_is_down = false; | 388 | bool menu_button_is_down = false; |
388 | bool pending_keylock = true; /* Keylock will go ON next time */ | 389 | bool pending_keylock = true; /* Keylock will go ON next time */ |
390 | bool pending_mute = true; /* Mute will go ON next time */ | ||
389 | int old_release_mask; | 391 | int old_release_mask; |
390 | int button; | 392 | int button; |
391 | int ff_rewind_count = 0; | 393 | int ff_rewind_count = 0; |
@@ -629,11 +631,14 @@ int wps_show(void) | |||
629 | draw_screen(id3); | 631 | draw_screen(id3); |
630 | break; | 632 | break; |
631 | } | 633 | } |
632 | dont_go_to_menu = true; | ||
633 | lcd_stop_scroll(); | 634 | lcd_stop_scroll(); |
635 | lcd_icon(ICON_PARAM, true); | ||
636 | lcd_icon(ICON_AUDIO, true); | ||
634 | retval = player_id3_show(); | 637 | retval = player_id3_show(); |
635 | if(retval == SYS_USB_CONNECTED) | 638 | if(retval == SYS_USB_CONNECTED) |
636 | return SYS_USB_CONNECTED; | 639 | return SYS_USB_CONNECTED; |
640 | lcd_icon(ICON_PARAM, false); | ||
641 | lcd_icon(ICON_AUDIO, true); | ||
637 | draw_screen(id3); | 642 | draw_screen(id3); |
638 | break; | 643 | break; |
639 | 644 | ||
@@ -643,6 +648,13 @@ int wps_show(void) | |||
643 | menu_button_is_down = true; | 648 | menu_button_is_down = true; |
644 | break; | 649 | break; |
645 | 650 | ||
651 | case BUTTON_PLAY | BUTTON_REL: | ||
652 | /* The PLAY key has been release while the MENU key | ||
653 | was held */ | ||
654 | if(menu_button_is_down) | ||
655 | pending_mute = !pending_mute; | ||
656 | break; | ||
657 | |||
646 | case BUTTON_STOP | BUTTON_REL: | 658 | case BUTTON_STOP | BUTTON_REL: |
647 | /* The STOP key has been release while the MENU key | 659 | /* The STOP key has been release while the MENU key |
648 | was held */ | 660 | was held */ |
@@ -653,7 +665,17 @@ int wps_show(void) | |||
653 | case BUTTON_F1: | 665 | case BUTTON_F1: |
654 | menu_button_is_down = true; | 666 | menu_button_is_down = true; |
655 | break; | 667 | break; |
656 | 668 | ||
669 | case BUTTON_UP | BUTTON_REL: | ||
670 | /* The UP key has been release while the F1 key | ||
671 | was held */ | ||
672 | if(menu_button_is_down) | ||
673 | { | ||
674 | pending_mute = !pending_mute; | ||
675 | debugf("pending: %d\n", pending_mute); | ||
676 | } | ||
677 | break; | ||
678 | |||
657 | case BUTTON_DOWN | BUTTON_REL: | 679 | case BUTTON_DOWN | BUTTON_REL: |
658 | /* The DOWN key has been release while the F1 key | 680 | /* The DOWN key has been release while the F1 key |
659 | was held */ | 681 | was held */ |
@@ -668,7 +690,7 @@ int wps_show(void) | |||
668 | #ifdef HAVE_RECORDER_KEYPAD | 690 | #ifdef HAVE_RECORDER_KEYPAD |
669 | case BUTTON_F1 | BUTTON_UP: | 691 | case BUTTON_F1 | BUTTON_UP: |
670 | #else | 692 | #else |
671 | case BUTTON_MENU | BUTTON_UP: | 693 | case BUTTON_MENU | BUTTON_PLAY: |
672 | #endif | 694 | #endif |
673 | if(keys_locked) | 695 | if(keys_locked) |
674 | { | 696 | { |
@@ -676,22 +698,19 @@ int wps_show(void) | |||
676 | draw_screen(id3); | 698 | draw_screen(id3); |
677 | break; | 699 | break; |
678 | } | 700 | } |
679 | dont_go_to_menu = true; | ||
680 | 701 | ||
681 | if(global_settings.muted == false) | 702 | if(device_muted != pending_mute) |
682 | { | 703 | { |
683 | global_settings.muted = true; | 704 | device_muted = pending_mute; |
684 | mpeg_sound_set(SOUND_VOLUME, 0); | 705 | |
685 | display_mute_text(global_settings.muted); | 706 | if(device_muted) |
686 | draw_screen(id3); | 707 | mpeg_sound_set(SOUND_VOLUME, 0); |
687 | } | 708 | else |
688 | else | 709 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); |
689 | { | 710 | display_mute_text(device_muted); |
690 | global_settings.muted = false; | ||
691 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | ||
692 | display_mute_text(global_settings.muted); | ||
693 | draw_screen(id3); | 711 | draw_screen(id3); |
694 | } | 712 | } |
713 | dont_go_to_menu = true; | ||
695 | break; | 714 | break; |
696 | 715 | ||
697 | #ifdef HAVE_RECORDER_KEYPAD | 716 | #ifdef HAVE_RECORDER_KEYPAD |