home *** CD-ROM | disk | FTP | other *** search
- package javax.sound.midi;
-
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.net.URL;
- import java.util.Vector;
- import javax.sound.midi.spi.MidiDeviceProvider;
- import javax.sound.midi.spi.MidiFileReader;
- import javax.sound.midi.spi.MidiFileWriter;
- import javax.sound.midi.spi.SoundbankReader;
-
- public class MidiSystem {
- private static final String defaultServicesClassName = "com.sun.media.sound.DefaultServices";
- private static final String jdk13ServicesClassName = "com.sun.media.sound.JDK13Services";
- private static final String servicesMethodName = "getProviders";
- private static final Class[] servicesParamTypes;
- // $FF: synthetic field
- static Class class$java$lang$String;
- // $FF: synthetic field
- static Class class$javax$sound$midi$MidiDevice;
- // $FF: synthetic field
- static Class class$javax$sound$midi$Receiver;
- // $FF: synthetic field
- static Class class$javax$sound$midi$Transmitter;
- // $FF: synthetic field
- static Class class$javax$sound$midi$Synthesizer;
- // $FF: synthetic field
- static Class class$javax$sound$midi$Sequencer;
-
- private MidiSystem() {
- }
-
- public static MidiDevice.Info[] getMidiDeviceInfo() {
- return getGenericDeviceInfo(class$javax$sound$midi$MidiDevice == null ? (class$javax$sound$midi$MidiDevice = class$("javax.sound.midi.MidiDevice")) : class$javax$sound$midi$MidiDevice);
- }
-
- public static MidiDevice getMidiDevice(MidiDevice.Info var0) throws MidiUnavailableException {
- return (MidiDevice)getGenericDevice((Class)null, var0);
- }
-
- public static Receiver getReceiver() throws MidiUnavailableException {
- return ((MidiDevice)getGenericDevice(class$javax$sound$midi$Receiver == null ? (class$javax$sound$midi$Receiver = class$("javax.sound.midi.Receiver")) : class$javax$sound$midi$Receiver, (MidiDevice.Info)null)).getReceiver();
- }
-
- public static Transmitter getTransmitter() throws MidiUnavailableException {
- return ((MidiDevice)getGenericDevice(class$javax$sound$midi$Transmitter == null ? (class$javax$sound$midi$Transmitter = class$("javax.sound.midi.Transmitter")) : class$javax$sound$midi$Transmitter, (MidiDevice.Info)null)).getTransmitter();
- }
-
- public static Synthesizer getSynthesizer() throws MidiUnavailableException {
- return (Synthesizer)getGenericDevice(class$javax$sound$midi$Synthesizer == null ? (class$javax$sound$midi$Synthesizer = class$("javax.sound.midi.Synthesizer")) : class$javax$sound$midi$Synthesizer, (MidiDevice.Info)null);
- }
-
- public static Sequencer getSequencer() throws MidiUnavailableException {
- return (Sequencer)getGenericDevice(class$javax$sound$midi$Sequencer == null ? (class$javax$sound$midi$Sequencer = class$("javax.sound.midi.Sequencer")) : class$javax$sound$midi$Sequencer, (MidiDevice.Info)null);
- }
-
- public static Soundbank getSoundbank(InputStream var0) throws InvalidMidiDataException, IOException {
- new Vector();
- Object var2 = null;
- Object var3 = null;
- Vector var1 = getSoundbankReaders();
-
- for(int var4 = 0; var4 < var1.size(); ++var4) {
- SoundbankReader var5 = (SoundbankReader)var1.elementAt(var4);
- Soundbank var6 = var5.getSoundbank(var0);
- if (var6 != null) {
- return var6;
- }
- }
-
- throw new InvalidMidiDataException("cannot get soundbank from stream");
- }
-
- public static Soundbank getSoundbank(URL var0) throws InvalidMidiDataException, IOException {
- new Vector();
- Object var2 = null;
- Object var3 = null;
- Vector var1 = getSoundbankReaders();
-
- for(int var4 = 0; var4 < var1.size(); ++var4) {
- SoundbankReader var5 = (SoundbankReader)var1.elementAt(var4);
- Soundbank var6 = var5.getSoundbank(var0);
- if (var6 != null) {
- return var6;
- }
- }
-
- throw new InvalidMidiDataException("cannot get soundbank from stream");
- }
-
- public static Soundbank getSoundbank(File var0) throws InvalidMidiDataException, IOException {
- FileInputStream var1 = new FileInputStream(var0);
- return getSoundbank((InputStream)var1);
- }
-
- public static MidiFileFormat getMidiFileFormat(InputStream var0) throws InvalidMidiDataException, IOException {
- MidiFileReader[] var1 = getMidiFileReaders();
- MidiFileFormat var2 = null;
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- try {
- var2 = var1[var3].getMidiFileFormat(var0);
- break;
- }
- }
-
- if (var2 == null) {
- throw new InvalidMidiDataException("input stream is not a supported file type");
- } else {
- return var2;
- }
- }
-
- public static MidiFileFormat getMidiFileFormat(URL var0) throws InvalidMidiDataException, IOException {
- MidiFileReader[] var1 = getMidiFileReaders();
- MidiFileFormat var2 = null;
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- try {
- var2 = var1[var3].getMidiFileFormat(var0);
- break;
- }
- }
-
- if (var2 == null) {
- throw new InvalidMidiDataException("url is not a supported file type");
- } else {
- return var2;
- }
- }
-
- public static MidiFileFormat getMidiFileFormat(File var0) throws InvalidMidiDataException, IOException {
- MidiFileReader[] var1 = getMidiFileReaders();
- MidiFileFormat var2 = null;
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- try {
- var2 = var1[var3].getMidiFileFormat(var0);
- break;
- }
- }
-
- if (var2 == null) {
- throw new InvalidMidiDataException("file is not a supported file type");
- } else {
- return var2;
- }
- }
-
- public static Sequence getSequence(InputStream var0) throws InvalidMidiDataException, IOException {
- MidiFileReader[] var1 = getMidiFileReaders();
- Sequence var2 = null;
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- try {
- var2 = var1[var3].getSequence(var0);
- break;
- }
- }
-
- if (var2 == null) {
- throw new InvalidMidiDataException("could not get sequence from input stream");
- } else {
- return var2;
- }
- }
-
- public static Sequence getSequence(URL var0) throws InvalidMidiDataException, IOException {
- MidiFileReader[] var1 = getMidiFileReaders();
- Sequence var2 = null;
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- try {
- var2 = var1[var3].getSequence(var0);
- break;
- }
- }
-
- if (var2 == null) {
- throw new InvalidMidiDataException("could not get sequence from URL");
- } else {
- return var2;
- }
- }
-
- public static Sequence getSequence(File var0) throws InvalidMidiDataException, IOException {
- MidiFileReader[] var1 = getMidiFileReaders();
- Sequence var2 = null;
-
- for(int var3 = 0; var3 < var1.length; ++var3) {
- try {
- var2 = var1[var3].getSequence(var0);
- break;
- }
- }
-
- if (var2 == null) {
- throw new InvalidMidiDataException("could not get sequence from file");
- } else {
- return var2;
- }
- }
-
- public static int[] getMidiFileTypes() {
- MidiFileWriter[] var0 = getMidiFileWriters();
- Vector var1 = new Vector();
- int var2 = 0;
- int var3 = 0;
- Object var4 = null;
-
- for(int var5 = 0; var5 < var0.length; ++var5) {
- int[] var9 = var0[var5].getMidiFileTypes();
- var2 += var9.length;
- var1.addElement(var9);
- }
-
- int[] var6 = new int[var2];
-
- for(int var7 = 0; var7 < var1.size(); ++var7) {
- int[] var10 = (int[])var1.elementAt(var7);
-
- for(int var8 = 0; var8 < var10.length; ++var8) {
- var6[var3++] = var10[var8];
- }
- }
-
- return var6;
- }
-
- public static boolean isFileTypeSupported(int var0) {
- MidiFileWriter[] var1 = getMidiFileWriters();
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- if (var1[var2].isFileTypeSupported(var0)) {
- return true;
- }
- }
-
- return false;
- }
-
- public static int[] getMidiFileTypes(Sequence var0) {
- MidiFileWriter[] var1 = getMidiFileWriters();
- int[][] var2 = new int[var1.length][];
- Object var3 = null;
- int var4 = 0;
- int var5 = 0;
-
- for(int var6 = 0; var6 < var1.length; ++var6) {
- var2[var6] = var1[var6].getMidiFileTypes(var0);
- var4 += var2[var6].length;
- }
-
- int[] var9 = new int[var4];
-
- for(int var7 = 0; var7 < var1.length; ++var7) {
- for(int var8 = 0; var8 < var2[var7].length; ++var8) {
- var9[var5] = var2[var7][var8];
- ++var5;
- }
- }
-
- return var9;
- }
-
- public static boolean isFileTypeSupported(int var0, Sequence var1) {
- MidiFileWriter[] var2 = getMidiFileWriters();
-
- for(int var3 = 0; var3 < var2.length; ++var3) {
- if (var2[var3].isFileTypeSupported(var0, var1)) {
- return true;
- }
- }
-
- return false;
- }
-
- public static int write(Sequence var0, int var1, OutputStream var2) throws IOException {
- MidiFileWriter[] var3 = getMidiFileWriters();
- int var4 = 0;
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- if (var3[var5].isFileTypeSupported(var1, var0)) {
- var4 = var3[var5].write(var0, var1, var2);
- break;
- }
- }
-
- return var4;
- }
-
- public static int write(Sequence var0, int var1, File var2) throws IOException {
- MidiFileWriter[] var3 = getMidiFileWriters();
- int var4 = 0;
-
- for(int var5 = 0; var5 < var3.length; ++var5) {
- if (var3[var5].isFileTypeSupported(var1, var0)) {
- var4 = var3[var5].write(var0, var1, var2);
- break;
- }
- }
-
- return var4;
- }
-
- private static synchronized boolean isA(Class var0, Class var1) {
- return var1.isAssignableFrom(var0);
- }
-
- private static Vector getMidiDeviceProviders() {
- Object var0 = null;
-
- try {
- Class.forName("sun.misc.Service");
- var3 = getJDK13Services("javax.sound.midi.spi.MidiDeviceProvider");
- } catch (Exception var2) {
- var3 = getDefaultServices("javax.sound.midi.spi.MidiDeviceProvider");
- }
-
- return var3;
- }
-
- private static Vector getSoundbankReaders() {
- Object var0 = null;
-
- try {
- Class.forName("sun.misc.Service");
- var3 = getJDK13Services("javax.sound.midi.spi.SoundbankReader");
- } catch (Exception var2) {
- var3 = getDefaultServices("javax.sound.midi.spi.SoundbankReader");
- }
-
- return var3;
- }
-
- private static MidiFileWriter[] getMidiFileWriters() {
- new Vector();
-
- Vector var0;
- try {
- Class.forName("sun.misc.Service");
- var0 = getJDK13Services("javax.sound.midi.spi.MidiFileWriter");
- } catch (Exception var3) {
- var0 = getDefaultServices("javax.sound.midi.spi.MidiFileWriter");
- }
-
- MidiFileWriter[] var1 = new MidiFileWriter[var0.size()];
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- var1[var2] = (MidiFileWriter)var0.elementAt(var2);
- }
-
- return var1;
- }
-
- private static MidiFileReader[] getMidiFileReaders() {
- new Vector();
-
- Vector var0;
- try {
- Class.forName("sun.misc.Service");
- var0 = getJDK13Services("javax.sound.midi.spi.MidiFileReader");
- } catch (Exception var3) {
- var0 = getDefaultServices("javax.sound.midi.spi.MidiFileReader");
- }
-
- MidiFileReader[] var1 = new MidiFileReader[var0.size()];
-
- for(int var2 = 0; var2 < var1.length; ++var2) {
- var1[var2] = (MidiFileReader)var0.elementAt(var2);
- }
-
- return var1;
- }
-
- private static MidiDevice.Info[] getGenericDeviceInfo(Class var0) {
- Vector var3 = new Vector();
- Vector var6 = getMidiDeviceProviders();
-
- for(int var1 = 0; var1 < var6.size(); ++var1) {
- MidiDevice.Info[] var4 = ((MidiDeviceProvider)var6.elementAt(var1)).getDeviceInfo();
-
- for(int var2 = 0; var2 < var4.length; ++var2) {
- MidiDevice var7 = ((MidiDeviceProvider)var6.elementAt(var1)).getDevice(var4[var2]);
- if (isA(var0, class$javax$sound$midi$Receiver == null ? (class$javax$sound$midi$Receiver = class$("javax.sound.midi.Receiver")) : class$javax$sound$midi$Receiver)) {
- if (var7.getMaxReceivers() != 0) {
- var3.addElement(var4[var2]);
- }
- } else if (isA(var0, class$javax$sound$midi$Transmitter == null ? (class$javax$sound$midi$Transmitter = class$("javax.sound.midi.Transmitter")) : class$javax$sound$midi$Transmitter)) {
- if (var7.getMaxTransmitters() != 0) {
- var3.addElement(var4[var2]);
- }
- } else if (var0.isInstance(var7)) {
- var3.addElement(var4[var2]);
- }
- }
- }
-
- MidiDevice.Info[] var5 = new MidiDevice.Info[var3.size()];
-
- for(int var8 = 0; var8 < var5.length; ++var8) {
- var5[var8] = (MidiDevice.Info)var3.elementAt(var8);
- }
-
- return var5;
- }
-
- private static Object getGenericDevice(Class var0, MidiDevice.Info var1) {
- Object var4 = null;
- Object var5 = null;
- new Vector();
- Vector var6 = getMidiDeviceProviders();
-
- for(int var2 = 0; var2 < var6.size(); ++var2) {
- MidiDevice.Info[] var9 = ((MidiDeviceProvider)var6.elementAt(var2)).getDeviceInfo();
- if (var1 == null) {
- for(int var8 = 0; var8 < var9.length; ++var8) {
- MidiDevice var10 = ((MidiDeviceProvider)var6.elementAt(var2)).getDevice(var9[var8]);
- if (isA(var0, class$javax$sound$midi$Receiver == null ? (class$javax$sound$midi$Receiver = class$("javax.sound.midi.Receiver")) : class$javax$sound$midi$Receiver)) {
- if (var10.getMaxReceivers() != 0) {
- return var10;
- }
- } else if (isA(var0, class$javax$sound$midi$Transmitter == null ? (class$javax$sound$midi$Transmitter = class$("javax.sound.midi.Transmitter")) : class$javax$sound$midi$Transmitter)) {
- if (var10.getMaxTransmitters() != 0) {
- return var10;
- }
- } else if (var0.isInstance(var10)) {
- return var10;
- }
- }
- } else {
- for(int var3 = 0; var3 < var9.length; ++var3) {
- if (var9[var3].equals(var1)) {
- MidiDevice var7 = ((MidiDeviceProvider)var6.elementAt(var2)).getDevice(var9[var3]);
- if (var0 == null) {
- return var7;
- }
-
- if (isA(var0, class$javax$sound$midi$Receiver == null ? (class$javax$sound$midi$Receiver = class$("javax.sound.midi.Receiver")) : class$javax$sound$midi$Receiver)) {
- if (var7.getMaxReceivers() != 0) {
- return var7;
- }
- } else if (isA(var0, class$javax$sound$midi$Transmitter == null ? (class$javax$sound$midi$Transmitter = class$("javax.sound.midi.Transmitter")) : class$javax$sound$midi$Transmitter) && var7.getMaxTransmitters() != 0) {
- return var7;
- }
- }
- }
- }
- }
-
- throw new IllegalArgumentException("Requested device not installed: " + var1);
- }
-
- private static Vector getJDK13Services(String var0) {
- Object var1 = null;
-
- try {
- Class var2 = Class.forName("com.sun.media.sound.JDK13Services");
- Method var3 = var2.getMethod("getProviders", servicesParamTypes);
- Object[] var4 = new Object[]{var0};
- var10 = (Vector)var3.invoke(var2, var4);
- } catch (InvocationTargetException var6) {
- var10 = new Vector();
- } catch (ClassNotFoundException var7) {
- var10 = new Vector();
- } catch (IllegalAccessException var8) {
- var10 = new Vector();
- } catch (NoSuchMethodException var9) {
- var10 = new Vector();
- }
-
- return var10;
- }
-
- private static Vector getDefaultServices(String var0) {
- Object var1 = null;
-
- try {
- Class var2 = Class.forName("com.sun.media.sound.DefaultServices");
- Method var3 = var2.getMethod("getProviders", servicesParamTypes);
- Object[] var4 = new Object[]{var0};
- var10 = (Vector)var3.invoke(var2, var4);
- } catch (InvocationTargetException var6) {
- var10 = new Vector();
- } catch (ClassNotFoundException var7) {
- var10 = new Vector();
- } catch (IllegalAccessException var8) {
- var10 = new Vector();
- } catch (NoSuchMethodException var9) {
- var10 = new Vector();
- }
-
- return var10;
- }
-
- // $FF: synthetic method
- static Class class$(String var0) {
- try {
- return Class.forName(var0);
- } catch (ClassNotFoundException var2) {
- throw new NoClassDefFoundError(((Throwable)var2).getMessage());
- }
- }
-
- static {
- servicesParamTypes = new Class[]{class$java$lang$String == null ? (class$java$lang$String = class$("java.lang.String")) : class$java$lang$String};
- }
- }
-