diff options
author | Björn Stenberg <bjorn@haxx.se> | 2003-02-14 15:54:52 +0000 |
---|---|---|
committer | Björn Stenberg <bjorn@haxx.se> | 2003-02-14 15:54:52 +0000 |
commit | e2628d99315c315ba52c5b9abe5ba9d4017e8386 (patch) | |
tree | 9ebf62f6d43ef922dca791053ce713246c3e23aa /apps/wps.c | |
parent | 84eb9ce4a8a82fee0a85618aa4935aa55cad39fa (diff) | |
download | rockbox-e2628d99315c315ba52c5b9abe5ba9d4017e8386.tar.gz rockbox-e2628d99315c315ba52c5b9abe5ba9d4017e8386.zip |
Volume fade patch by Eric Linenberg
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@3263 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/wps.c')
-rw-r--r-- | apps/wps.c | 52 |
1 files changed, 49 insertions, 3 deletions
diff --git a/apps/wps.c b/apps/wps.c index de5ab0a8c1..1071bcc035 100644 --- a/apps/wps.c +++ b/apps/wps.c | |||
@@ -665,6 +665,43 @@ static bool menu(void) | |||
665 | return false; | 665 | return false; |
666 | } | 666 | } |
667 | 667 | ||
668 | static void fade(bool fade_in) | ||
669 | { | ||
670 | if (fade_in) { | ||
671 | /* fade in */ | ||
672 | int current_volume = 20; | ||
673 | |||
674 | /* zero out the sound */ | ||
675 | mpeg_sound_set(SOUND_VOLUME, current_volume); | ||
676 | |||
677 | mpeg_resume(); | ||
678 | sleep(1); /* let mpeg thread run */ | ||
679 | |||
680 | while (current_volume < global_settings.volume) { | ||
681 | current_volume += 2; | ||
682 | sleep(1); | ||
683 | mpeg_sound_set(SOUND_VOLUME, current_volume); | ||
684 | } | ||
685 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | ||
686 | } | ||
687 | else { | ||
688 | /* fade out */ | ||
689 | int current_volume = global_settings.volume; | ||
690 | |||
691 | while (current_volume > 20) { | ||
692 | current_volume -= 2; | ||
693 | sleep(1); | ||
694 | mpeg_sound_set(SOUND_VOLUME, current_volume); | ||
695 | } | ||
696 | mpeg_pause(); | ||
697 | sleep(1); /* let mpeg thread run */ | ||
698 | |||
699 | /* reset volume to what it was before the fade */ | ||
700 | mpeg_sound_set(SOUND_VOLUME, global_settings.volume); | ||
701 | } | ||
702 | } | ||
703 | |||
704 | |||
668 | /* demonstrates showing different formats from playtune */ | 705 | /* demonstrates showing different formats from playtune */ |
669 | int wps_show(void) | 706 | int wps_show(void) |
670 | { | 707 | { |
@@ -801,15 +838,21 @@ int wps_show(void) | |||
801 | case BUTTON_PLAY: | 838 | case BUTTON_PLAY: |
802 | if ( paused ) | 839 | if ( paused ) |
803 | { | 840 | { |
804 | mpeg_resume(); | ||
805 | paused = false; | 841 | paused = false; |
806 | status_set_playmode(STATUS_PLAY); | 842 | status_set_playmode(STATUS_PLAY); |
843 | if ( global_settings.fade_on_stop ) | ||
844 | fade(1); | ||
845 | else | ||
846 | mpeg_resume(); | ||
807 | } | 847 | } |
808 | else | 848 | else |
809 | { | 849 | { |
810 | mpeg_pause(); | ||
811 | paused = true; | 850 | paused = true; |
812 | status_set_playmode(STATUS_PAUSE); | 851 | status_set_playmode(STATUS_PAUSE); |
852 | if ( global_settings.fade_on_stop ) | ||
853 | fade(0); | ||
854 | else | ||
855 | mpeg_pause(); | ||
813 | if (global_settings.resume) { | 856 | if (global_settings.resume) { |
814 | settings_save(); | 857 | settings_save(); |
815 | #ifndef HAVE_RTC | 858 | #ifndef HAVE_RTC |
@@ -915,7 +958,7 @@ int wps_show(void) | |||
915 | 958 | ||
916 | /* stop and exit wps */ | 959 | /* stop and exit wps */ |
917 | #ifdef HAVE_RECORDER_KEYPAD | 960 | #ifdef HAVE_RECORDER_KEYPAD |
918 | case BUTTON_OFF | BUTTON_REL: | 961 | case BUTTON_OFF: |
919 | #else | 962 | #else |
920 | case BUTTON_STOP | BUTTON_REL: | 963 | case BUTTON_STOP | BUTTON_REL: |
921 | if ( lastbutton != BUTTON_STOP ) | 964 | if ( lastbutton != BUTTON_STOP ) |
@@ -947,6 +990,9 @@ int wps_show(void) | |||
947 | status_set_record(false); | 990 | status_set_record(false); |
948 | status_set_audio(false); | 991 | status_set_audio(false); |
949 | #endif | 992 | #endif |
993 | if (global_settings.fade_on_stop) | ||
994 | fade(0); | ||
995 | |||
950 | lcd_stop_scroll(); | 996 | lcd_stop_scroll(); |
951 | mpeg_stop(); | 997 | mpeg_stop(); |
952 | status_set_playmode(STATUS_STOP); | 998 | status_set_playmode(STATUS_STOP); |