summaryrefslogtreecommitdiff
path: root/apps/gui/gwps-common.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/gui/gwps-common.c')
-rw-r--r--apps/gui/gwps-common.c34
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 */
83void fade(bool fade_in) 84void 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
147void 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
146bool ffwd_rew(int button) 180bool ffwd_rew(int button)
147{ 181{
148 unsigned int step = 0; /* current ff/rewind step */ 182 unsigned int step = 0; /* current ff/rewind step */