summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/dsp.c13
-rw-r--r--apps/lang/english.lang17
-rw-r--r--apps/settings_list.c7
-rw-r--r--manual/configure_rockbox/sound_settings.tex2
4 files changed, 36 insertions, 3 deletions
diff --git a/apps/dsp.c b/apps/dsp.c
index 2113d251a1..4bf1ab92d6 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -1175,6 +1175,18 @@ static void channels_process_sound_chan_karaoke(int count, int32_t *buf[])
1175} 1175}
1176#endif /* DSP_HAVE_ASM_SOUND_CHAN_KARAOKE */ 1176#endif /* DSP_HAVE_ASM_SOUND_CHAN_KARAOKE */
1177 1177
1178static void channels_process_sound_chan_swap(int count, int32_t *buf[])
1179{
1180 int32_t *sl = buf[0], *sr = buf[1];
1181
1182 while (count-- > 0)
1183 {
1184 int32_t ch = *sl;
1185 *sl++ = *sr;
1186 *sr++ = ch;
1187 }
1188}
1189
1178static void dsp_set_channel_config(int value) 1190static void dsp_set_channel_config(int value)
1179{ 1191{
1180 static const channels_process_fn_type channels_process_functions[] = 1192 static const channels_process_fn_type channels_process_functions[] =
@@ -1186,6 +1198,7 @@ static void dsp_set_channel_config(int value)
1186 [SOUND_CHAN_MONO_LEFT] = channels_process_sound_chan_mono_left, 1198 [SOUND_CHAN_MONO_LEFT] = channels_process_sound_chan_mono_left,
1187 [SOUND_CHAN_MONO_RIGHT] = channels_process_sound_chan_mono_right, 1199 [SOUND_CHAN_MONO_RIGHT] = channels_process_sound_chan_mono_right,
1188 [SOUND_CHAN_KARAOKE] = channels_process_sound_chan_karaoke, 1200 [SOUND_CHAN_KARAOKE] = channels_process_sound_chan_karaoke,
1201 [SOUND_CHAN_SWAP] = channels_process_sound_chan_swap,
1189 }; 1202 };
1190 1203
1191 if ((unsigned)value >= ARRAYLEN(channels_process_functions) || 1204 if ((unsigned)value >= ARRAYLEN(channels_process_functions) ||
diff --git a/apps/lang/english.lang b/apps/lang/english.lang
index 5a59473681..d3fac86448 100644
--- a/apps/lang/english.lang
+++ b/apps/lang/english.lang
@@ -12903,3 +12903,20 @@
12903 *: "Cancel Sleep Timer" 12903 *: "Cancel Sleep Timer"
12904 </voice> 12904 </voice>
12905</phrase> 12905</phrase>
12906<phrase>
12907 id: LANG_CHANNEL_SWAP
12908 desc: in sound_settings
12909 user: core
12910 <source>
12911 *: none
12912 swcodec: "Swap channels"
12913 </source>
12914 <dest>
12915 *: none
12916 swcodec: "Swap channels"
12917 </dest>
12918 <voice>
12919 *: none
12920 swcodec: "Swap channels"
12921 </voice>
12922</phrase>
diff --git a/apps/settings_list.c b/apps/settings_list.c
index 521d565f3b..6602ec206a 100644
--- a/apps/settings_list.c
+++ b/apps/settings_list.c
@@ -678,11 +678,12 @@ const struct settings_list settings[] = {
678 678
679 CHOICE_SETTING(F_SOUNDSETTING, channel_config, LANG_CHANNEL_CONFIGURATION, 679 CHOICE_SETTING(F_SOUNDSETTING, channel_config, LANG_CHANNEL_CONFIGURATION,
680 0,"channels", 680 0,"channels",
681 "stereo,mono,custom,mono left,mono right,karaoke", 681 "stereo,mono,custom,mono left,mono right,karaoke,swap",
682 sound_set_channels, 6, 682 sound_set_channels, 7,
683 ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO), 683 ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO),
684 ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT), 684 ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT),
685 ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE)), 685 ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE),
686 ID2P(LANG_CHANNEL_SWAP)),
686 SOUND_SETTING(F_SOUNDSETTING, stereo_width, LANG_STEREO_WIDTH, 687 SOUND_SETTING(F_SOUNDSETTING, stereo_width, LANG_STEREO_WIDTH,
687 "stereo_width", SOUND_STEREO_WIDTH), 688 "stereo_width", SOUND_STEREO_WIDTH),
688#ifdef AUDIOHW_HAVE_DEPTH_3D 689#ifdef AUDIOHW_HAVE_DEPTH_3D
diff --git a/manual/configure_rockbox/sound_settings.tex b/manual/configure_rockbox/sound_settings.tex
index 76965d00cb..54031c5a20 100644
--- a/manual/configure_rockbox/sound_settings.tex
+++ b/manual/configure_rockbox/sound_settings.tex
@@ -169,6 +169,8 @@ change to customise your listening experience.
169 to make the singer sound centrally placed, this often (but not 169 to make the singer sound centrally placed, this often (but not
170 always) has the effect of removing the voice track from a song. This 170 always) has the effect of removing the voice track from a song. This
171 setting also very often has other undesirable effects on the sound. 171 setting also very often has other undesirable effects on the sound.
172 \item[Swap Channels]
173 Exchanges the left and right channels.
172 \end{description} 174 \end{description}
173 175
174\section{Stereo Width} 176\section{Stereo Width}