From 6e36ac547c23c3890439a3b81772d7e3c1ce938d Mon Sep 17 00:00:00 2001 From: Michael Sevakis Date: Sun, 11 Nov 2007 19:11:23 +0000 Subject: H10: Touch-up the audio source switching a bit. Actually fix my earlier errors when enabling recording from Line/FM. git-svn-id: svn://svn.rockbox.org/rockbox/trunk@15580 a1c6a512-1295-4272-9138-f99709370657 --- firmware/target/arm/audio-pp.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'firmware/target/arm/audio-pp.c') 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) #ifdef HAVE_RECORDING if (source != last_source) { - audiohw_disable_recording(); audiohw_set_monitor(false); + audiohw_disable_recording(); } #endif break; @@ -56,8 +56,8 @@ void audio_input_mux(int source, unsigned flags) case AUDIO_SRC_MIC: /* recording only */ if (source != last_source) { - audiohw_enable_recording(true); /* source mic */ audiohw_set_monitor(false); + audiohw_enable_recording(true); /* source mic */ } break; #endif @@ -69,8 +69,8 @@ void audio_input_mux(int source, unsigned flags) #endif if (source != last_source) { - audiohw_enable_recording(false); /* source line */ audiohw_set_monitor(false); + audiohw_enable_recording(false); /* source line */ } break; #endif @@ -88,8 +88,16 @@ void audio_input_mux(int source, unsigned flags) last_recording = recording; - audiohw_enable_recording(false); /* select line-in source */ - audiohw_set_monitor(!recording); /* enable bypass mode */ + if (recording) + { + audiohw_set_monitor(false); /* disable bypass mode */ + audiohw_enable_recording(false); /* select line-in source */ + } + else + { + audiohw_disable_recording(); + audiohw_set_monitor(true); /* enable bypass mode */ + } break; #endif } /* end switch */ -- cgit v1.2.3