package call.gui;
import javax.sound.sampled.Line;
import javax.sound.sampled.Mixer;
import javax.swing.SwingUtilities;
import call.AbstractId;
import call.AudioDeviceScannerUi;
public class AudioDeviceScannerDialog extends AbstractId implements AudioDeviceScannerUi {
private ProgressMonitor progressMonitor;
private int progress = 0;
@Override
public void open() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progress = 0;
progressMonitor = new ProgressMonitor(null, "Searching for audio devices...", "", progress,
100);
progressMonitor.setMillisToDecideToPopup(0);
progressMonitor.setMillisToPopup(0);
}
});
}
@Override
public void setMaxSteps(final int maxSteps) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progressMonitor.setMaximum(maxSteps + 1);
}
});
}
@Override
public void setCurrentLine(final Mixer.Info mixerinfo, final Line.Info lineinfo) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progressMonitor.setNote(mixerinfo.getName());
}
});
}
@Override
public void nextProgressStep() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progressMonitor.setProgress(++progress);
}
});
}
@Override
public void close() {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
progressMonitor.close();
}
});
}
@Override
public String getId() {
return "AudioDeviceScannerDialog";
}
}