summaryrefslogtreecommitdiff
path: root/firmware/target/arm/audio-pp.c
diff options
context:
space:
mode:
Diffstat (limited to 'firmware/target/arm/audio-pp.c')
-rw-r--r--firmware/target/arm/audio-pp.c18
1 files changed, 13 insertions, 5 deletions
diff --git a/firmware/target/arm/audio-pp.c b/firmware/target/arm/audio-pp.c
index 783342ef37..2c94e36359 100644
--- a/firmware/target/arm/audio-pp.c
+++ b/firmware/target/arm/audio-pp.c
@@ -47,8 +47,8 @@ void audio_input_mux(int source, unsigned flags)
47#ifdef HAVE_RECORDING 47#ifdef HAVE_RECORDING
48 if (source != last_source) 48 if (source != last_source)
49 { 49 {
50 audiohw_disable_recording();
51 audiohw_set_monitor(false); 50 audiohw_set_monitor(false);
51 audiohw_disable_recording();
52 } 52 }
53#endif 53#endif
54 break; 54 break;
@@ -56,8 +56,8 @@ void audio_input_mux(int source, unsigned flags)
56 case AUDIO_SRC_MIC: /* recording only */ 56 case AUDIO_SRC_MIC: /* recording only */
57 if (source != last_source) 57 if (source != last_source)
58 { 58 {
59 audiohw_enable_recording(true); /* source mic */
60 audiohw_set_monitor(false); 59 audiohw_set_monitor(false);
60 audiohw_enable_recording(true); /* source mic */
61 } 61 }
62 break; 62 break;
63#endif 63#endif
@@ -69,8 +69,8 @@ void audio_input_mux(int source, unsigned flags)
69#endif 69#endif
70 if (source != last_source) 70 if (source != last_source)
71 { 71 {
72 audiohw_enable_recording(false); /* source line */
73 audiohw_set_monitor(false); 72 audiohw_set_monitor(false);
73 audiohw_enable_recording(false); /* source line */
74 } 74 }
75 break; 75 break;
76#endif 76#endif
@@ -88,8 +88,16 @@ void audio_input_mux(int source, unsigned flags)
88 88
89 last_recording = recording; 89 last_recording = recording;
90 90
91 audiohw_enable_recording(false); /* select line-in source */ 91 if (recording)
92 audiohw_set_monitor(!recording); /* enable bypass mode */ 92 {
93 audiohw_set_monitor(false); /* disable bypass mode */
94 audiohw_enable_recording(false); /* select line-in source */
95 }
96 else
97 {
98 audiohw_disable_recording();
99 audiohw_set_monitor(true); /* enable bypass mode */
100 }
93 break; 101 break;
94#endif 102#endif
95 } /* end switch */ 103 } /* end switch */