summaryrefslogtreecommitdiff
path: root/apps/dsp.c
diff options
context:
space:
mode:
authorThom Johansen <thomj@rockbox.org>2007-03-07 19:11:16 +0000
committerThom Johansen <thomj@rockbox.org>2007-03-07 19:11:16 +0000
commit99b2742cd0de7181677f3aa7222caa5dc358ee12 (patch)
tree55c0cec293ca3fb1c35dc5fa983bb03bff54785d /apps/dsp.c
parent09b97b4a21921f05d29d215e0d5cf7df4f83a472 (diff)
downloadrockbox-99b2742cd0de7181677f3aa7222caa5dc358ee12.tar.gz
rockbox-99b2742cd0de7181677f3aa7222caa5dc358ee12.zip
Use the new DSP callback functionality in firmware/sound.c to deal with SWCODEC stereo width and channel configuration instead of the old more spread out #ifdef based approach. Rename the DSP functions involved for more consistent naming.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@12677 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'apps/dsp.c')
-rw-r--r--apps/dsp.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/apps/dsp.c b/apps/dsp.c
index 9e410f879a..be851e2305 100644
--- a/apps/dsp.c
+++ b/apps/dsp.c
@@ -971,7 +971,7 @@ static void apply_gain(int count, int32_t *buf[])
971 FRACMUL_8_LOOP(s, gain, sl, d); 971 FRACMUL_8_LOOP(s, gain, sl, d);
972} 972}
973 973
974void stereo_width_set(int value) 974void dsp_set_stereo_width(int value)
975{ 975{
976 long width, straight, cross; 976 long width, straight, cross;
977 977
@@ -1022,6 +1022,8 @@ static void channels_process_sound_chan_mono(int count, int32_t *buf[])
1022} 1022}
1023#endif /* DSP_HAVE_ASM_SOUND_CHAN_MONO */ 1023#endif /* DSP_HAVE_ASM_SOUND_CHAN_MONO */
1024 1024
1025#if CONFIG_CODEC == SWCODEC
1026
1025#ifdef HAVE_SW_TONE_CONTROLS 1027#ifdef HAVE_SW_TONE_CONTROLS
1026static void set_tone_controls(void) 1028static void set_tone_controls(void)
1027{ 1029{
@@ -1029,10 +1031,12 @@ static void set_tone_controls(void)
1029 0xffffffff/NATIVE_FREQUENCY*3500, 1031 0xffffffff/NATIVE_FREQUENCY*3500,
1030 bass, treble, -prescale, tone_filter.coefs); 1032 bass, treble, -prescale, tone_filter.coefs);
1031} 1033}
1034#endif
1032 1035
1033int dsp_callback(int msg, intptr_t param) 1036int dsp_callback(int msg, intptr_t param)
1034{ 1037{
1035 switch (msg) { 1038 switch (msg) {
1039#ifdef HAVE_SW_TONE_CONTROLS
1036 case DSP_CALLBACK_SET_PRESCALE: 1040 case DSP_CALLBACK_SET_PRESCALE:
1037 prescale = param; 1041 prescale = param;
1038 set_tone_controls(); 1042 set_tone_controls();
@@ -1045,6 +1049,13 @@ int dsp_callback(int msg, intptr_t param)
1045 break; 1049 break;
1046 case DSP_CALLBACK_SET_TREBLE: 1050 case DSP_CALLBACK_SET_TREBLE:
1047 treble = param; 1051 treble = param;
1052#endif
1053 case DSP_CALLBACK_SET_CHANNEL_CONFIG:
1054 dsp_set_channel_config(param);
1055 break;
1056 case DSP_CALLBACK_SET_STEREO_WIDTH:
1057 dsp_set_stereo_width(param);
1058 break;
1048 default: 1059 default:
1049 break; 1060 break;
1050 } 1061 }
@@ -1097,7 +1108,7 @@ static void channels_process_sound_chan_karaoke(int count, int32_t *buf[])
1097} 1108}
1098#endif /* DSP_HAVE_ASM_SOUND_CHAN_KARAOKE */ 1109#endif /* DSP_HAVE_ASM_SOUND_CHAN_KARAOKE */
1099 1110
1100void channels_set(int value) 1111void dsp_set_channel_config(int value)
1101{ 1112{
1102 static const channels_process_fn_type channels_process_functions[] = 1113 static const channels_process_fn_type channels_process_functions[] =
1103 { 1114 {