Audio Shield Problems switching between MIC and LINEIN

Maes2ro

Active member
My hardware application requires me to be able to switch between the Headset Microphone and an external Mic' connected to LineIn. I'm initially setting the SGTL5000 to headset using sgtl5000_1.inputSelect(AUDIO_INPUT_MIC); which works exactly as expected.

I encounter my problem once the rest of the code is in operation. It's a couple of thousand lines so I'm not going to attach the whole thing, but the area where I am hoping to switch between inputs is this:

if(NewMicrophoneInputMode){ // case 104
Serial.print("Mic Input mode ");
Serial.println(MicrophoneInputMode);
if(MicrophoneInputMode == 1){
Serial.println("Setting Mic to Handset");
delay(100);
sgtl5000_1.inputSelect(AUDIO_INPUT_LINEIN); // set to get handset mic
}
if(MicrophoneInputMode == 2){
Serial.println("Setting Mic to Headset");
delay(100);
sgtl5000_1.inputSelect(AUDIO_INPUT_MIC); // set to get headset mic
}
/********* no need to update screen ************************/
UpdateScreen = false;
NewMicrophoneInputMode = false; // clear flag
}

All the code executes fine, however, once I have run the inputSelect(AUDIO_INPUT_LINEIN), running inputSelect(AUDIO_INPUT_MIC) does not disable the LineIn, and it seems like both inputs are active together, although it's not very easy to test that idea.

The Audio configuration is this:

// GUItool: begin automatically generated code
AudioInputI2S i2s1; //xy=305,254
AudioInputUSB usb2; //xy=305,365
AudioOutputI2S i2s2; //xy=961,369
AudioOutputUSB usb1; //xy=964,261
AudioConnection patchCord1(i2s1, 0, usb1, 0);
AudioConnection patchCord2(i2s1, 1, usb1, 1);
AudioConnection patchCord3(usb2, 0, i2s2, 0);
AudioConnection patchCord4(usb2, 1, i2s2, 1);
AudioControlSGTL5000 sgtl5000_1; //xy=605,462
// GUItool: end automatically generated code

There's clearly something I'm missing about this operation, so I would greatly appreciate any suggestions.
 
Back
Top