From 1090e767f111121fb3e22fde3c66326f369f80cd Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 28 Apr 2010 08:00:46 +0000 Subject: Remove incomplete/nonfunctional MIDI class bootloader. --- Bootloaders/Incomplete/MIDI/JavaHost/BIN2BOOT.java | 178 --------------------- .../MIDI/JavaHost/MIDIMessageReceiver.java | 33 ---- 2 files changed, 211 deletions(-) delete mode 100644 Bootloaders/Incomplete/MIDI/JavaHost/BIN2BOOT.java delete mode 100644 Bootloaders/Incomplete/MIDI/JavaHost/MIDIMessageReceiver.java (limited to 'Bootloaders/Incomplete/MIDI/JavaHost') diff --git a/Bootloaders/Incomplete/MIDI/JavaHost/BIN2BOOT.java b/Bootloaders/Incomplete/MIDI/JavaHost/BIN2BOOT.java deleted file mode 100644 index f30998ad5..000000000 --- a/Bootloaders/Incomplete/MIDI/JavaHost/BIN2BOOT.java +++ /dev/null @@ -1,178 +0,0 @@ -import javax.sound.midi.*; -import javax.sound.midi.MidiMessage.*; -import java.io.RandomAccessFile; - -class BIN2BOOT -{ - private static final int MIDI_CONTROL_CHANNEL = 9; - private static final int MIDI_DATA_CHANNEL = 0; - - private static final int CONTROL_DEVICE_READY = 0xD1; - private static final int CONTROL_ENTER_PROG_MODE = 0xDC; - private static final int CONTROL_LEAVE_PROG_MODE = 0xDF; - private static final int CONTROL_GET_PAGE_SIZE = 0x01; - - public static void main(String[] args) - { - if (args.length != 1) - { - System.out.println("BIN2BOOT - USB-MIDI bootloader"); - System.out.println(" Usage: java BIN2BOOT {input}.bin"); - } - - RandomAccessFile inFile = null; - - try - { - inFile = new RandomAccessFile(args[0], "r"); - } - catch (Exception e) - { - System.out.println("Could not open input file!"); - return; - } - - MidiDevice currDevice = null; - Receiver midiOut = null; - Transmitter midiIn = null; - MIDIMessageReceiver midiInMessages = new MIDIMessageReceiver(); - - try - { - MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo(); - - for (MidiDevice.Info info : infos) - { - currDevice = MidiSystem.getMidiDevice(info); - - if (!(currDevice instanceof Sequencer) && !(currDevice instanceof Synthesizer)) - { - if (info.getName().indexOf("LUFA") == -1) - continue; - - System.out.println(" MIDI Device: " + info.getName()); - - currDevice.open(); - - if (currDevice.getMaxReceivers() != 0) - { - midiOut = currDevice.getReceiver(); - break; - } - - if (currDevice.getMaxTransmitters() != 0) - { - midiIn = currDevice.getTransmitter(); - midiIn.setReceiver(midiInMessages); - } - } - } - - if ((midiOut == null) || (midiIn == null)) - { - System.out.println("Could not find suitable MIDI device!"); - return; - } - } - catch (Exception e) - { - System.out.println("Could not enumerate MIDI devices!"); - return; - } - - System.out.println("PROGRAMMING FILE..."); - - ProgramFirmware(inFile, midiOut, midiInMessages); - - System.out.println("DONE."); - - try - { - midiOut.close(); - midiIn.close(); - currDevice.close(); - inFile.close(); - } - catch (Exception e) - { - System.out.println("ERROR: Could not close open resources."); - } - } - - private static void ProgramFirmware(RandomAccessFile inFile, Receiver midiOut, MIDIMessageReceiver midiInMessages) - { - try - { - System.out.println("Entering Programming Mode..."); - sendByteViaMIDI(midiOut, MIDI_CONTROL_CHANNEL, CONTROL_ENTER_PROG_MODE); - - int[] messageData; - do - { - messageData = receiveByteViaMIDI(midiInMessages); - } - while ((messageData[0] != MIDI_CONTROL_CHANNEL) && (messageData[1] != CONTROL_DEVICE_READY)); - - System.out.println("Getting Page Size..."); - sendByteViaMIDI(midiOut, MIDI_CONTROL_CHANNEL, CONTROL_GET_PAGE_SIZE); - - int nextByte = inFile.read(); - while (nextByte != -1) - { - sendByteViaMIDI(midiOut, 9, nextByte); - - if ((inFile.getFilePointer() % (inFile.length() / 100)) == 0) - System.out.println(" LOADING: " + (int)(inFile.getFilePointer() / (inFile.length() / 100.0)) + "%..."); - - nextByte = inFile.read(); - } - - sendByteViaMIDI(midiOut, MIDI_CONTROL_CHANNEL, CONTROL_LEAVE_PROG_MODE); - } - catch (Exception e) - { - System.out.println("ERROR: Could not send data to device."); - } - } - - private static void sendByteViaMIDI(Receiver midiOut, int channel, int data) - { - ShortMessage sendMessage = new ShortMessage(); - - try - { - sendMessage.setMessage(ShortMessage.NOTE_ON, channel, (data & 0x7F), (((data & 0x80) == 0x80) ? 64 : 32)); - midiOut.send(sendMessage, -1); - -// try {Thread.sleep(1);} catch (Exception e) {} - - sendMessage.setMessage(ShortMessage.NOTE_OFF, channel, (data & 0x7F), (((data & 0x80) == 0x80) ? 64 : 32)); - midiOut.send(sendMessage, -1); - } - catch (Exception e) - { - System.out.println("ERROR: Could not send MIDI note press."); - } - } - - private static int[] receiveByteViaMIDI(MIDIMessageReceiver midiInReceiver) - { - byte[] messageData; - - do - { - while (!(midiInReceiver.hasReceived())); - messageData = midiInReceiver.receive().getMessage(); - } - while ((messageData[0] & 0xF0) != ShortMessage.NOTE_ON); - - int channel = (messageData[0] & 0x0F); - int data = (messageData[1] | ((messageData[2] == 64) ? 0x80 : 0x00)); - - int[] formattedMessageData = new int[2]; - formattedMessageData[0] = channel; - formattedMessageData[1] = data; - - return formattedMessageData; - } -} \ No newline at end of file diff --git a/Bootloaders/Incomplete/MIDI/JavaHost/MIDIMessageReceiver.java b/Bootloaders/Incomplete/MIDI/JavaHost/MIDIMessageReceiver.java deleted file mode 100644 index 0fcaaead9..000000000 --- a/Bootloaders/Incomplete/MIDI/JavaHost/MIDIMessageReceiver.java +++ /dev/null @@ -1,33 +0,0 @@ -import java.util.PriorityQueue; -import javax.sound.midi.*; -import javax.sound.midi.MidiMessage.*; - -class MIDIMessageReceiver implements Receiver -{ - private PriorityQueue messages; - - MIDIMessageReceiver() - { - messages = new PriorityQueue(); - } - - public void send(MidiMessage message, long timeStamp) - { - messages.add(message); - } - - public boolean hasReceived() - { - return (messages.size() != 0); - } - - public MidiMessage receive() - { - return messages.poll(); - } - - public void close() - { - - } -} -- cgit v1.2.3