diff options
-rw-r--r-- | firmware/export/audiohw.h | 44 | ||||
-rw-r--r-- | firmware/export/wm8758.h | 4 | ||||
-rw-r--r-- | firmware/export/wm8985.h | 4 | ||||
-rw-r--r-- | firmware/sound.c | 12 |
4 files changed, 49 insertions, 15 deletions
diff --git a/firmware/export/audiohw.h b/firmware/export/audiohw.h index 4c9271e03e..5842ff7d3b 100644 --- a/firmware/export/audiohw.h +++ b/firmware/export/audiohw.h | |||
@@ -24,11 +24,13 @@ | |||
24 | #include <stdbool.h> | 24 | #include <stdbool.h> |
25 | 25 | ||
26 | /* define some audiohw caps */ | 26 | /* define some audiohw caps */ |
27 | #define TREBLE_CAP (1 << 0) | 27 | #define TREBLE_CAP (1 << 0) |
28 | #define BASS_CAP (1 << 1) | 28 | #define BASS_CAP (1 << 1) |
29 | #define BALANCE_CAP (1 << 2) | 29 | #define BALANCE_CAP (1 << 2) |
30 | #define CLIPPING_CAP (1 << 3) | 30 | #define CLIPPING_CAP (1 << 3) |
31 | #define PRESCALER_CAP (1 << 4) | 31 | #define PRESCALER_CAP (1 << 4) |
32 | #define BASS_CUTOFF_CAP (1 << 5) | ||
33 | #define TREBLE_CUTOFF_CAP (1 << 6) | ||
32 | 34 | ||
33 | #ifdef HAVE_UDA1380 | 35 | #ifdef HAVE_UDA1380 |
34 | #include "uda1380.h" | 36 | #include "uda1380.h" |
@@ -77,6 +79,14 @@ | |||
77 | #if (AUDIOHW_CAPS & PRESCALER_CAP) | 79 | #if (AUDIOHW_CAPS & PRESCALER_CAP) |
78 | #define AUDIOHW_HAVE_PRESCALER | 80 | #define AUDIOHW_HAVE_PRESCALER |
79 | #endif | 81 | #endif |
82 | |||
83 | #if (AUDIOHW_CAPS & BASS_CUTOFF_CAP) | ||
84 | #define AUDIOHW_HAVE_BASS_CUTOFF | ||
85 | #endif | ||
86 | |||
87 | #if (AUDIOHW_CAPS & TREBLE_CUTOFF_CAP) | ||
88 | #define AUDIOHW_HAVE_TREBLE_CUTOFF | ||
89 | #endif | ||
80 | #endif /* AUDIOHW_CAPS */ | 90 | #endif /* AUDIOHW_CAPS */ |
81 | 91 | ||
82 | enum { | 92 | enum { |
@@ -103,8 +113,10 @@ enum { | |||
103 | SOUND_RIGHT_GAIN, | 113 | SOUND_RIGHT_GAIN, |
104 | SOUND_MIC_GAIN, | 114 | SOUND_MIC_GAIN, |
105 | #endif | 115 | #endif |
106 | #if defined(HAVE_WM8758) || defined(HAVE_WM8985) | 116 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) |
107 | SOUND_BASS_CUTOFF, | 117 | SOUND_BASS_CUTOFF, |
118 | #endif | ||
119 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | ||
108 | SOUND_TREBLE_CUTOFF, | 120 | SOUND_TREBLE_CUTOFF, |
109 | #endif | 121 | #endif |
110 | }; | 122 | }; |
@@ -221,6 +233,26 @@ void audiohw_set_treble(int val); | |||
221 | void audiohw_set_bass(int val); | 233 | void audiohw_set_bass(int val); |
222 | #endif | 234 | #endif |
223 | 235 | ||
236 | #ifdef AUDIOHW_HAVE_BASS_CUTOFF | ||
237 | /** | ||
238 | * Set new bass cut off value. | ||
239 | * @param val to set. | ||
240 | * NOTE: AUDIOHW_CAPS need to contain | ||
241 | * BASS_CUTOFF_CAP | ||
242 | */ | ||
243 | void audiohw_set_bass_cutoff(int val); | ||
244 | #endif | ||
245 | |||
246 | #ifdef AUDIOHW_HAVE_TREBLE_CUTOFF | ||
247 | /** | ||
248 | * Set new treble cut off value. | ||
249 | * @param val to set. | ||
250 | * NOTE: AUDIOHW_CAPS need to contain | ||
251 | * TREBLE_CUTOFF_CAP | ||
252 | */ | ||
253 | void audiohw_set_treble_cutoff(int val); | ||
254 | #endif | ||
255 | |||
224 | #ifdef HAVE_RECORDING | 256 | #ifdef HAVE_RECORDING |
225 | 257 | ||
226 | /** | 258 | /** |
diff --git a/firmware/export/wm8758.h b/firmware/export/wm8758.h index 5e37e203d5..6c1987c3e8 100644 --- a/firmware/export/wm8758.h +++ b/firmware/export/wm8758.h | |||
@@ -24,7 +24,7 @@ | |||
24 | #define VOLUME_MIN -570 | 24 | #define VOLUME_MIN -570 |
25 | #define VOLUME_MAX 60 | 25 | #define VOLUME_MAX 60 |
26 | 26 | ||
27 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP) | 27 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | BASS_CUTOFF_CAP | TREBLE_CUTOFF_CAP) |
28 | 28 | ||
29 | extern int tenthdb2master(int db); | 29 | extern int tenthdb2master(int db); |
30 | extern int tenthdb2mixer(int db); | 30 | extern int tenthdb2mixer(int db); |
@@ -32,8 +32,6 @@ extern int tenthdb2mixer(int db); | |||
32 | extern void audiohw_set_master_vol(int vol_l, int vol_r); | 32 | extern void audiohw_set_master_vol(int vol_l, int vol_r); |
33 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); | 33 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); |
34 | extern void audiohw_set_mixer_vol(int channel1, int channel2); | 34 | extern void audiohw_set_mixer_vol(int channel1, int channel2); |
35 | extern void audiohw_set_bass_cutoff(int value); | ||
36 | extern void audiohw_set_treble_cutoff(int value); | ||
37 | extern void audiohw_set_nsorder(int order); | 35 | extern void audiohw_set_nsorder(int order); |
38 | extern void audiohw_set_sample_rate(int sampling_control); | 36 | extern void audiohw_set_sample_rate(int sampling_control); |
39 | 37 | ||
diff --git a/firmware/export/wm8985.h b/firmware/export/wm8985.h index 8696e3dd6f..f59bc771bd 100644 --- a/firmware/export/wm8985.h +++ b/firmware/export/wm8985.h | |||
@@ -24,7 +24,7 @@ | |||
24 | #define VOLUME_MIN -570 | 24 | #define VOLUME_MIN -570 |
25 | #define VOLUME_MAX 60 | 25 | #define VOLUME_MAX 60 |
26 | 26 | ||
27 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP) | 27 | #define AUDIOHW_CAPS (BASS_CAP | TREBLE_CAP | BASS_CUTOFF_CAP | TREBLE_CUTOFF_CAP) |
28 | 28 | ||
29 | extern int tenthdb2master(int db); | 29 | extern int tenthdb2master(int db); |
30 | extern int tenthdb2mixer(int db); | 30 | extern int tenthdb2mixer(int db); |
@@ -32,8 +32,6 @@ extern int tenthdb2mixer(int db); | |||
32 | extern void audiohw_set_master_vol(int vol_l, int vol_r); | 32 | extern void audiohw_set_master_vol(int vol_l, int vol_r); |
33 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); | 33 | extern void audiohw_set_lineout_vol(int vol_l, int vol_r); |
34 | extern void audiohw_set_mixer_vol(int channel1, int channel2); | 34 | extern void audiohw_set_mixer_vol(int channel1, int channel2); |
35 | extern void audiohw_set_bass_cutoff(int value); | ||
36 | extern void audiohw_set_treble_cutoff(int value); | ||
37 | extern void audiohw_set_nsorder(int order); | 35 | extern void audiohw_set_nsorder(int order); |
38 | extern void audiohw_set_sample_rate(int sampling_control); | 36 | extern void audiohw_set_sample_rate(int sampling_control); |
39 | 37 | ||
diff --git a/firmware/sound.c b/firmware/sound.c index 5c6a821d48..bd2a9612c9 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -70,8 +70,10 @@ const struct sound_settings_info audiohw_settings[] = { | |||
70 | [SOUND_RIGHT_GAIN] = {"dB", 1, 1,-128, 96, 0}, | 70 | [SOUND_RIGHT_GAIN] = {"dB", 1, 1,-128, 96, 0}, |
71 | [SOUND_MIC_GAIN] = {"dB", 1, 1,-128, 108, 16}, | 71 | [SOUND_MIC_GAIN] = {"dB", 1, 1,-128, 108, 16}, |
72 | #endif | 72 | #endif |
73 | #if defined(HAVE_WM8758) | 73 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) |
74 | [SOUND_BASS_CUTOFF] = {"", 0, 1, 1, 4, 1}, | 74 | [SOUND_BASS_CUTOFF] = {"", 0, 1, 1, 4, 1}, |
75 | #endif | ||
76 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | ||
75 | [SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1}, | 77 | [SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1}, |
76 | #endif | 78 | #endif |
77 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 79 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
@@ -146,11 +148,13 @@ sound_set_type* sound_get_fn(int setting) | |||
146 | result = sound_set_stereo_width; | 148 | result = sound_set_stereo_width; |
147 | break; | 149 | break; |
148 | 150 | ||
149 | #ifdef HAVE_WM8758 | 151 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) |
150 | case SOUND_BASS_CUTOFF: | 152 | case SOUND_BASS_CUTOFF: |
151 | result = sound_set_bass_cutoff; | 153 | result = sound_set_bass_cutoff; |
152 | break; | 154 | break; |
155 | #endif | ||
153 | 156 | ||
157 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | ||
154 | case SOUND_TREBLE_CUTOFF: | 158 | case SOUND_TREBLE_CUTOFF: |
155 | result = sound_set_treble_cutoff; | 159 | result = sound_set_treble_cutoff; |
156 | break; | 160 | break; |
@@ -410,7 +414,7 @@ void sound_set_stereo_width(int value) | |||
410 | #endif | 414 | #endif |
411 | } | 415 | } |
412 | 416 | ||
413 | #if defined(HAVE_WM8758) || defined(HAVE_WM8985) | 417 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) |
414 | void sound_set_bass_cutoff(int value) | 418 | void sound_set_bass_cutoff(int value) |
415 | { | 419 | { |
416 | if(!audio_is_initialized) | 420 | if(!audio_is_initialized) |
@@ -418,7 +422,9 @@ void sound_set_bass_cutoff(int value) | |||
418 | 422 | ||
419 | audiohw_set_bass_cutoff(value); | 423 | audiohw_set_bass_cutoff(value); |
420 | } | 424 | } |
425 | #endif | ||
421 | 426 | ||
427 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | ||
422 | void sound_set_treble_cutoff(int value) | 428 | void sound_set_treble_cutoff(int value) |
423 | { | 429 | { |
424 | if(!audio_is_initialized) | 430 | if(!audio_is_initialized) |