summaryrefslogtreecommitdiff
path: root/apps/wps.c
diff options
context:
space:
mode:
authorBjörn Stenberg <bjorn@haxx.se>2003-02-14 15:54:52 +0000
committerBjörn Stenberg <bjorn@haxx.se>2003-02-14 15:54:52 +0000
commite2628d99315c315ba52c5b9abe5ba9d4017e8386 (patch)
tree9ebf62f6d43ef922dca791053ce713246c3e23aa /apps/wps.c
parent84eb9ce4a8a82fee0a85618aa4935aa55cad39fa (diff)
downloadrockbox-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.c52
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
668static 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 */
669int wps_show(void) 706int 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);