diff options
Diffstat (limited to 'firmware/drivers/audio/audiohw-swcodec.c')
-rw-r--r-- | firmware/drivers/audio/audiohw-swcodec.c | 29 |
1 files changed, 12 insertions, 17 deletions
diff --git a/firmware/drivers/audio/audiohw-swcodec.c b/firmware/drivers/audio/audiohw-swcodec.c index 9cfc2ce413..6c86bdfaa4 100644 --- a/firmware/drivers/audio/audiohw-swcodec.c +++ b/firmware/drivers/audio/audiohw-swcodec.c | |||
@@ -21,56 +21,51 @@ | |||
21 | #include "config.h" | 21 | #include "config.h" |
22 | #include "system.h" | 22 | #include "system.h" |
23 | #include "sound.h" | 23 | #include "sound.h" |
24 | #ifdef HAVE_SW_TONE_CONTROLS | ||
25 | #include "tone_controls.h" | ||
26 | #endif | ||
27 | #include "channel_mode.h" | ||
24 | #include "dsp_misc.h" | 28 | #include "dsp_misc.h" |
25 | 29 | ||
26 | /* Linking audio hardware calls to SWCODEC DSP emulation */ | 30 | /** Functions exported by audiohw.h but implemented in DSP **/ |
27 | |||
28 | static audiohw_swcodec_cb_type callback = NULL; | ||
29 | |||
30 | void audiohw_swcodec_set_callback(audiohw_swcodec_cb_type func) | ||
31 | { | ||
32 | callback = func; | ||
33 | } | ||
34 | |||
35 | /** Functions exported by audiohw.h **/ | ||
36 | 31 | ||
37 | void audiohw_set_channel(int value) | 32 | void audiohw_set_channel(int value) |
38 | { | 33 | { |
39 | callback(DSP_CALLBACK_SET_CHANNEL_CONFIG, value); | 34 | channel_mode_set_config(value); |
40 | } | 35 | } |
41 | 36 | ||
42 | void audiohw_set_stereo_width(int value) | 37 | void audiohw_set_stereo_width(int value) |
43 | { | 38 | { |
44 | callback(DSP_CALLBACK_SET_STEREO_WIDTH, value); | 39 | channel_mode_custom_set_width(value); |
45 | } | 40 | } |
46 | 41 | ||
47 | #ifdef HAVE_SW_TONE_CONTROLS | 42 | #ifdef HAVE_SW_TONE_CONTROLS |
48 | void audiohw_set_bass(int value) | 43 | void audiohw_set_bass(int value) |
49 | { | 44 | { |
50 | callback(DSP_CALLBACK_SET_BASS, value*10); | 45 | tone_set_bass(value*10); |
51 | } | 46 | } |
52 | 47 | ||
53 | void audiohw_set_treble(int value) | 48 | void audiohw_set_treble(int value) |
54 | { | 49 | { |
55 | callback(DSP_CALLBACK_SET_TREBLE, value*10); | 50 | tone_set_treble(value*10); |
56 | } | 51 | } |
57 | #endif /* HAVE_SW_TONE_CONTROLS */ | 52 | #endif /* HAVE_SW_TONE_CONTROLS */ |
58 | 53 | ||
59 | #ifndef AUDIOHW_HAVE_PRESCALER | 54 | #ifndef AUDIOHW_HAVE_PRESCALER |
60 | void audiohw_set_prescaler(int value) | 55 | void audiohw_set_prescaler(int value) |
61 | { | 56 | { |
62 | callback(DSP_CALLBACK_SET_PRESCALE, value); | 57 | tone_set_prescale(value); |
63 | } | 58 | } |
64 | #endif /* AUDIOHW_HAVE_PRESCALER */ | 59 | #endif /* AUDIOHW_HAVE_PRESCALER */ |
65 | 60 | ||
66 | #ifdef HAVE_PITCHCONTROL | 61 | #ifdef HAVE_PITCHCONTROL |
67 | void audiohw_set_pitch(int32_t value) | 62 | void audiohw_set_pitch(int32_t value) |
68 | { | 63 | { |
69 | callback(DSP_CALLBACK_SET_PITCH, value); | 64 | dsp_set_pitch(value); |
70 | } | 65 | } |
71 | 66 | ||
72 | int32_t audiohw_get_pitch(void) | 67 | int32_t audiohw_get_pitch(void) |
73 | { | 68 | { |
74 | return callback(DSP_CALLBACK_GET_PITCH, 0); | 69 | return dsp_get_pitch(); |
75 | } | 70 | } |
76 | #endif /* HAVE_PITCHCONTROL */ | 71 | #endif /* HAVE_PITCHCONTROL */ |