!7 import javax.sound.sampled.*; p-exp { for (Mixer.Info thisMixerInfo : AudioSystem.getMixerInfo()) { print("Mixer: "+thisMixerInfo.getDescription() + " ["+thisMixerInfo.getName()+"]"); Mixer thisMixer = AudioSystem.getMixer(thisMixerInfo); for (Line.Info thisLineInfo:thisMixer.getSourceLineInfo()) { if (thisLineInfo.getLineClass().getName().equals("javax.sound.sampled.Port")) { Line thisLine = thisMixer.getLine(thisLineInfo); thisLine.open(); print(" Line type: " + thisLine); print(" Source Port: " + thisLineInfo); for (Control thisControl : thisLine.getControls()) print("Have control: " + thisControl); thisLine.close(); } } for (Line.Info thisLineInfo:thisMixer.getTargetLineInfo()) { if (thisLineInfo.getLineClass().getName().equals("javax.sound.sampled.Port")) { Line thisLine = thisMixer.getLine(thisLineInfo); thisLine.open(); print(" Target Port: " + thisLineInfo); for (Control thisControl : thisLine.getControls()) print("Have control: " + thisControl); thisLine.close(); } } } }