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" + *: "" - *: 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" + + + *: "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,