summaryrefslogtreecommitdiff
path: root/apps/gui
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui')
-rw-r--r--apps/gui/gwps-common.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c
index 0498b83e7e..b90c216f58 100644
--- a/apps/gui/gwps-common.c
+++ b/apps/gui/gwps-common.c
@@ -82,12 +82,14 @@ static void gui_wps_statusbar_draw(struct gui_wps *wps, bool force)
82#include "pcmbuf.h" 82#include "pcmbuf.h"
83 83
84/* fades the volume */ 84/* fades the volume */
85bool wps_fading_out = false;
85void fade(bool fade_in) 86void fade(bool fade_in)
86{ 87{
87 int fp_global_vol = global_settings.volume << 8; 88 int fp_global_vol = global_settings.volume << 8;
88 int fp_min_vol = sound_min(SOUND_VOLUME) << 8; 89 int fp_min_vol = sound_min(SOUND_VOLUME) << 8;
89 int fp_step = (fp_global_vol - fp_min_vol) / 30; 90 int fp_step = (fp_global_vol - fp_min_vol) / 30;
90 91 int i;
92 wps_fading_out = !fade_in;
91 if (fade_in) { 93 if (fade_in) {
92 /* fade in */ 94 /* fade in */
93 int fp_volume = fp_min_vol; 95 int fp_volume = fp_min_vol;
@@ -101,6 +103,8 @@ void fade(bool fade_in)
101 while (fp_volume < fp_global_vol - fp_step) { 103 while (fp_volume < fp_global_vol - fp_step) {
102 fp_volume += fp_step; 104 fp_volume += fp_step;
103 sound_set_volume(fp_volume >> 8); 105 sound_set_volume(fp_volume >> 8);
106 FOR_NB_SCREENS(i)
107 gui_wps_refresh(&gui_wps[i], 0, WPS_REFRESH_NON_STATIC);
104 sleep(1); 108 sleep(1);
105 } 109 }
106 sound_set_volume(global_settings.volume); 110 sound_set_volume(global_settings.volume);
@@ -112,10 +116,12 @@ void fade(bool fade_in)
112 while (fp_volume > fp_min_vol + fp_step) { 116 while (fp_volume > fp_min_vol + fp_step) {
113 fp_volume -= fp_step; 117 fp_volume -= fp_step;
114 sound_set_volume(fp_volume >> 8); 118 sound_set_volume(fp_volume >> 8);
119 FOR_NB_SCREENS(i)
120 gui_wps_refresh(&gui_wps[i], 0, WPS_REFRESH_NON_STATIC);
115 sleep(1); 121 sleep(1);
116 } 122 }
117 audio_pause(); 123 audio_pause();
118 124 wps_fading_out = false;
119#if CONFIG_CODEC != SWCODEC 125#if CONFIG_CODEC != SWCODEC
120#ifndef SIMULATOR 126#ifndef SIMULATOR
121 /* let audio thread run and wait for the mas to run out of data */ 127 /* let audio thread run and wait for the mas to run out of data */
@@ -1139,7 +1145,8 @@ static char *get_token_value(struct gui_wps *gwps,
1139 int mode = 1; 1145 int mode = 1;
1140 if (status == AUDIO_STATUS_PLAY) 1146 if (status == AUDIO_STATUS_PLAY)
1141 mode = 2; 1147 mode = 2;
1142 if (status & AUDIO_STATUS_PAUSE && !status_get_ffmode()) 1148 if (wps_fading_out ||
1149 (status & AUDIO_STATUS_PAUSE && !status_get_ffmode()))
1143 mode = 3; 1150 mode = 3;
1144 if (status_get_ffmode() == STATUS_FASTFORWARD) 1151 if (status_get_ffmode() == STATUS_FASTFORWARD)
1145 mode = 4; 1152 mode = 4;