forked from len0rd/rockbox
Accept FS#5344 by Mike Schmitt. Add a "shuffle and track skip" option to
crossfade. Bumps config versino, so SAVE SETTINGS before updating. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@11811 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
parent
89990b0ca8
commit
3bceded793
6 changed files with 45 additions and 9 deletions
|
|
@ -10372,3 +10372,18 @@
|
|||
*: "Properties"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
id: LANG_SHUFFLE_TRACKSKIP
|
||||
desc: in settings_menu
|
||||
user:
|
||||
<source>
|
||||
*: "Shuffle and Track Skip"
|
||||
</source>
|
||||
<dest>
|
||||
*: "Shuffle and Track Skip"
|
||||
</dest>
|
||||
<voice>
|
||||
*: "Shuffle and Track Skip"
|
||||
</voice>
|
||||
</phrase>
|
||||
<phrase>
|
||||
|
|
|
|||
|
|
@ -1819,10 +1819,27 @@ static void codec_track_skip_done(bool was_manual)
|
|||
}
|
||||
/* Automatic track change w/crossfade, if not in "Track Skip Only" mode. */
|
||||
else if (pcmbuf_is_crossfade_enabled() && !pcmbuf_is_crossfade_active()
|
||||
&& global_settings.crossfade != 2)
|
||||
&& global_settings.crossfade != CROSSFADE_ENABLE_TRACKSKIP )
|
||||
{
|
||||
pcmbuf_crossfade_init(false);
|
||||
codec_track_changed();
|
||||
if ( global_settings.crossfade
|
||||
== CROSSFADE_ENABLE_SHUFFLE_AND_TRACKSKIP )
|
||||
{
|
||||
if (global_settings.playlist_shuffle) /* shuffle mode is on, so crossfade: */
|
||||
{
|
||||
pcmbuf_crossfade_init(false);
|
||||
codec_track_changed();
|
||||
}
|
||||
else /* shuffle mode is off, so do a gapless track change */
|
||||
{
|
||||
pcmbuf_set_position_callback(codec_pcmbuf_position_callback); /* Gapless playback */
|
||||
pcmbuf_set_event_handler(codec_pcmbuf_track_changed_callback); /* copied from below */
|
||||
}
|
||||
}
|
||||
else /* normal crossfade: */
|
||||
{
|
||||
pcmbuf_crossfade_init(false);
|
||||
codec_track_changed();
|
||||
}
|
||||
}
|
||||
/* Gapless playback. */
|
||||
else
|
||||
|
|
|
|||
|
|
@ -100,7 +100,7 @@ const char rec_base_directory[] = REC_BASE_DIR;
|
|||
#include "eq_menu.h"
|
||||
#endif
|
||||
|
||||
#define CONFIG_BLOCK_VERSION 57
|
||||
#define CONFIG_BLOCK_VERSION 58
|
||||
#define CONFIG_BLOCK_SIZE 512
|
||||
#define RTC_BLOCK_SIZE 44
|
||||
|
||||
|
|
@ -581,7 +581,7 @@ static const struct bit_entry hd_bits[] =
|
|||
{1, S_O(replaygain_noclip), false, "replaygain noclip", off_on },
|
||||
{8 | SIGNED, S_O(replaygain_preamp), 0, "replaygain preamp", NULL },
|
||||
{2, S_O(beep), 0, "beep", "off,weak,moderate,strong" },
|
||||
{2, S_O(crossfade), 0, "crossfade", "off,shuffle,track skip,always"},
|
||||
{3, S_O(crossfade), 0, "crossfade", "off,shuffle,track skip,shuffle and track skip,always"},
|
||||
{3, S_O(crossfade_fade_in_delay), 0, "crossfade fade in delay", NULL},
|
||||
{3, S_O(crossfade_fade_out_delay), 0, "crossfade fade out delay", NULL},
|
||||
{4, S_O(crossfade_fade_in_duration), 0, "crossfade fade in duration", NULL},
|
||||
|
|
|
|||
|
|
@ -87,8 +87,10 @@
|
|||
#define TRIG_DURATION_COUNT 13
|
||||
extern const char * const trig_durations[TRIG_DURATION_COUNT];
|
||||
|
||||
#define CROSSFADE_ENABLE_SHUFFLE 1
|
||||
#define CROSSFADE_ENABLE_ALWAYS 2
|
||||
#define CROSSFADE_ENABLE_SHUFFLE 1
|
||||
#define CROSSFADE_ENABLE_TRACKSKIP 2
|
||||
#define CROSSFADE_ENABLE_SHUFFLE_AND_TRACKSKIP 3
|
||||
#define CROSSFADE_ENABLE_ALWAYS 4
|
||||
|
||||
#define FOLDER_ADVANCE_OFF 0
|
||||
#define FOLDER_ADVANCE_NEXT 1
|
||||
|
|
@ -144,7 +146,7 @@ struct user_settings
|
|||
bool superbass; /* true/false */
|
||||
|
||||
#if CONFIG_CODEC == SWCODEC
|
||||
int crossfade; /* Enable crossfade (0=off,1=shuffle,2=always) */
|
||||
int crossfade; /* Enable crossfade (0=off,1=shuffle,2=trackskip,3=shuff&trackskip,4=always) */
|
||||
int crossfade_fade_in_delay; /* Fade in delay (0-15s) */
|
||||
int crossfade_fade_out_delay; /* Fade out delay (0-15s) */
|
||||
int crossfade_fade_in_duration; /* Fade in duration (0-15s) */
|
||||
|
|
|
|||
|
|
@ -1514,13 +1514,14 @@ static bool crossfade(void)
|
|||
{ STR(LANG_OFF) },
|
||||
{ STR(LANG_SHUFFLE) },
|
||||
{ STR(LANG_TRACKSKIP) },
|
||||
{ STR(LANG_SHUFFLE_TRACKSKIP) },
|
||||
{ STR(LANG_ALWAYS) },
|
||||
};
|
||||
|
||||
bool ret;
|
||||
|
||||
ret=set_option( str(LANG_CROSSFADE_ENABLE),
|
||||
&global_settings.crossfade, INT, names, 4, NULL);
|
||||
&global_settings.crossfade, INT, names, 5, NULL);
|
||||
audio_set_crossfade(global_settings.crossfade);
|
||||
return ret;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -255,3 +255,4 @@ Stephane Doyon
|
|||
Robert Carboneau
|
||||
Ye Wei
|
||||
Bryan Childs
|
||||
Mike Schmitt
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue