diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/dsp.c | 15 | ||||
-rw-r--r-- | apps/dsp.h | 8 | ||||
-rw-r--r-- | apps/settings.c | 16 | ||||
-rw-r--r-- | apps/settings_list.c | 4 |
4 files changed, 20 insertions, 23 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 | ||
974 | void stereo_width_set(int value) | 974 | void 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 |
1026 | static void set_tone_controls(void) | 1028 | static 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 | ||
1033 | int dsp_callback(int msg, intptr_t param) | 1036 | int 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 | ||
1100 | void channels_set(int value) | 1111 | void 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 | { |
diff --git a/apps/dsp.h b/apps/dsp.h index 03118e8c31..5d6e964d89 100644 --- a/apps/dsp.h +++ b/apps/dsp.h | |||
@@ -54,7 +54,9 @@ enum | |||
54 | enum { | 54 | enum { |
55 | DSP_CALLBACK_SET_PRESCALE = 0, | 55 | DSP_CALLBACK_SET_PRESCALE = 0, |
56 | DSP_CALLBACK_SET_BASS, | 56 | DSP_CALLBACK_SET_BASS, |
57 | DSP_CALLBACK_SET_TREBLE | 57 | DSP_CALLBACK_SET_TREBLE, |
58 | DSP_CALLBACK_SET_CHANNEL_CONFIG, | ||
59 | DSP_CALLBACK_SET_STEREO_WIDTH | ||
58 | }; | 60 | }; |
59 | 61 | ||
60 | /* A bunch of fixed point assembler helper macros */ | 62 | /* A bunch of fixed point assembler helper macros */ |
@@ -216,8 +218,8 @@ void dsp_set_eq_coefs(int band); | |||
216 | void sound_set_pitch(int r); | 218 | void sound_set_pitch(int r); |
217 | int sound_get_pitch(void); | 219 | int sound_get_pitch(void); |
218 | int dsp_callback(int msg, intptr_t param); | 220 | int dsp_callback(int msg, intptr_t param); |
219 | void channels_set(int value); | 221 | void dsp_set_channel_config(int value); |
220 | void stereo_width_set(int value); | 222 | void dsp_set_stereo_width(int value); |
221 | void dsp_dither_enable(bool enable); | 223 | void dsp_dither_enable(bool enable); |
222 | 224 | ||
223 | #endif | 225 | #endif |
diff --git a/apps/settings.c b/apps/settings.c index 331229190a..0b2f2d9d40 100644 --- a/apps/settings.c +++ b/apps/settings.c | |||
@@ -642,20 +642,15 @@ void settings_apply_pm_range(void) | |||
642 | 642 | ||
643 | void sound_settings_apply(void) | 643 | void sound_settings_apply(void) |
644 | { | 644 | { |
645 | #ifdef HAVE_SW_TONE_CONTROLS | 645 | #if CONFIG_CODEC == SWCODEC |
646 | sound_set_dsp_callback(dsp_callback); | 646 | sound_set_dsp_callback(dsp_callback); |
647 | #endif | 647 | #endif |
648 | sound_set(SOUND_BASS, global_settings.bass); | 648 | sound_set(SOUND_BASS, global_settings.bass); |
649 | sound_set(SOUND_TREBLE, global_settings.treble); | 649 | sound_set(SOUND_TREBLE, global_settings.treble); |
650 | sound_set(SOUND_BALANCE, global_settings.balance); | 650 | sound_set(SOUND_BALANCE, global_settings.balance); |
651 | sound_set(SOUND_VOLUME, global_settings.volume); | 651 | sound_set(SOUND_VOLUME, global_settings.volume); |
652 | #if CONFIG_CODEC == SWCODEC | ||
653 | channels_set(global_settings.channel_config); | ||
654 | stereo_width_set(global_settings.stereo_width); | ||
655 | #else | ||
656 | sound_set(SOUND_CHANNELS, global_settings.channel_config); | 652 | sound_set(SOUND_CHANNELS, global_settings.channel_config); |
657 | sound_set(SOUND_STEREO_WIDTH, global_settings.stereo_width); | 653 | sound_set(SOUND_STEREO_WIDTH, global_settings.stereo_width); |
658 | #endif | ||
659 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 654 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
660 | sound_set(SOUND_LOUDNESS, global_settings.loudness); | 655 | sound_set(SOUND_LOUDNESS, global_settings.loudness); |
661 | sound_set(SOUND_AVC, global_settings.avc); | 656 | sound_set(SOUND_AVC, global_settings.avc); |
@@ -952,6 +947,7 @@ static void dec_sound_formatter(char *buffer, int buffer_size, | |||
952 | int dec = val % 10; | 947 | int dec = val % 10; |
953 | snprintf(buffer, buffer_size, "%c%d.%d %s", sign, integer, dec, unit); | 948 | snprintf(buffer, buffer_size, "%c%d.%d %s", sign, integer, dec, unit); |
954 | } | 949 | } |
950 | |||
955 | bool set_sound(const unsigned char * string, | 951 | bool set_sound(const unsigned char * string, |
956 | int* variable, | 952 | int* variable, |
957 | int setting) | 953 | int setting) |
@@ -970,14 +966,6 @@ bool set_sound(const unsigned char * string, | |||
970 | else if (*unit == 'H') | 966 | else if (*unit == 'H') |
971 | talkunit = UNIT_HERTZ; | 967 | talkunit = UNIT_HERTZ; |
972 | if (!numdec) | 968 | if (!numdec) |
973 | #if CONFIG_CODEC == SWCODEC | ||
974 | /* We need to hijack this one and send it off to apps/dsp.c instead of | ||
975 | firmware/sound.c */ | ||
976 | if (setting == SOUND_STEREO_WIDTH) | ||
977 | return set_int(string, unit, talkunit, variable, &stereo_width_set, | ||
978 | steps, min, max, NULL ); | ||
979 | else | ||
980 | #endif | ||
981 | return set_int(string, unit, talkunit, variable, sound_callback, | 969 | return set_int(string, unit, talkunit, variable, sound_callback, |
982 | steps, min, max, NULL ); | 970 | steps, min, max, NULL ); |
983 | else | 971 | else |
diff --git a/apps/settings_list.c b/apps/settings_list.c index 6594db7aa3..e8ee59790d 100644 --- a/apps/settings_list.c +++ b/apps/settings_list.c | |||
@@ -352,11 +352,7 @@ const struct settings_list settings[] = { | |||
352 | 352 | ||
353 | CHOICE_SETTING(0,channel_config,LANG_CHANNEL,0,"channels", | 353 | CHOICE_SETTING(0,channel_config,LANG_CHANNEL,0,"channels", |
354 | "stereo,mono,custom,mono left,mono right,karaoke", | 354 | "stereo,mono,custom,mono left,mono right,karaoke", |
355 | #if CONFIG_CODEC == SWCODEC | ||
356 | channels_set, | ||
357 | #else | ||
358 | sound_set_channels, | 355 | sound_set_channels, |
359 | #endif | ||
360 | 6, ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO), | 356 | 6, ID2P(LANG_CHANNEL_STEREO), ID2P(LANG_CHANNEL_MONO), |
361 | ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT), | 357 | ID2P(LANG_CHANNEL_CUSTOM), ID2P(LANG_CHANNEL_LEFT), |
362 | ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE)), | 358 | ID2P(LANG_CHANNEL_RIGHT), ID2P(LANG_CHANNEL_KARAOKE)), |