mirror of
https://github.com/Rockbox/rockbox.git
synced 2026-01-22 01:30:35 -05:00
Fix FS#12356 : next track advances when skip in repeat one mode. audio_flush_and_reload_track wasn't called when the setting changed from the playback menu.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30857 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
0edf98c9d7
commit
fd187ad14c
1 changed files with 26 additions and 6 deletions
|
|
@ -220,17 +220,29 @@ MAKE_MENU(playback_settings,ID2P(LANG_PLAYBACK),0,
|
|||
static int playback_callback(int action,const struct menu_item_ex *this_item)
|
||||
{
|
||||
static bool old_shuffle = false;
|
||||
static int old_repeat = 0;
|
||||
switch (action)
|
||||
{
|
||||
case ACTION_ENTER_MENUITEM:
|
||||
if (this_item == &shuffle_item)
|
||||
old_shuffle = global_settings.playlist_shuffle;
|
||||
break;
|
||||
case ACTION_EXIT_MENUITEM: /* on exit */
|
||||
if ((this_item == &shuffle_item) &&
|
||||
(old_shuffle != global_settings.playlist_shuffle)
|
||||
&& (audio_status() & AUDIO_STATUS_PLAY))
|
||||
{
|
||||
old_shuffle = global_settings.playlist_shuffle;
|
||||
}
|
||||
else if (this_item == &repeat_mode)
|
||||
{
|
||||
old_repeat = global_settings.repeat_mode;
|
||||
}
|
||||
break;
|
||||
|
||||
case ACTION_EXIT_MENUITEM: /* on exit */
|
||||
if (!(audio_status() & AUDIO_STATUS_PLAY))
|
||||
break;
|
||||
|
||||
if (this_item == &shuffle_item)
|
||||
{
|
||||
if (old_shuffle == global_settings.playlist_shuffle)
|
||||
break;
|
||||
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
dsp_set_replaygain();
|
||||
#endif
|
||||
|
|
@ -243,6 +255,14 @@ static int playback_callback(int action,const struct menu_item_ex *this_item)
|
|||
playlist_sort(NULL, true);
|
||||
}
|
||||
}
|
||||
else if (this_item == &repeat_mode)
|
||||
{
|
||||
if (old_repeat == global_settings.repeat_mode)
|
||||
break;
|
||||
|
||||
audio_flush_and_reload_tracks();
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
return action;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue