summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/gui/gwps.c21
1 files changed, 18 insertions, 3 deletions
diff --git a/apps/gui/gwps.c b/apps/gui/gwps.c
index 06e7ae4aed..c3658e6c82 100644
--- a/apps/gui/gwps.c
+++ b/apps/gui/gwps.c
@@ -89,6 +89,7 @@ long gui_wps_show(void)
bool exit = false;
bool update_track = false;
int i;
+ long last_left = 0, last_right = 0;
action_signalscreenchange();
@@ -293,18 +294,32 @@ long gui_wps_show(void)
}
}
break;
- /* fast forward / rewind */
+ /* fast forward
+ OR next dir if this is straight after ACTION_WPS_SKIPNEXT */
case ACTION_WPS_SEEKFWD:
+ if (global_settings.party_mode)
+ break;
+ if (current_tick -last_right < HZ)
+ audio_next_dir();
+ else ffwd_rew(ACTION_WPS_SEEKFWD);
+ last_right = 0;
+ break;
+ /* fast rewind
+ OR prev dir if this is straight after ACTION_WPS_SKIPPREV */
case ACTION_WPS_SEEKBACK:
if (global_settings.party_mode)
break;
- ffwd_rew(button);
+ if (current_tick -last_left < HZ)
+ audio_prev_dir();
+ else ffwd_rew(ACTION_WPS_SEEKBACK);
+ last_left = 0;
break;
/* prev / restart */
case ACTION_WPS_SKIPPREV:
if (global_settings.party_mode)
break;
+ last_left = current_tick;
update_track = true;
#ifdef AB_REPEAT_ENABLE
@@ -349,6 +364,7 @@ long gui_wps_show(void)
case ACTION_WPS_SKIPNEXT:
if (global_settings.party_mode)
break;
+ last_right = current_tick;
update_track = true;
#ifdef AB_REPEAT_ENABLE
@@ -368,7 +384,6 @@ long gui_wps_show(void)
}
/* ...otherwise, do it normally */
#endif
-
audio_next();
break;
/* next / prev directories */