home *** CD-ROM | disk | FTP | other *** search
- package javax.sound.midi;
-
- import java.io.ByteArrayInputStream;
- import java.io.ByteArrayOutputStream;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.FilterInputStream;
- import java.io.IOException;
-
- public class ShortMessage extends MidiMessage {
- public static final int MIDI_TIME_CODE = 241;
- public static final int SONG_POSITION_POINTER = 242;
- public static final int SONG_SELECT = 243;
- public static final int TUNE_REQUEST = 246;
- public static final int END_OF_EXCLUSIVE = 247;
- public static final int TIMING_CLOCK = 248;
- public static final int START = 250;
- public static final int CONTINUE = 251;
- public static final int STOP = 252;
- public static final int ACTIVE_SENSING = 254;
- public static final int SYSTEM_RESET = 255;
- public static final int NOTE_OFF = 128;
- public static final int NOTE_ON = 144;
- public static final int POLY_PRESSURE = 160;
- public static final int CONTROL_CHANGE = 176;
- public static final int PROGRAM_CHANGE = 192;
- public static final int CHANNEL_PRESSURE = 208;
- public static final int PITCH_BEND = 224;
- private static byte[] defaultMessage = new byte[]{-112, -1, 0};
-
- public ShortMessage() {
- this(defaultMessage);
- }
-
- protected ShortMessage(byte[] var1) {
- super(var1);
- }
-
- public void setMessage(int var1) throws InvalidMidiDataException {
- int var2 = this.getDataLength(var1);
- if (var2 != 0) {
- throw new InvalidMidiDataException("Status byte; " + var1 + " requires " + var2 + " data bytes");
- } else {
- try {
- ByteArrayOutputStream var3 = new ByteArrayOutputStream();
- DataOutputStream var4 = new DataOutputStream(var3);
- var4.writeByte(var1);
- super.data = var3.toByteArray();
- super.length = super.data.length;
- } catch (IOException var5) {
- }
-
- }
- }
-
- public void setMessage(int var1, int var2, int var3) throws InvalidMidiDataException {
- int var4 = this.getDataLength(var1);
-
- try {
- ByteArrayOutputStream var5 = new ByteArrayOutputStream();
- DataOutputStream var6 = new DataOutputStream(var5);
- var6.writeByte(var1);
- if (var4 >= 1) {
- var6.writeByte(var2);
- }
-
- if (var4 >= 2) {
- var6.writeByte(var3);
- }
-
- super.data = var5.toByteArray();
- super.length = super.data.length;
- } catch (IOException var7) {
- }
-
- }
-
- public void setMessage(int var1, int var2, int var3, int var4) throws InvalidMidiDataException {
- int var5 = var1 & 240 | var2 & 15;
- int var6 = this.getDataLength(var5);
-
- try {
- ByteArrayOutputStream var7 = new ByteArrayOutputStream();
- DataOutputStream var8 = new DataOutputStream(var7);
- var8.writeByte(var5);
- if (var6 >= 1) {
- var8.writeByte(var3);
- }
-
- if (var6 >= 2) {
- var8.writeByte(var4);
- }
-
- super.data = var7.toByteArray();
- super.length = super.data.length;
- } catch (IOException var9) {
- }
-
- }
-
- public int getChannel() {
- int var1 = ((MidiMessage)this).getStatus();
- return var1 & 15;
- }
-
- public int getCommand() {
- int var1 = ((MidiMessage)this).getStatus();
- return var1 & 240;
- }
-
- public int getData1() {
- int var1 = 0;
-
- try {
- int var2 = ((MidiMessage)this).getStatus();
- int var3 = this.getDataLength(var2);
- if (var3 < 1) {
- }
-
- ByteArrayInputStream var4 = new ByteArrayInputStream(super.data, 0, super.length);
- DataInputStream var5 = new DataInputStream(var4);
- ((FilterInputStream)var5).skip(1L);
- var1 = var5.readUnsignedByte();
- } catch (InvalidMidiDataException var6) {
- } catch (IOException var7) {
- }
-
- return var1;
- }
-
- public int getData2() {
- int var1 = 0;
-
- try {
- int var2 = ((MidiMessage)this).getStatus();
- int var3 = this.getDataLength(var2);
- if (var3 < 2) {
- }
-
- ByteArrayInputStream var4 = new ByteArrayInputStream(super.data, 0, super.length);
- DataInputStream var5 = new DataInputStream(var4);
- ((FilterInputStream)var5).skip(2L);
- var1 = var5.readUnsignedByte();
- } catch (InvalidMidiDataException var6) {
- } catch (IOException var7) {
- }
-
- return var1;
- }
-
- public Object clone() {
- byte[] var1 = new byte[super.length];
- System.arraycopy(super.data, 0, var1, 0, var1.length);
- ShortMessage var2 = new ShortMessage(var1);
- return var2;
- }
-
- protected final int getDataLength(int var1) throws InvalidMidiDataException {
- switch (var1) {
- case 241:
- case 243:
- return 1;
- case 242:
- return 2;
- case 244:
- case 245:
- default:
- switch (var1 & 240) {
- case 128:
- case 144:
- case 160:
- case 176:
- case 224:
- return 2;
- case 192:
- case 208:
- return 1;
- default:
- throw new InvalidMidiDataException("Invalid status byte: " + var1);
- }
- case 246:
- case 247:
- case 248:
- case 249:
- case 250:
- case 251:
- case 252:
- case 253:
- case 254:
- case 255:
- return 0;
- }
- }
- }
-