/*!
* copyright 2012 abudaan http://abumarkub.net
* code licensed under MIT
* http://abumarkub.net/midibridge/license
*
*
*
*/
package net.abumarkub.midi;
import java.applet.Applet;
import java.applet.AppletContext;
import java.net.MalformedURLException;
import java.net.URL;
public class MIDIApplet extends Applet{
private AppletContext _context;
private MIDIAccess _midiAccess;
private MIDISequencer _midiSequencer;
private Boolean _match;
private static final long serialVersionUID = 1L;
public static void main(String args[]) {
MIDIApplet midiApplet = new MIDIApplet();
midiApplet.init();
}
@Override
public synchronized void init() {
String javaVersion = System.getProperty("java.version");
int currentVersion = getVersionAsNumber(javaVersion);
int requiredVersion = getVersionAsNumber(getParameter("minJavaVersion"));
_match = currentVersion >= requiredVersion;
System.out.println("[init] MIDIBridge 0.6.3 Java Version OK: " + _match);
}
@Override
public void start() {
_context = getAppletContext();
if(_match) {
_midiAccess = new MIDIAccess(_context);
_midiSequencer = new MIDISequencer(_context);
}
System.out.println("[start] " + _context.toString() + " : " + System.getProperty("java.version") + " : " + System.getProperty("java.vendor"));
String url;
if (_match) {
url = "javascript:midiBridge.ready()";
} else {
url = "javascript:midiBridge.error('Please update your Java plugin (your version: " + System.getProperty("java.version") + " required version: " + getParameter("minJavaVersion") + ")')";
}
try {
_context.showDocument(new URL(url));
} catch (MalformedURLException me) {
System.out.println(me);
} catch (Exception e) {
System.out.println(e);
}
}
@Override
public void stop() {
_midiAccess.closeInputs();
_midiAccess.closeOutputs();
_midiSequencer.close();
_context = null;
System.gc();
System.out.println("[stop]");
}
@Override
public void destroy() {
System.gc();
System.runFinalization();
System.out.println("[destroy]");
}
public boolean ready(){
return true;
}
public MIDIAccess getMIDIAccess(){
return _midiAccess;
}
public MIDISequencer getSequencer(){
return _midiSequencer;
}
private int getVersionAsNumber(String version) {
String tmp = version.substring(0, 1);
tmp += version.substring(2, 3);
return Integer.parseInt(tmp);
}
}