summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/wps.c53
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
62bool keys_locked = false; 62bool keys_locked = false;
63bool device_muted = false;
63static bool ff_rewind = false; 64static bool ff_rewind = false;
64 65
65static void draw_screen(struct mp3entry* id3) 66static 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