diff options
Diffstat (limited to 'apps/gui/gwps-common.c')
-rw-r--r-- | apps/gui/gwps-common.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/apps/gui/gwps-common.c b/apps/gui/gwps-common.c index ed4ca17b2a..bcb82df100 100644 --- a/apps/gui/gwps-common.c +++ b/apps/gui/gwps-common.c | |||
@@ -78,6 +78,7 @@ static void gui_wps_statusbar_draw(struct gui_wps *wps, bool force) | |||
78 | #define gui_wps_statusbar_draw(wps, force) \ | 78 | #define gui_wps_statusbar_draw(wps, force) \ |
79 | gui_statusbar_draw((wps)->statusbar, (force)) | 79 | gui_statusbar_draw((wps)->statusbar, (force)) |
80 | #endif | 80 | #endif |
81 | #include "pcmbuf.h" | ||
81 | 82 | ||
82 | /* fades the volume */ | 83 | /* fades the volume */ |
83 | void fade(bool fade_in) | 84 | void fade(bool fade_in) |
@@ -143,6 +144,39 @@ bool update_onvol_change(struct gui_wps * gwps) | |||
143 | return false; | 144 | return false; |
144 | } | 145 | } |
145 | 146 | ||
147 | void play_hop(int direction) | ||
148 | { | ||
149 | if(!wps_state.id3 || !wps_state.id3->length | ||
150 | || global_settings.study_hop_step == 0) | ||
151 | return; | ||
152 | #define STEP ((unsigned)global_settings.study_hop_step *1000) | ||
153 | if(direction == 1 | ||
154 | && wps_state.id3->length - wps_state.id3->elapsed < STEP+1000) { | ||
155 | #if CONFIG_CODEC == SWCODEC | ||
156 | if(global_settings.beep) | ||
157 | pcmbuf_beep(1000, 150, 1500*global_settings.beep); | ||
158 | #endif | ||
159 | return; | ||
160 | } | ||
161 | if((direction == -1 && wps_state.id3->elapsed < STEP)) | ||
162 | wps_state.id3->elapsed = 0; | ||
163 | else | ||
164 | wps_state.id3->elapsed += STEP *direction; | ||
165 | if((audio_status() & AUDIO_STATUS_PLAY) && !wps_state.paused) { | ||
166 | #if (CONFIG_CODEC == SWCODEC) | ||
167 | audio_pre_ff_rewind(); | ||
168 | #else | ||
169 | audio_pause(); | ||
170 | #endif | ||
171 | } | ||
172 | audio_ff_rewind(wps_state.id3->elapsed); | ||
173 | #if (CONFIG_CODEC != SWCODEC) | ||
174 | if (!wps_state.paused) | ||
175 | audio_resume(); | ||
176 | #endif | ||
177 | #undef STEP | ||
178 | } | ||
179 | |||
146 | bool ffwd_rew(int button) | 180 | bool ffwd_rew(int button) |
147 | { | 181 | { |
148 | unsigned int step = 0; /* current ff/rewind step */ | 182 | unsigned int step = 0; /* current ff/rewind step */ |