public final class com.sun.media.sound.SoftMidiAudioFileReader extends com.sun.media.sound.SunFileReader
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.SoftMidiAudioFileReader
super_class: com.sun.media.sound.SunFileReader
{
private static final javax.sound.sampled.AudioFileFormat$Type MIDI;
descriptor: Ljavax/sound/sampled/AudioFileFormat$Type;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
private static final javax.sound.sampled.AudioFormat format;
descriptor: Ljavax/sound/sampled/AudioFormat;
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=7, locals=0, args_size=0
0: new javax.sound.sampled.AudioFileFormat$Type
dup
ldc "MIDI"
ldc "mid"
invokespecial javax.sound.sampled.AudioFileFormat$Type.<init>:(Ljava/lang/String;Ljava/lang/String;)V
putstatic com.sun.media.sound.SoftMidiAudioFileReader.MIDI:Ljavax/sound/sampled/AudioFileFormat$Type;
1: new javax.sound.sampled.AudioFormat
dup
ldc 44100.0
bipush 16
iconst_2
2: iconst_1
iconst_0
3: invokespecial javax.sound.sampled.AudioFormat.<init>:(FIIZZ)V
putstatic com.sun.media.sound.SoftMidiAudioFileReader.format:Ljavax/sound/sampled/AudioFormat;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.sun.media.sound.SunFileReader.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMidiAudioFileReader;
private static com.sun.media.sound.StandardFileFormat getAudioFileFormat(javax.sound.midi.Sequence);
descriptor: (Ljavax/sound/midi/Sequence;)Lcom/sun/media/sound/StandardFileFormat;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=5, args_size=1
start local 0 0: aload 0
invokevirtual javax.sound.midi.Sequence.getMicrosecondLength:()J
ldc 1000000
ldiv
lstore 1
start local 1 1: getstatic com.sun.media.sound.SoftMidiAudioFileReader.format:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
lload 1
ldc 4
ladd
l2f
fmul
f2l
lstore 3
start local 3 2: new com.sun.media.sound.StandardFileFormat
dup
getstatic com.sun.media.sound.SoftMidiAudioFileReader.MIDI:Ljavax/sound/sampled/AudioFileFormat$Type;
getstatic com.sun.media.sound.SoftMidiAudioFileReader.format:Ljavax/sound/sampled/AudioFormat;
lload 3
invokespecial com.sun.media.sound.StandardFileFormat.<init>:(Ljavax/sound/sampled/AudioFileFormat$Type;Ljavax/sound/sampled/AudioFormat;J)V
areturn
end local 3 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 seq Ljavax/sound/midi/Sequence;
1 3 1 totallen J
2 3 3 len J
MethodParameters:
Name Flags
seq final
private javax.sound.sampled.AudioInputStream getAudioInputStream(javax.sound.midi.Sequence);
descriptor: (Ljavax/sound/midi/Sequence;)Ljavax/sound/sampled/AudioInputStream;
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=20, args_size=2
start local 0 start local 1 0: new com.sun.media.sound.SoftSynthesizer
dup
invokespecial com.sun.media.sound.SoftSynthesizer.<init>:()V
astore 2
start local 2 1: aload 2
getstatic com.sun.media.sound.SoftMidiAudioFileReader.format:Ljavax/sound/sampled/AudioFormat;
aconst_null
invokeinterface com.sun.media.sound.AudioSynthesizer.openStream:(Ljavax/sound/sampled/AudioFormat;Ljava/util/Map;)Ljavax/sound/sampled/AudioInputStream;
astore 3
start local 3 2: aload 2
invokeinterface com.sun.media.sound.AudioSynthesizer.getReceiver:()Ljavax/sound/midi/Receiver;
astore 4
start local 4 3: goto 6
end local 4 end local 3 StackMap locals: com.sun.media.sound.SoftMidiAudioFileReader javax.sound.midi.Sequence com.sun.media.sound.AudioSynthesizer
StackMap stack: javax.sound.midi.MidiUnavailableException
4: astore 5
start local 5 5: new javax.sound.midi.InvalidMidiDataException
dup
aload 5
invokevirtual javax.sound.midi.MidiUnavailableException.toString:()Ljava/lang/String;
invokespecial javax.sound.midi.InvalidMidiDataException.<init>:(Ljava/lang/String;)V
athrow
end local 5 start local 3 start local 4 6: StackMap locals: javax.sound.sampled.AudioInputStream javax.sound.midi.Receiver
StackMap stack:
aload 1
invokevirtual javax.sound.midi.Sequence.getDivisionType:()F
fstore 5
start local 5 7: aload 1
invokevirtual javax.sound.midi.Sequence.getTracks:()[Ljavax/sound/midi/Track;
astore 6
start local 6 8: aload 6
arraylength
newarray 10
astore 7
start local 7 9: ldc 500000
istore 8
start local 8 10: aload 1
invokevirtual javax.sound.midi.Sequence.getResolution:()I
istore 9
start local 9 11: lconst_0
lstore 10
start local 10 12: lconst_0
lstore 12
start local 12 13: StackMap locals: com.sun.media.sound.SoftMidiAudioFileReader javax.sound.midi.Sequence com.sun.media.sound.AudioSynthesizer javax.sound.sampled.AudioInputStream javax.sound.midi.Receiver float javax.sound.midi.Track[] int[] int int long long
StackMap stack:
aconst_null
astore 14
start local 14 14: iconst_m1
istore 15
start local 15 15: iconst_0
istore 16
start local 16 16: goto 25
17: StackMap locals: javax.sound.midi.MidiEvent int int
StackMap stack:
aload 7
iload 16
iaload
istore 17
start local 17 18: aload 6
iload 16
aaload
astore 18
start local 18 19: iload 17
aload 18
invokevirtual javax.sound.midi.Track.size:()I
if_icmpge 24
20: aload 18
iload 17
invokevirtual javax.sound.midi.Track.get:(I)Ljavax/sound/midi/MidiEvent;
astore 19
start local 19 21: aload 14
ifnull 22
aload 19
invokevirtual javax.sound.midi.MidiEvent.getTick:()J
aload 14
invokevirtual javax.sound.midi.MidiEvent.getTick:()J
lcmp
ifge 24
22: StackMap locals: int javax.sound.midi.Track javax.sound.midi.MidiEvent
StackMap stack:
aload 19
astore 14
23: iload 16
istore 15
end local 19 end local 18 end local 17 24: StackMap locals:
StackMap stack:
iinc 16 1
StackMap locals:
StackMap stack:
25: iload 16
aload 6
arraylength
if_icmplt 17
end local 16 26: iload 15
iconst_m1
if_icmpne 28
27: goto 49
28: StackMap locals:
StackMap stack:
aload 7
iload 15
dup2
iaload
iconst_1
iadd
iastore
29: aload 14
invokevirtual javax.sound.midi.MidiEvent.getTick:()J
lstore 16
start local 16 30: fload 5
fconst_0
fcmpl
ifne 32
31: lload 12
lload 16
lload 10
lsub
iload 8
i2l
lmul
iload 9
i2l
ldiv
ladd
lstore 12
goto 33
32: StackMap locals: long
StackMap stack:
lload 16
l2d
ldc 1000000.0
dmul
fload 5
f2d
dmul
iload 9
i2d
ddiv
d2l
lstore 12
33: StackMap locals:
StackMap stack:
lload 16
lstore 10
34: aload 14
invokevirtual javax.sound.midi.MidiEvent.getMessage:()Ljavax/sound/midi/MidiMessage;
astore 18
start local 18 35: aload 18
instanceof javax.sound.midi.MetaMessage
ifeq 47
36: fload 5
fconst_0
fcmpl
ifne 13
37: aload 18
checkcast javax.sound.midi.MetaMessage
invokevirtual javax.sound.midi.MetaMessage.getType:()I
bipush 81
if_icmpne 13
38: aload 18
checkcast javax.sound.midi.MetaMessage
invokevirtual javax.sound.midi.MetaMessage.getData:()[B
astore 19
start local 19 39: aload 19
arraylength
iconst_3
if_icmpge 41
40: new javax.sound.midi.InvalidMidiDataException
dup
invokespecial javax.sound.midi.InvalidMidiDataException.<init>:()V
athrow
41: StackMap locals: javax.sound.midi.MidiMessage byte[]
StackMap stack:
aload 19
iconst_0
baload
sipush 255
iand
bipush 16
ishl
42: aload 19
iconst_1
baload
sipush 255
iand
bipush 8
ishl
43: ior
44: aload 19
iconst_2
baload
sipush 255
iand
45: ior
istore 8
end local 19 46: goto 13
47: StackMap locals:
StackMap stack:
aload 4
aload 18
lload 12
invokeinterface javax.sound.midi.Receiver.send:(Ljavax/sound/midi/MidiMessage;J)V
end local 18 end local 16 end local 15 end local 14 48: goto 13
49: StackMap locals: com.sun.media.sound.SoftMidiAudioFileReader javax.sound.midi.Sequence com.sun.media.sound.AudioSynthesizer javax.sound.sampled.AudioInputStream javax.sound.midi.Receiver float javax.sound.midi.Track[] int[] int int long long
StackMap stack:
lload 12
ldc 1000000
ldiv
lstore 14
start local 14 50: aload 3
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
lload 14
ldc 4
ladd
l2f
fmul
f2l
lstore 16
start local 16 51: new javax.sound.sampled.AudioInputStream
dup
aload 3
aload 3
invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
lload 16
invokespecial javax.sound.sampled.AudioInputStream.<init>:(Ljava/io/InputStream;Ljavax/sound/sampled/AudioFormat;J)V
astore 3
52: aload 3
areturn
end local 16 end local 14 end local 12 end local 10 end local 9 end local 8 end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 53 0 this Lcom/sun/media/sound/SoftMidiAudioFileReader;
0 53 1 seq Ljavax/sound/midi/Sequence;
1 53 2 synth Lcom/sun/media/sound/AudioSynthesizer;
2 4 3 stream Ljavax/sound/sampled/AudioInputStream;
6 53 3 stream Ljavax/sound/sampled/AudioInputStream;
3 4 4 recv Ljavax/sound/midi/Receiver;
6 53 4 recv Ljavax/sound/midi/Receiver;
5 6 5 e Ljavax/sound/midi/MidiUnavailableException;
7 53 5 divtype F
8 53 6 tracks [Ljavax/sound/midi/Track;
9 53 7 trackspos [I
10 53 8 mpq I
11 53 9 seqres I
12 53 10 lasttick J
13 53 12 curtime J
14 48 14 selevent Ljavax/sound/midi/MidiEvent;
15 48 15 seltrack I
16 26 16 i I
18 24 17 trackpos I
19 24 18 track Ljavax/sound/midi/Track;
21 24 19 event Ljavax/sound/midi/MidiEvent;
30 48 16 tick J
35 48 18 msg Ljavax/sound/midi/MidiMessage;
39 46 19 data [B
50 53 14 totallen J
51 53 16 len J
Exception table:
from to target type
1 3 4 Class javax.sound.midi.MidiUnavailableException
Exceptions:
throws javax.sound.midi.InvalidMidiDataException
MethodParameters:
Name Flags
seq final
public javax.sound.sampled.AudioInputStream getAudioInputStream(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Ljavax/sound/sampled/AudioInputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
sipush 200
invokevirtual java.io.InputStream.mark:(I)V
1: aload 0
aload 1
invokestatic javax.sound.midi.MidiSystem.getSequence:(Ljava/io/InputStream;)Ljavax/sound/midi/Sequence;
invokevirtual com.sun.media.sound.SoftMidiAudioFileReader.getAudioInputStream:(Ljavax/sound/midi/Sequence;)Ljavax/sound/sampled/AudioInputStream;
2: areturn
3: StackMap locals:
StackMap stack: java.lang.Exception
pop
4: aload 1
invokevirtual java.io.InputStream.reset:()V
5: new javax.sound.sampled.UnsupportedAudioFileException
dup
invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Lcom/sun/media/sound/SoftMidiAudioFileReader;
0 6 1 stream Ljava/io/InputStream;
Exception table:
from to target type
1 2 3 Class javax.sound.midi.InvalidMidiDataException
1 2 3 Class java.io.EOFException
Exceptions:
throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
MethodParameters:
Name Flags
stream final
com.sun.media.sound.StandardFileFormat getAudioFileFormatImpl(java.io.InputStream);
descriptor: (Ljava/io/InputStream;)Lcom/sun/media/sound/StandardFileFormat;
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokestatic javax.sound.midi.MidiSystem.getSequence:(Ljava/io/InputStream;)Ljavax/sound/midi/Sequence;
invokestatic com.sun.media.sound.SoftMidiAudioFileReader.getAudioFileFormat:(Ljavax/sound/midi/Sequence;)Lcom/sun/media/sound/StandardFileFormat;
1: areturn
2: StackMap locals:
StackMap stack: javax.sound.midi.InvalidMidiDataException
pop
3: new javax.sound.sampled.UnsupportedAudioFileException
dup
invokespecial javax.sound.sampled.UnsupportedAudioFileException.<init>:()V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/sound/SoftMidiAudioFileReader;
0 4 1 stream Ljava/io/InputStream;
Exception table:
from to target type
0 1 2 Class javax.sound.midi.InvalidMidiDataException
Exceptions:
throws javax.sound.sampled.UnsupportedAudioFileException, java.io.IOException
MethodParameters:
Name Flags
stream final
}
SourceFile: "SoftMidiAudioFileReader.java"
InnerClasses:
public Type = javax.sound.sampled.AudioFileFormat$Type of javax.sound.sampled.AudioFileFormat