diff --git a/apps/gui/wps.c b/apps/gui/wps.c
index 5404d70638..0103ace53c 100644
--- a/apps/gui/wps.c
+++ b/apps/gui/wps.c
@@ -125,6 +125,17 @@ void pause_action(bool may_fade, bool updatewps)
fade(false, updatewps);
else
audio_pause();
+
+ if (global_settings.pause_rewind) {
+ long newpos;
+
+#if (CONFIG_CODEC == SWCODEC)
+ audio_pre_ff_rewind();
+#endif
+ newpos = audio_current_track()->elapsed
+ - global_settings.pause_rewind * 1000;
+ audio_ff_rewind(newpos > 0 ? newpos : 0);
+ }
}
void unpause_action(bool may_fade, bool updatewps)
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 26a2274680..71dee79ee3 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -2069,19 +2069,16 @@
id: LANG_HEADPHONE_UNPLUG_RW
- desc: in pause_phones_menu.
+ desc: deprecated
user: core
- *: none
- headphone_detection: "Duration to Rewind"
+ *: ""
- *: none
- headphone_detection: "Duration to Rewind"
+ *: ""
@@ -12744,3 +12741,17 @@
*: "In custom directories only"
+
+ id: LANG_PAUSE_REWIND
+ desc: Seconds to rewind when rewind on pause is enabled.
+ user: core
+
+
+ *: "Rewind on Pause"
+
+
+ *: "Rewind on Pause"
+
+
diff --git a/apps/menus/playback_menu.c b/apps/menus/playback_menu.c
index 4153c1c776..1b1a13a6a5 100644
--- a/apps/menus/playback_menu.c
+++ b/apps/menus/playback_menu.c
@@ -173,10 +173,9 @@ MENUITEM_SETTING(cuesheet, &global_settings.cuesheet, cuesheet_callback);
#ifdef HAVE_HEADPHONE_DETECTION
MENUITEM_SETTING(unplug_mode, &global_settings.unplug_mode, NULL);
-MENUITEM_SETTING(unplug_rw, &global_settings.unplug_rw, NULL);
MENUITEM_SETTING(unplug_autoresume, &global_settings.unplug_autoresume, NULL);
MAKE_MENU(unplug_menu, ID2P(LANG_HEADPHONE_UNPLUG), 0, Icon_NOICON,
- &unplug_mode, &unplug_rw, &unplug_autoresume);
+ &unplug_mode, &unplug_autoresume);
#endif
MENUITEM_SETTING(skip_length, &global_settings.skip_length, NULL);
@@ -184,6 +183,7 @@ MENUITEM_SETTING(prevent_skip, &global_settings.prevent_skip, NULL);
#if CONFIG_CODEC == SWCODEC
MENUITEM_SETTING(resume_rewind, &global_settings.resume_rewind, NULL);
#endif
+MENUITEM_SETTING(pause_rewind, &global_settings.pause_rewind, NULL);
MAKE_MENU(playback_settings,ID2P(LANG_PLAYBACK),0,
Icon_Playback_menu,
@@ -214,6 +214,7 @@ MAKE_MENU(playback_settings,ID2P(LANG_PLAYBACK),0,
#if CONFIG_CODEC == SWCODEC
&resume_rewind,
#endif
+ &pause_rewind,
);
static int playback_callback(int action,const struct menu_item_ex *this_item)
diff --git a/apps/misc.c b/apps/misc.c
index d72d7a4da0..b027215ccc 100644
--- a/apps/misc.c
+++ b/apps/misc.c
@@ -504,19 +504,6 @@ static void unplug_change(bool inserted)
{
headphone_caused_pause = true;
pause_action(false, false);
-
- if (global_settings.unplug_rw)
- {
-#if (CONFIG_CODEC == SWCODEC)
- audio_pre_ff_rewind();
-#endif
- if (audio_current_track()->elapsed >
- (unsigned long)(global_settings.unplug_rw*1000))
- audio_ff_rewind(audio_current_track()->elapsed -
- (global_settings.unplug_rw*1000));
- else
- audio_ff_rewind(0);
- }
}
}
}
diff --git a/apps/settings.h b/apps/settings.h
index 3f49cfcb2c..bed88c82ea 100644
--- a/apps/settings.h
+++ b/apps/settings.h
@@ -483,9 +483,9 @@ struct user_settings
int touchpad_sensitivity;
#endif
+ int pause_rewind; /* time in s to rewind when pausing */
#ifdef HAVE_HEADPHONE_DETECTION
int unplug_mode; /* pause on headphone unplug */
- int unplug_rw; /* time in s to rewind when pausing */
bool unplug_autoresume; /* disable auto-resume if no phones */
#endif
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 5b9a84036f..f282b8afc0 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -1537,13 +1537,13 @@ const struct settings_list settings[] = {
"pause on headphone unplug", "off,pause,pause and resume",
NULL, 3, ID2P(LANG_OFF), ID2P(LANG_PAUSE),
ID2P(LANG_HEADPHONE_UNPLUG_RESUME)),
- INT_SETTING(0, unplug_rw, LANG_HEADPHONE_UNPLUG_RW, 0,
- "rewind duration on pause", UNIT_SEC, 0, 15, 1, NULL, NULL,
- NULL),
OFFON_SETTING(0, unplug_autoresume,
LANG_HEADPHONE_UNPLUG_DISABLE_AUTORESUME, false,
"disable autoresume if phones not present",NULL),
#endif
+ INT_SETTING(0, pause_rewind, LANG_PAUSE_REWIND, 0,
+ "rewind duration on pause", UNIT_SEC, 0, 15, 1, NULL, NULL,
+ NULL),
#if CONFIG_TUNER
CHOICE_SETTING(0, fm_region, LANG_FM_REGION, 0,
"fm_region", "eu,us,jp,kr,it,wo", set_radio_region, 6,