1
0
Fork 0
forked from len0rd/rockbox

Add option to exchange the left and right stereo channels. Patch by Dave Chapman and Martin Sägmüller. Also add manual entry (by Michael Giacomelli). Note that this setting will confuse non-software effect options like channel balance. This should be addressed in a future commit.

git-svn-id: svn://svn.rockbox.org/rockbox/trunk@30837 a1c6a512-1295-4272-9138-f99709370657
This commit is contained in:
Michael Giacomelli 2011-10-26 18:18:34 +00:00
parent 4ef4830f0b
commit 5c4bd11d91
4 changed files with 36 additions and 3 deletions

View file

@ -1175,6 +1175,18 @@ static void channels_process_sound_chan_karaoke(int count, int32_t *buf[])
} }
#endif /* DSP_HAVE_ASM_SOUND_CHAN_KARAOKE */ #endif /* DSP_HAVE_ASM_SOUND_CHAN_KARAOKE */
static void channels_process_sound_chan_swap(int count, int32_t *buf[])
{
int32_t *sl = buf[0], *sr = buf[1];
while (count-- > 0)
{
int32_t ch = *sl;
*sl++ = *sr;
*sr++ = ch;
}
}
static void dsp_set_channel_config(int value) static void dsp_set_channel_config(int value)
{ {
static const channels_process_fn_type channels_process_functions[] = static const channels_process_fn_type channels_process_functions[] =
@ -1186,6 +1198,7 @@ static void dsp_set_channel_config(int value)
[SOUND_CHAN_MONO_LEFT] = channels_process_sound_chan_mono_left, [SOUND_CHAN_MONO_LEFT] = channels_process_sound_chan_mono_left,
[SOUND_CHAN_MONO_RIGHT] = channels_process_sound_chan_mono_right, [SOUND_CHAN_MONO_RIGHT] = channels_process_sound_chan_mono_right,
[SOUND_CHAN_KARAOKE] = channels_process_sound_chan_karaoke, [SOUND_CHAN_KARAOKE] = channels_process_sound_chan_karaoke,
[SOUND_CHAN_SWAP] = channels_process_sound_chan_swap,
}; };
if ((unsigned)value >= ARRAYLEN(channels_process_functions) || if ((unsigned)value >= ARRAYLEN(channels_process_functions) ||

View file

@ -12903,3 +12903,20 @@
*: "Cancel Sleep Timer" *: "Cancel Sleep Timer"
</voice> </voice>
</phrase> </phrase>
<phrase>
id: LANG_CHANNEL_SWAP
desc: in sound_settings
user: core
<source>
*: none
swcodec: "Swap channels"
</source>
<dest>
*: none
swcodec: "Swap channels"
</dest>
<voice>
*: none
swcodec: "Swap channels"
</voice>
</phrase>

View file

@ -678,11 +678,12 @@ const struct settings_list settings[] = {
CHOICE_SETTING(F_SOUNDSETTING, channel_config, LANG_CHANNEL_CONFIGURATION, CHOICE_SETTING(F_SOUNDSETTING, channel_config, LANG_CHANNEL_CONFIGURATION,
0,"channels", 0,"channels",
"stereo,mono,custom,mono left,mono right,karaoke", "stereo,mono,custom,mono left,mono right,karaoke,swap",
sound_set_channels, 6, sound_set_channels, 7,
ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO), ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO),
ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT), ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT),
ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE)), ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE),
ID2P(LANG_CHANNEL_SWAP)),
SOUND_SETTING(F_SOUNDSETTING, stereo_width, LANG_STEREO_WIDTH, SOUND_SETTING(F_SOUNDSETTING, stereo_width, LANG_STEREO_WIDTH,
"stereo_width", SOUND_STEREO_WIDTH), "stereo_width", SOUND_STEREO_WIDTH),
#ifdef AUDIOHW_HAVE_DEPTH_3D #ifdef AUDIOHW_HAVE_DEPTH_3D

View file

@ -169,6 +169,8 @@ change to customise your listening experience.
to make the singer sound centrally placed, this often (but not to make the singer sound centrally placed, this often (but not
always) has the effect of removing the voice track from a song. This always) has the effect of removing the voice track from a song. This
setting also very often has other undesirable effects on the sound. setting also very often has other undesirable effects on the sound.
\item[Swap Channels]
Exchanges the left and right channels.
\end{description} \end{description}
\section{Stereo Width} \section{Stereo Width}