diff options
Diffstat (limited to 'firmware/target/arm/pp/audio-pp.c')
-rw-r--r-- | firmware/target/arm/pp/audio-pp.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/firmware/target/arm/pp/audio-pp.c b/firmware/target/arm/pp/audio-pp.c index 6b5b082cc7..76740f2e42 100644 --- a/firmware/target/arm/pp/audio-pp.c +++ b/firmware/target/arm/pp/audio-pp.c | |||
@@ -30,6 +30,25 @@ void audio_set_output_source(int source) | |||
30 | source = AUDIO_SRC_PLAYBACK; | 30 | source = AUDIO_SRC_PLAYBACK; |
31 | } /* audio_set_output_source */ | 31 | } /* audio_set_output_source */ |
32 | 32 | ||
33 | #ifdef HAVE_AK4537 | ||
34 | void audio_input_mux(int source, unsigned flags) | ||
35 | { | ||
36 | (void)flags; | ||
37 | /* Prevent pops from unneeded switching */ | ||
38 | static int last_source = AUDIO_SRC_PLAYBACK; | ||
39 | |||
40 | #ifdef HAVE_FMRADIO_REC | ||
41 | bool recording = flags & SRCF_RECORDING; | ||
42 | |||
43 | if ((source == AUDIO_SRC_FMRADIO) && (!recording)) | ||
44 | audiohw_set_recvol(0, 0, AUDIO_GAIN_LINEIN); /* Set line-in vol to 0dB*/ | ||
45 | #endif | ||
46 | if (source != last_source) | ||
47 | audiohw_set_recsrc(source); | ||
48 | |||
49 | last_source = source; | ||
50 | } | ||
51 | #else | ||
33 | void audio_input_mux(int source, unsigned flags) | 52 | void audio_input_mux(int source, unsigned flags) |
34 | { | 53 | { |
35 | (void)flags; | 54 | (void)flags; |
@@ -132,4 +151,6 @@ void audio_input_mux(int source, unsigned flags) | |||
132 | 151 | ||
133 | last_source = source; | 152 | last_source = source; |
134 | } /* audio_input_mux */ | 153 | } /* audio_input_mux */ |
154 | #endif | ||
155 | |||
135 | #endif /* INPUT_SRC_CAPS != 0 */ | 156 | #endif /* INPUT_SRC_CAPS != 0 */ |