summaryrefslogtreecommitdiff
path: root/firmware/target/arm/pp/audio-pp.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/pp/audio-pp.c')
-rw-r--r--firmware/target/arm/pp/audio-pp.c21
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
34void 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
33void audio_input_mux(int source, unsigned flags) 52void 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 */