package org.herac.tuxguitar.jack;
import java.util.ArrayList;
import java.util.List;
import org.eclipse.swt.widgets.Shell;
import org.herac.tuxguitar.gui.system.plugins.TGPlugin;
import org.herac.tuxguitar.gui.system.plugins.TGPluginException;
import org.herac.tuxguitar.gui.system.plugins.TGPluginSetup;
import org.herac.tuxguitar.gui.system.plugins.base.TGPluginList;
import org.herac.tuxguitar.jack.sequencer.JackSequencerProviderPlugin;
import org.herac.tuxguitar.jack.settings.JackSettings;
import org.herac.tuxguitar.jack.settings.JackSettingsDialog;
import org.herac.tuxguitar.jack.synthesizer.JackOutputPortProviderPlugin;
public class JackPluginImpl extends TGPluginList implements TGPluginSetup {
private JackClient jackClient;
private JackSettings jackSettings;
public JackPluginImpl() {
this.jackClient = new JackClient();
this.jackSettings = new JackSettings();
}
public void closeAll() {
if (this.jackClient.isOpen()) {
this.jackClient.close();
this.jackClient.finalize();
}
}
public String getAuthor() {
return "Julian Casadesus <julian@casadesus.com.ar>";
}
public String getDescription() {
return "Jack Audio Connection Kit plugin support";
}
public String getName() {
return "Jack Audio Connection Kit plugin support";
}
protected List<TGPlugin> getPlugins() throws TGPluginException {
List<TGPlugin> plugins = new ArrayList<TGPlugin>();
plugins.add(new JackOutputPortProviderPlugin(this.jackClient,
this.jackSettings));
plugins.add(new JackSequencerProviderPlugin(this.jackClient));
return plugins;
}
public String getVersion() {
return "1.0";
}
public void setupDialog(Shell parent) {
JackSettingsDialog jackSettingsDialog = new JackSettingsDialog(
this.jackSettings);
jackSettingsDialog.open(parent);
}
}