package org.herac.tuxguitar.midiinput; import org.eclipse.swt.widgets.Shell; import org.herac.tuxguitar.gui.TuxGuitar; import org.herac.tuxguitar.gui.system.plugins.TGPluginException; import org.herac.tuxguitar.gui.system.plugins.TGPluginSetup; import org.herac.tuxguitar.gui.system.plugins.base.TGToolItemPlugin; import org.herac.tuxguitar.gui.util.MessageDialog; public class MidiInputPlugin extends TGToolItemPlugin implements TGPluginSetup { protected void doAction() { MiPanel.instance().showDialog(TuxGuitar.instance().getShell()); } /* * TGPlugin implementation */ public String getAuthor() { return "Amedeo Farello <afarello@tiscalinet.it>"; } public String getDescription() { return "Supports MIDI equipped guitars"; } protected String getItemName() { return "MIDI input"; } public String getName() { return "MIDI input plugin"; } /* * TGPluginSetup implementation */ public String getVersion() { return "1.0"; } /* * TGToolItemPlugin implementation */ public void setEnabled(boolean enabled) throws TGPluginException { if (enabled) { // try to setup the environment according to the user's preferences String notesDeviceName = MiConfig.instance().getMidiInputPortName(); if (notesDeviceName != null) { try { MiPort.setNotesPort(notesDeviceName); } catch (MiException mie) { MessageDialog.errorMessage(mie); } } MiProvider.instance().setBaseChannel( MiConfig.instance().getMidiBaseChannel()); MiProvider.instance().setMode(MiConfig.instance().getMode()); MiProvider.instance().setMinVelocity( (byte) MiConfig.instance().getMinVelocity()); MiProvider.instance() .setMinDuration(MiConfig.instance().getMinDuration()); MiProvider.instance() .setEchoTimeOut(MiConfig.instance().getEchoTimeOut()); MiProvider.instance().setInputTimeOut( MiConfig.instance().getInputTimeOut()); } else { // try to cleanup the environment try { MiPort.setNotesPort(null); MiPort.setControlPort(null); } catch (MiException mie) { MessageDialog.errorMessage(mie); } } super.setEnabled(enabled); } public void setupDialog(Shell parent) { MiConfig.instance().showDialog(parent); } }