diff options
Diffstat (limited to 'firmware/sound.c')
-rw-r--r-- | firmware/sound.c | 347 |
1 files changed, 334 insertions, 13 deletions
diff --git a/firmware/sound.c b/firmware/sound.c index b56e610034..fb2f353d71 100644 --- a/firmware/sound.c +++ b/firmware/sound.c | |||
@@ -48,8 +48,13 @@ extern void audiohw_set_volume(int value); | |||
48 | /* dummy for sim */ | 48 | /* dummy for sim */ |
49 | const struct sound_settings_info audiohw_settings[] = { | 49 | const struct sound_settings_info audiohw_settings[] = { |
50 | [SOUND_VOLUME] = {"dB", 0, 1, VOLUME_MIN / 10, VOLUME_MAX / 10, -25}, | 50 | [SOUND_VOLUME] = {"dB", 0, 1, VOLUME_MIN / 10, VOLUME_MAX / 10, -25}, |
51 | /* Bass and treble tone controls */ | ||
52 | #ifdef AUDIOHW_HAVE_BASS | ||
51 | [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0}, | 53 | [SOUND_BASS] = {"dB", 0, 1, -24, 24, 0}, |
54 | #endif | ||
55 | #ifdef AUDIOHW_HAVE_TREBLE | ||
52 | [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0}, | 56 | [SOUND_TREBLE] = {"dB", 0, 1, -24, 24, 0}, |
57 | #endif | ||
53 | [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0}, | 58 | [SOUND_BALANCE] = {"%", 0, 1,-100, 100, 0}, |
54 | [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0}, | 59 | [SOUND_CHANNELS] = {"", 0, 1, 0, 5, 0}, |
55 | [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100}, | 60 | [SOUND_STEREO_WIDTH] = {"%", 0, 5, 0, 250, 100}, |
@@ -64,6 +69,50 @@ const struct sound_settings_info audiohw_settings[] = { | |||
64 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | 69 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) |
65 | [SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1}, | 70 | [SOUND_TREBLE_CUTOFF] = {"", 0, 1, 1, 4, 1}, |
66 | #endif | 71 | #endif |
72 | #if defined(AUDIOHW_HAVE_DEPTH_3D) | ||
73 | [SOUND_DEPTH_3D] = {"%", 0, 1, 0, 15, 0}, | ||
74 | #endif | ||
75 | /* Hardware EQ tone controls */ | ||
76 | #if defined(AUDIOHW_HAVE_EQ_BAND1) | ||
77 | [SOUND_EQ_BAND1_GAIN] = {"dB", 0, 1, -12, 12, 0}, | ||
78 | #endif | ||
79 | #if defined(AUDIOHW_HAVE_EQ_BAND2) | ||
80 | [SOUND_EQ_BAND2_GAIN] = {"dB", 0, 1, -12, 12, 0}, | ||
81 | #endif | ||
82 | #if defined(AUDIOHW_HAVE_EQ_BAND3) | ||
83 | [SOUND_EQ_BAND3_GAIN] = {"dB", 0, 1, -12, 12, 0}, | ||
84 | #endif | ||
85 | #if defined(AUDIOHW_HAVE_EQ_BAND4) | ||
86 | [SOUND_EQ_BAND4_GAIN] = {"dB", 0, 1, -12, 12, 0}, | ||
87 | #endif | ||
88 | #if defined(AUDIOHW_HAVE_EQ_BAND5) | ||
89 | [SOUND_EQ_BAND5_GAIN] = {"dB", 0, 1, -12, 12, 0}, | ||
90 | #endif | ||
91 | #if defined(AUDIOHW_HAVE_EQ_BAND1_FREQUENCY) | ||
92 | [SOUND_EQ_BAND1_FREQUENCY] = {"", 0, 1, 1, 4, 1}, | ||
93 | #endif | ||
94 | #if defined(AUDIOHW_HAVE_EQ_BAND2_FREQUENCY) | ||
95 | [SOUND_EQ_BAND2_FREQUENCY] = {"", 0, 1, 1, 4, 1}, | ||
96 | #endif | ||
97 | #if defined(AUDIOHW_HAVE_EQ_BAND3_FREQUENCY) | ||
98 | [SOUND_EQ_BAND3_FREQUENCY] = {"", 0, 1, 1, 4, 1}, | ||
99 | #endif | ||
100 | #if defined(AUDIOHW_HAVE_EQ_BAND4_FREQUENCY) | ||
101 | [SOUND_EQ_BAND4_FREQUENCY] = {"", 0, 1, 1, 4, 1}, | ||
102 | #endif | ||
103 | #if defined(AUDIOHW_HAVE_EQ_BAND5_FREQUENCY) | ||
104 | [SOUND_EQ_BAND5_FREQUENCY] = {"", 0, 1, 1, 4, 1}, | ||
105 | #endif | ||
106 | #if defined(AUDIOHW_HAVE_EQ_BAND2_WIDTH) | ||
107 | [SOUND_EQ_BAND2_WIDTH] = {"", 0, 1, 0, 1, 0}, | ||
108 | #endif | ||
109 | #if defined(AUDIOHW_HAVE_EQ_BAND3_WIDTH) | ||
110 | [SOUND_EQ_BAND3_WIDTH] = {"", 0, 1, 0, 1, 0}, | ||
111 | #endif | ||
112 | #if defined(AUDIOHW_HAVE_EQ_BAND4_WIDTH) | ||
113 | [SOUND_EQ_BAND4_WIDTH] = {"", 0, 1, 0, 1, 0}, | ||
114 | #endif | ||
115 | |||
67 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) | 116 | #if (CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F) |
68 | [SOUND_LOUDNESS] = {"dB", 0, 1, 0, 17, 0}, | 117 | [SOUND_LOUDNESS] = {"dB", 0, 1, 0, 17, 0}, |
69 | [SOUND_AVC] = {"", 0, 1, -1, 4, 0}, | 118 | [SOUND_AVC] = {"", 0, 1, -1, 4, 0}, |
@@ -111,8 +160,12 @@ static sound_set_type * const sound_set_fns[] = | |||
111 | { | 160 | { |
112 | [0 ... SOUND_LAST_SETTING-1] = NULL, | 161 | [0 ... SOUND_LAST_SETTING-1] = NULL, |
113 | [SOUND_VOLUME] = sound_set_volume, | 162 | [SOUND_VOLUME] = sound_set_volume, |
163 | #if defined(AUDIOHW_HAVE_BASS) | ||
114 | [SOUND_BASS] = sound_set_bass, | 164 | [SOUND_BASS] = sound_set_bass, |
165 | #endif | ||
166 | #if defined(AUDIOHW_HAVE_TREBLE) | ||
115 | [SOUND_TREBLE] = sound_set_treble, | 167 | [SOUND_TREBLE] = sound_set_treble, |
168 | #endif | ||
116 | [SOUND_BALANCE] = sound_set_balance, | 169 | [SOUND_BALANCE] = sound_set_balance, |
117 | [SOUND_CHANNELS] = sound_set_channels, | 170 | [SOUND_CHANNELS] = sound_set_channels, |
118 | [SOUND_STEREO_WIDTH] = sound_set_stereo_width, | 171 | [SOUND_STEREO_WIDTH] = sound_set_stereo_width, |
@@ -132,6 +185,49 @@ static sound_set_type * const sound_set_fns[] = | |||
132 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | 185 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) |
133 | [SOUND_TREBLE_CUTOFF] = sound_set_treble_cutoff, | 186 | [SOUND_TREBLE_CUTOFF] = sound_set_treble_cutoff, |
134 | #endif | 187 | #endif |
188 | #if defined(AUDIOHW_HAVE_DEPTH_3D) | ||
189 | [SOUND_DEPTH_3D] = sound_set_depth_3d, | ||
190 | #endif | ||
191 | /* Hardware EQ tone controls */ | ||
192 | #if defined(AUDIOHW_HAVE_EQ) | ||
193 | [SOUND_EQ_BAND1_GAIN] = sound_set_hw_eq_band1_gain, | ||
194 | #if defined(AUDIOHW_HAVE_EQ_BAND1_FREQUENCY) | ||
195 | [SOUND_EQ_BAND1_FREQUENCY] = sound_set_hw_eq_band1_frequency, | ||
196 | #endif | ||
197 | #if defined(AUDIOHW_HAVE_EQ_BAND2) | ||
198 | [SOUND_EQ_BAND2_GAIN] = sound_set_hw_eq_band2_gain, | ||
199 | #if defined(AUDIOHW_HAVE_EQ_BAND2_FREQUENCY) | ||
200 | [SOUND_EQ_BAND2_FREQUENCY] = sound_set_hw_eq_band2_frequency, | ||
201 | #endif | ||
202 | #if defined(AUDIOHW_HAVE_EQ_BAND2_WIDTH) | ||
203 | [SOUND_EQ_BAND2_WIDTH] = sound_set_hw_eq_band2_width, | ||
204 | #endif | ||
205 | #endif /* AUDIOHW_HAVE_EQ_BAND2 */ | ||
206 | #if defined(AUDIOHW_HAVE_EQ_BAND3) | ||
207 | [SOUND_EQ_BAND3_GAIN] = sound_set_hw_eq_band3_gain, | ||
208 | #if defined(AUDIOHW_HAVE_EQ_BAND3_FREQUENCY) | ||
209 | [SOUND_EQ_BAND3_FREQUENCY] = sound_set_hw_eq_band3_frequency, | ||
210 | #endif | ||
211 | #if defined(AUDIOHW_HAVE_EQ_BAND3_WIDTH) | ||
212 | [SOUND_EQ_BAND3_WIDTH] = sound_set_hw_eq_band3_width, | ||
213 | #endif | ||
214 | #endif /* AUDIOHW_HAVE_EQ_BAND3 */ | ||
215 | #if defined(AUDIOHW_HAVE_EQ_BAND4) | ||
216 | [SOUND_EQ_BAND4_GAIN] = sound_set_hw_eq_band4_gain, | ||
217 | #if defined(AUDIOHW_HAVE_EQ_BAND4_FREQUENCY) | ||
218 | [SOUND_EQ_BAND4_FREQUENCY] = sound_set_hw_eq_band4_frequency, | ||
219 | #endif | ||
220 | #if defined(AUDIOHW_HAVE_EQ_BAND4_WIDTH) | ||
221 | [SOUND_EQ_BAND4_WIDTH] = sound_set_hw_eq_band4_width, | ||
222 | #endif | ||
223 | #endif /* AUDIOHW_HAVE_EQ_BAND4 */ | ||
224 | #if defined(AUDIOHW_HAVE_EQ_BAND5) | ||
225 | [SOUND_EQ_BAND5_GAIN] = sound_set_hw_eq_band5_gain, | ||
226 | #if defined(AUDIOHW_HAVE_EQ_BAND5_FREQUENCY) | ||
227 | [SOUND_EQ_BAND5_FREQUENCY] = sound_set_hw_eq_band5_frequency, | ||
228 | #endif | ||
229 | #endif /* AUDIOHW_HAVE_EQ_BAND5 */ | ||
230 | #endif /* AUDIOHW_HAVE_EQ */ | ||
135 | }; | 231 | }; |
136 | 232 | ||
137 | sound_set_type* sound_get_fn(int setting) | 233 | sound_set_type* sound_get_fn(int setting) |
@@ -174,8 +270,15 @@ static int tenthdb2reg(int db) | |||
174 | /* all values in tenth of dB MAS3507D UDA1380 */ | 270 | /* all values in tenth of dB MAS3507D UDA1380 */ |
175 | int current_volume = 0; /* -780..+180 -840.. 0 */ | 271 | int current_volume = 0; /* -780..+180 -840.. 0 */ |
176 | int current_balance = 0; /* -960..+960 -840..+840 */ | 272 | int current_balance = 0; /* -960..+960 -840..+840 */ |
273 | #ifdef AUDIOHW_HAVE_TREBLE | ||
177 | int current_treble = 0; /* -150..+150 0.. +60 */ | 274 | int current_treble = 0; /* -150..+150 0.. +60 */ |
275 | #endif | ||
276 | #ifdef AUDIOHW_HAVE_BASS | ||
178 | int current_bass = 0; /* -150..+150 0..+240 */ | 277 | int current_bass = 0; /* -150..+150 0..+240 */ |
278 | #endif | ||
279 | #ifdef AUDIOHW_HAVE_EQ | ||
280 | int current_eq_band_gain[AUDIOHW_EQ_BAND_NUM]; | ||
281 | #endif | ||
179 | 282 | ||
180 | static void set_prescaled_volume(void) | 283 | static void set_prescaled_volume(void) |
181 | { | 284 | { |
@@ -191,10 +294,18 @@ static void set_prescaled_volume(void) | |||
191 | || defined(HAVE_WM8711) || defined(HAVE_WM8721) || defined(HAVE_WM8731) \ | 294 | || defined(HAVE_WM8711) || defined(HAVE_WM8721) || defined(HAVE_WM8731) \ |
192 | || defined(HAVE_WM8758) || defined(HAVE_WM8985) || defined(HAVE_UDA1341)) | 295 | || defined(HAVE_WM8758) || defined(HAVE_WM8985) || defined(HAVE_UDA1341)) |
193 | 296 | ||
297 | #if defined(AUDIOHW_HAVE_BASS) && defined(AUDIOHW_HAVE_TREBLE) | ||
194 | prescale = MAX(current_bass, current_treble); | 298 | prescale = MAX(current_bass, current_treble); |
299 | #endif | ||
300 | #if defined(AUDIOHW_HAVE_EQ) | ||
301 | int i; | ||
302 | for (i = 0; i < AUDIOHW_EQ_BAND_NUM; i++) | ||
303 | prescale = MAX(current_eq_band_gain[i], prescale); | ||
304 | #endif | ||
305 | |||
195 | if (prescale < 0) | 306 | if (prescale < 0) |
196 | prescale = 0; /* no need to prescale if we don't boost | 307 | prescale = 0; /* no need to prescale if we don't boost |
197 | bass or treble */ | 308 | bass, treble or eq band */ |
198 | 309 | ||
199 | /* Gain up the analog volume to compensate the prescale gain reduction, | 310 | /* Gain up the analog volume to compensate the prescale gain reduction, |
200 | * but if this would push the volume over the top, reduce prescaling | 311 | * but if this would push the volume over the top, reduce prescaling |
@@ -289,6 +400,7 @@ void sound_set_balance(int value) | |||
289 | #endif | 400 | #endif |
290 | } | 401 | } |
291 | 402 | ||
403 | #ifdef AUDIOHW_HAVE_BASS | ||
292 | void sound_set_bass(int value) | 404 | void sound_set_bass(int value) |
293 | { | 405 | { |
294 | if(!audio_is_initialized) | 406 | if(!audio_is_initialized) |
@@ -302,17 +414,19 @@ void sound_set_bass(int value) | |||
302 | #endif | 414 | #endif |
303 | #endif | 415 | #endif |
304 | 416 | ||
305 | #if defined(AUDIOHW_HAVE_BASS) | 417 | #if defined(HAVE_SW_TONE_CONTROLS) |
306 | audiohw_set_bass(value); | ||
307 | #else | ||
308 | dsp_callback(DSP_CALLBACK_SET_BASS, current_bass); | 418 | dsp_callback(DSP_CALLBACK_SET_BASS, current_bass); |
419 | #else | ||
420 | audiohw_set_bass(value); | ||
309 | #endif | 421 | #endif |
310 | 422 | ||
311 | #if !defined(AUDIOHW_HAVE_CLIPPING) | 423 | #if !defined(AUDIOHW_HAVE_CLIPPING) |
312 | set_prescaled_volume(); | 424 | set_prescaled_volume(); |
313 | #endif | 425 | #endif |
314 | } | 426 | } |
427 | #endif /* AUDIOHW_HAVE_BASS */ | ||
315 | 428 | ||
429 | #ifdef AUDIOHW_HAVE_TREBLE | ||
316 | void sound_set_treble(int value) | 430 | void sound_set_treble(int value) |
317 | { | 431 | { |
318 | if(!audio_is_initialized) | 432 | if(!audio_is_initialized) |
@@ -326,16 +440,37 @@ void sound_set_treble(int value) | |||
326 | #endif | 440 | #endif |
327 | #endif | 441 | #endif |
328 | 442 | ||
329 | #if defined(AUDIOHW_HAVE_TREBLE) | 443 | #if defined(HAVE_SW_TONE_CONTROLS) |
330 | audiohw_set_treble(value); | ||
331 | #else | ||
332 | dsp_callback(DSP_CALLBACK_SET_TREBLE, current_treble); | 444 | dsp_callback(DSP_CALLBACK_SET_TREBLE, current_treble); |
445 | #else | ||
446 | audiohw_set_treble(value); | ||
333 | #endif | 447 | #endif |
334 | 448 | ||
335 | #if !defined(AUDIOHW_HAVE_CLIPPING) | 449 | #if !defined(AUDIOHW_HAVE_CLIPPING) |
336 | set_prescaled_volume(); | 450 | set_prescaled_volume(); |
337 | #endif | 451 | #endif |
338 | } | 452 | } |
453 | #endif /* AUDIOHW_HAVE_TREBLE */ | ||
454 | |||
455 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) | ||
456 | void sound_set_bass_cutoff(int value) | ||
457 | { | ||
458 | if(!audio_is_initialized) | ||
459 | return; | ||
460 | |||
461 | audiohw_set_bass_cutoff(value); | ||
462 | } | ||
463 | #endif | ||
464 | |||
465 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | ||
466 | void sound_set_treble_cutoff(int value) | ||
467 | { | ||
468 | if(!audio_is_initialized) | ||
469 | return; | ||
470 | |||
471 | audiohw_set_treble_cutoff(value); | ||
472 | } | ||
473 | #endif | ||
339 | 474 | ||
340 | void sound_set_channels(int value) | 475 | void sound_set_channels(int value) |
341 | { | 476 | { |
@@ -361,26 +496,208 @@ void sound_set_stereo_width(int value) | |||
361 | #endif | 496 | #endif |
362 | } | 497 | } |
363 | 498 | ||
364 | #if defined(AUDIOHW_HAVE_BASS_CUTOFF) | 499 | #if defined(AUDIOHW_HAVE_DEPTH_3D) |
365 | void sound_set_bass_cutoff(int value) | 500 | void sound_set_depth_3d(int value) |
366 | { | 501 | { |
367 | if(!audio_is_initialized) | 502 | if(!audio_is_initialized) |
368 | return; | 503 | return; |
369 | 504 | ||
370 | audiohw_set_bass_cutoff(value); | 505 | audiohw_set_depth_3d(value); |
371 | } | 506 | } |
372 | #endif | 507 | #endif |
373 | 508 | ||
374 | #if defined(AUDIOHW_HAVE_TREBLE_CUTOFF) | 509 | #if defined(AUDIOHW_HAVE_EQ) |
375 | void sound_set_treble_cutoff(int value) | 510 | int sound_enum_hw_eq_band_setting(unsigned int band, |
511 | unsigned int band_setting) | ||
512 | { | ||
513 | static const int8_t | ||
514 | sound_hw_eq_band_setting[AUDIOHW_EQ_SETTING_NUM][AUDIOHW_EQ_BAND_NUM] = | ||
515 | { | ||
516 | [AUDIOHW_EQ_GAIN] = | ||
517 | { | ||
518 | [0 ... AUDIOHW_EQ_BAND_NUM-1] = -1, | ||
519 | [AUDIOHW_EQ_BAND1] = SOUND_EQ_BAND1_GAIN, | ||
520 | #ifdef AUDIOHW_HAVE_EQ_BAND2 | ||
521 | [AUDIOHW_EQ_BAND2] = SOUND_EQ_BAND2_GAIN, | ||
522 | #endif | ||
523 | #ifdef AUDIOHW_HAVE_EQ_BAND3 | ||
524 | [AUDIOHW_EQ_BAND3] = SOUND_EQ_BAND3_GAIN, | ||
525 | #endif | ||
526 | #ifdef AUDIOHW_HAVE_EQ_BAND4 | ||
527 | [AUDIOHW_EQ_BAND4] = SOUND_EQ_BAND4_GAIN, | ||
528 | #endif | ||
529 | #ifdef AUDIOHW_HAVE_EQ_BAND5 | ||
530 | [AUDIOHW_EQ_BAND5] = SOUND_EQ_BAND5_GAIN, | ||
531 | #endif | ||
532 | }, | ||
533 | #ifdef AUDIOHW_HAVE_EQ_FREQUENCY | ||
534 | [AUDIOHW_EQ_FREQUENCY] = | ||
535 | { | ||
536 | [0 ... AUDIOHW_EQ_BAND_NUM-1] = -1, | ||
537 | #ifdef AUDIOHW_HAVE_EQ_BAND1_FREQUENCY | ||
538 | [AUDIOHW_EQ_BAND1] = SOUND_EQ_BAND1_FREQUENCY, | ||
539 | #endif | ||
540 | #ifdef AUDIOHW_HAVE_EQ_BAND2_FREQUENCY | ||
541 | [AUDIOHW_EQ_BAND2] = SOUND_EQ_BAND2_FREQUENCY, | ||
542 | #endif | ||
543 | #ifdef AUDIOHW_HAVE_EQ_BAND3_FREQUENCY | ||
544 | [AUDIOHW_EQ_BAND3] = SOUND_EQ_BAND3_FREQUENCY, | ||
545 | #endif | ||
546 | #ifdef AUDIOHW_HAVE_EQ_BAND4_FREQUENCY | ||
547 | [AUDIOHW_EQ_BAND4] = SOUND_EQ_BAND4_FREQUENCY, | ||
548 | #endif | ||
549 | #ifdef AUDIOHW_HAVE_EQ_BAND5_FREQUENCY | ||
550 | [AUDIOHW_EQ_BAND5] = SOUND_EQ_BAND5_FREQUENCY, | ||
551 | #endif | ||
552 | }, | ||
553 | #endif /* AUDIOHW_HAVE_EQ_FREQUENCY */ | ||
554 | #ifdef AUDIOHW_HAVE_EQ_WIDTH | ||
555 | [AUDIOHW_EQ_WIDTH] = | ||
556 | { | ||
557 | [0 ... AUDIOHW_EQ_BAND_NUM-1] = -1, | ||
558 | #ifdef AUDIOHW_HAVE_EQ_BAND2_WIDTH | ||
559 | [AUDIOHW_EQ_BAND2] = SOUND_EQ_BAND2_WIDTH, | ||
560 | #endif | ||
561 | #ifdef AUDIOHW_HAVE_EQ_BAND3_WIDTH | ||
562 | [AUDIOHW_EQ_BAND3] = SOUND_EQ_BAND3_WIDTH, | ||
563 | #endif | ||
564 | #ifdef AUDIOHW_HAVE_EQ_BAND4_WIDTH | ||
565 | [AUDIOHW_EQ_BAND4] = SOUND_EQ_BAND4_WIDTH, | ||
566 | #endif | ||
567 | }, | ||
568 | #endif /* AUDIOHW_HAVE_EQ_WIDTH */ | ||
569 | }; | ||
570 | |||
571 | if (band < AUDIOHW_EQ_BAND_NUM && band_setting < AUDIOHW_EQ_SETTING_NUM) | ||
572 | return sound_hw_eq_band_setting[band_setting][band]; | ||
573 | |||
574 | return -1; | ||
575 | } | ||
576 | |||
577 | static void sound_set_hw_eq_band_gain(unsigned int band, int value) | ||
376 | { | 578 | { |
377 | if(!audio_is_initialized) | 579 | if(!audio_is_initialized) |
378 | return; | 580 | return; |
379 | 581 | ||
380 | audiohw_set_treble_cutoff(value); | 582 | current_eq_band_gain[band] = value; |
583 | audiohw_set_eq_band_gain(band, value); | ||
584 | set_prescaled_volume(); | ||
585 | } | ||
586 | |||
587 | void sound_set_hw_eq_band1_gain(int value) | ||
588 | { | ||
589 | sound_set_hw_eq_band_gain(AUDIOHW_EQ_BAND1, value); | ||
590 | } | ||
591 | |||
592 | #if defined(AUDIOHW_HAVE_EQ_BAND2) | ||
593 | void sound_set_hw_eq_band2_gain(int value) | ||
594 | { | ||
595 | sound_set_hw_eq_band_gain(AUDIOHW_EQ_BAND2, value); | ||
596 | } | ||
597 | #endif | ||
598 | |||
599 | #if defined(AUDIOHW_HAVE_EQ_BAND3) | ||
600 | void sound_set_hw_eq_band3_gain(int value) | ||
601 | { | ||
602 | sound_set_hw_eq_band_gain(AUDIOHW_EQ_BAND3, value); | ||
381 | } | 603 | } |
382 | #endif | 604 | #endif |
383 | 605 | ||
606 | #if defined(AUDIOHW_HAVE_EQ_BAND4) | ||
607 | void sound_set_hw_eq_band4_gain(int value) | ||
608 | { | ||
609 | sound_set_hw_eq_band_gain(AUDIOHW_EQ_BAND4, value); | ||
610 | } | ||
611 | #endif | ||
612 | |||
613 | #if defined(AUDIOHW_HAVE_EQ_BAND5) | ||
614 | void sound_set_hw_eq_band5_gain(int value) | ||
615 | { | ||
616 | sound_set_hw_eq_band_gain(AUDIOHW_EQ_BAND5, value); | ||
617 | } | ||
618 | #endif | ||
619 | |||
620 | #if defined(AUDIOHW_HAVE_EQ_BAND1_FREQUENCY) | ||
621 | void sound_set_hw_eq_band1_frequency(int value) | ||
622 | { | ||
623 | if(!audio_is_initialized) | ||
624 | return; | ||
625 | |||
626 | audiohw_set_eq_band_frequency(AUDIOHW_EQ_BAND1, value); | ||
627 | } | ||
628 | #endif | ||
629 | |||
630 | #if defined(AUDIOHW_HAVE_EQ_BAND2_FREQUENCY) | ||
631 | void sound_set_hw_eq_band2_frequency(int value) | ||
632 | { | ||
633 | if(!audio_is_initialized) | ||
634 | return; | ||
635 | |||
636 | audiohw_set_eq_band_frequency(AUDIOHW_EQ_BAND2, value); | ||
637 | } | ||
638 | #endif | ||
639 | |||
640 | #if defined(AUDIOHW_HAVE_EQ_BAND3_FREQUENCY) | ||
641 | void sound_set_hw_eq_band3_frequency(int value) | ||
642 | { | ||
643 | if(!audio_is_initialized) | ||
644 | return; | ||
645 | |||
646 | audiohw_set_eq_band_frequency(AUDIOHW_EQ_BAND3, value); | ||
647 | } | ||
648 | #endif | ||
649 | |||
650 | #if defined(AUDIOHW_HAVE_EQ_BAND4_FREQUENCY) | ||
651 | void sound_set_hw_eq_band4_frequency(int value) | ||
652 | { | ||
653 | if(!audio_is_initialized) | ||
654 | return; | ||
655 | |||
656 | audiohw_set_eq_band_frequency(AUDIOHW_EQ_BAND4, value); | ||
657 | } | ||
658 | #endif | ||
659 | |||
660 | #if defined(AUDIOHW_HAVE_EQ_BAND5_FREQUENCY) | ||
661 | void sound_set_hw_eq_band5_frequency(int value) | ||
662 | { | ||
663 | if(!audio_is_initialized) | ||
664 | return; | ||
665 | |||
666 | audiohw_set_eq_band_frequency(AUDIOHW_EQ_BAND5, value); | ||
667 | } | ||
668 | #endif | ||
669 | |||
670 | #if defined(AUDIOHW_HAVE_EQ_BAND2_WIDTH) | ||
671 | void sound_set_hw_eq_band2_width(int value) | ||
672 | { | ||
673 | if(!audio_is_initialized) | ||
674 | return; | ||
675 | |||
676 | audiohw_set_eq_band_width(AUDIOHW_EQ_BAND2, value); | ||
677 | } | ||
678 | #endif | ||
679 | |||
680 | #if defined(AUDIOHW_HAVE_EQ_BAND3_WIDTH) | ||
681 | void sound_set_hw_eq_band3_width(int value) | ||
682 | { | ||
683 | if(!audio_is_initialized) | ||
684 | return; | ||
685 | |||
686 | audiohw_set_eq_band_width(AUDIOHW_EQ_BAND3, value); | ||
687 | } | ||
688 | #endif | ||
689 | |||
690 | #if defined(AUDIOHW_HAVE_EQ_BAND4_WIDTH) | ||
691 | void sound_set_hw_eq_band4_width(int value) | ||
692 | { | ||
693 | if(!audio_is_initialized) | ||
694 | return; | ||
695 | |||
696 | audiohw_set_eq_band_width(AUDIOHW_EQ_BAND4, value); | ||
697 | } | ||
698 | #endif | ||
699 | #endif /* AUDIOHW_HAVE_EQ */ | ||
700 | |||
384 | #if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)) | 701 | #if ((CONFIG_CODEC == MAS3587F) || (CONFIG_CODEC == MAS3539F)) |
385 | void sound_set_loudness(int value) | 702 | void sound_set_loudness(int value) |
386 | { | 703 | { |
@@ -572,6 +889,10 @@ int sound_val2phys(int setting, int value) | |||
572 | break; | 889 | break; |
573 | #endif | 890 | #endif |
574 | 891 | ||
892 | case SOUND_DEPTH_3D: | ||
893 | result = (100 * value + 8) / 15; | ||
894 | break; | ||
895 | |||
575 | default: | 896 | default: |
576 | result = value; | 897 | result = value; |
577 | } | 898 | } |