001package ca.bc.webarts.tools;
002
003import java.util.*;
004import javax.sound.sampled.*;
005
006public class AudioQueryMixers
007{
008  public AudioQueryMixers()
009  { }
010  public static void main(String[] args)throws Exception
011  {
012    showMixers();
013  }
014  public static void showMixers()
015  {
016
017    ArrayList<Mixer.Info> mixInfos = new ArrayList<Mixer.Info>( Arrays.asList (AudioSystem.getMixerInfo ()));
018    Line.Info sourceDLInfo = new Line.Info( SourceDataLine.class);
019    Line.Info targetDLInfo = new Line.Info( TargetDataLine.class);
020    Line.Info clipInfo = new Line.Info(Clip.class);
021    Line.Info portInfo = new Line.Info(Port.class);
022    String support;
023    for (Mixer.Info mixInfo : mixInfos)
024    {
025      Mixer mixer = AudioSystem.getMixer (mixInfo);
026      support = ", supports ";
027      if (mixer.isLineSupported (sourceDLInfo))
028      {
029        support += "SourceDataLine ";
030      }
031      if (mixer.isLineSupported (clipInfo))
032      {
033        support += "Clip ";
034      }
035      if (mixer.isLineSupported (targetDLInfo))
036      {
037        support += "TargetDataLine ";
038      }
039      if (mixer.isLineSupported (portInfo))
040      {
041        support += "Port ";
042      }
043      System.out.println("Mixer: " + mixInfo.getName() + support + ", " + mixInfo.getDescription ());
044    } } }