final class com.sun.media.sound.RealTimeSequencer$SequencerReceiver extends com.sun.media.sound.AbstractMidiDevice$AbstractReceiver
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.RealTimeSequencer$SequencerReceiver
super_class: com.sun.media.sound.AbstractMidiDevice$AbstractReceiver
{
final com.sun.media.sound.RealTimeSequencer this$0;
descriptor: Lcom/sun/media/sound/RealTimeSequencer;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
void <init>(com.sun.media.sound.RealTimeSequencer);
descriptor: (Lcom/sun/media/sound/RealTimeSequencer;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 // com.sun.media.sound.RealTimeSequencer$SequencerReceiver this
0: .line 966
aload 0 /* this */
aload 1
putfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
aload 0 /* this */
aload 1
invokespecial com.sun.media.sound.AbstractMidiDevice$AbstractReceiver.<init>:(Lcom/sun/media/sound/AbstractMidiDevice;)V
return
end local 0 // com.sun.media.sound.RealTimeSequencer$SequencerReceiver this
LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/RealTimeSequencer$SequencerReceiver;
MethodParameters:
Name Flags
this$0 final
void implSend(javax.sound.midi.MidiMessage, long);
descriptor: (Ljavax/sound/midi/MidiMessage;J)V
flags: (0x0000)
Code:
stack=5, locals=8, args_size=3
start local 0 // com.sun.media.sound.RealTimeSequencer$SequencerReceiver this
start local 1 // javax.sound.midi.MidiMessage message
start local 2 // long timeStamp
0: .line 970
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
getfield com.sun.media.sound.RealTimeSequencer.recording:Z
ifeq 26
1: .line 971
lconst_0
lstore 4 /* tickPos */
start local 4 // long tickPos
2: .line 974
lload 2 /* timeStamp */
lconst_0
lcmp
ifge 5
3: .line 975
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
invokevirtual com.sun.media.sound.RealTimeSequencer.getTickPosition:()J
lstore 4 /* tickPos */
4: .line 976
goto 11
5: .line 977
StackMap locals: long
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
getfield com.sun.media.sound.RealTimeSequencer.tempoCache:Lcom/sun/media/sound/MidiUtils$TempoCache;
dup
astore 6
monitorenter
6: .line 978
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
getfield com.sun.media.sound.RealTimeSequencer.sequence:Ljavax/sound/midi/Sequence;
lload 2 /* timeStamp */
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
getfield com.sun.media.sound.RealTimeSequencer.tempoCache:Lcom/sun/media/sound/MidiUtils$TempoCache;
invokestatic com.sun.media.sound.MidiUtils.microsecond2tick:(Ljavax/sound/midi/Sequence;JLcom/sun/media/sound/MidiUtils$TempoCache;)J
lstore 4 /* tickPos */
7: .line 977
aload 6
monitorexit
8: goto 11
StackMap locals: com.sun.media.sound.RealTimeSequencer$SequencerReceiver javax.sound.midi.MidiMessage long long com.sun.media.sound.MidiUtils$TempoCache
StackMap stack: java.lang.Throwable
9: aload 6
monitorexit
10: athrow
11: .line 983
StackMap locals:
StackMap stack:
aconst_null
astore 6 /* track */
start local 6 // javax.sound.midi.Track track
12: .line 986
aload 1 /* message */
invokevirtual javax.sound.midi.MidiMessage.getLength:()I
iconst_1
if_icmple 26
13: .line 987
aload 1 /* message */
instanceof javax.sound.midi.ShortMessage
ifeq 18
14: .line 988
aload 1 /* message */
checkcast javax.sound.midi.ShortMessage
astore 7 /* sm */
start local 7 // javax.sound.midi.ShortMessage sm
15: .line 990
aload 7 /* sm */
invokevirtual javax.sound.midi.ShortMessage.getStatus:()I
sipush 240
iand
sipush 240
if_icmpeq 19
16: .line 991
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
getfield com.sun.media.sound.RealTimeSequencer.recordingTracks:Ljava/util/List;
aload 7 /* sm */
invokevirtual javax.sound.midi.ShortMessage.getChannel:()I
invokestatic com.sun.media.sound.RealTimeSequencer$RecordingTrack.get:(Ljava/util/List;I)Ljavax/sound/midi/Track;
astore 6 /* track */
end local 7 // javax.sound.midi.ShortMessage sm
17: .line 993
goto 19
18: .line 996
StackMap locals: javax.sound.midi.Track
StackMap stack:
aload 0 /* this */
getfield com.sun.media.sound.RealTimeSequencer$SequencerReceiver.this$0:Lcom/sun/media/sound/RealTimeSequencer;
getfield com.sun.media.sound.RealTimeSequencer.recordingTracks:Ljava/util/List;
iconst_m1
invokestatic com.sun.media.sound.RealTimeSequencer$RecordingTrack.get:(Ljava/util/List;I)Ljavax/sound/midi/Track;
astore 6 /* track */
19: .line 998
StackMap locals:
StackMap stack:
aload 6 /* track */
ifnull 26
20: .line 1000
aload 1 /* message */
instanceof javax.sound.midi.ShortMessage
ifeq 23
21: .line 1001
new com.sun.media.sound.FastShortMessage
dup
aload 1 /* message */
checkcast javax.sound.midi.ShortMessage
invokespecial com.sun.media.sound.FastShortMessage.<init>:(Ljavax/sound/midi/ShortMessage;)V
astore 1 /* message */
22: .line 1002
goto 24
23: .line 1003
StackMap locals:
StackMap stack:
aload 1 /* message */
invokevirtual javax.sound.midi.MidiMessage.clone:()Ljava/lang/Object;
checkcast javax.sound.midi.MidiMessage
astore 1 /* message */
24: .line 1007
StackMap locals:
StackMap stack:
new javax.sound.midi.MidiEvent
dup
aload 1 /* message */
lload 4 /* tickPos */
invokespecial javax.sound.midi.MidiEvent.<init>:(Ljavax/sound/midi/MidiMessage;J)V
astore 7 /* me */
start local 7 // javax.sound.midi.MidiEvent me
25: .line 1008
aload 6 /* track */
aload 7 /* me */
invokevirtual javax.sound.midi.Track.add:(Ljavax/sound/midi/MidiEvent;)Z
pop
end local 7 // javax.sound.midi.MidiEvent me
end local 6 // javax.sound.midi.Track track
end local 4 // long tickPos
26: .line 1012
StackMap locals:
StackMap stack:
return
end local 2 // long timeStamp
end local 1 // javax.sound.midi.MidiMessage message
end local 0 // com.sun.media.sound.RealTimeSequencer$SequencerReceiver this
LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lcom/sun/media/sound/RealTimeSequencer$SequencerReceiver;
0 27 1 message Ljavax/sound/midi/MidiMessage;
0 27 2 timeStamp J
2 26 4 tickPos J
12 26 6 track Ljavax/sound/midi/Track;
15 17 7 sm Ljavax/sound/midi/ShortMessage;
25 26 7 me Ljavax/sound/midi/MidiEvent;
Exception table:
from to target type
6 8 9 any
9 10 9 any
MethodParameters:
Name Flags
message
timeStamp
}
SourceFile: "RealTimeSequencer.java"
NestHost: com.sun.media.sound.RealTimeSequencer
InnerClasses:
abstract AbstractReceiver = com.sun.media.sound.AbstractMidiDevice$AbstractReceiver of com.sun.media.sound.AbstractMidiDevice
public final TempoCache = com.sun.media.sound.MidiUtils$TempoCache of com.sun.media.sound.MidiUtils
RecordingTrack = com.sun.media.sound.RealTimeSequencer$RecordingTrack of com.sun.media.sound.RealTimeSequencer
final SequencerReceiver = com.sun.media.sound.RealTimeSequencer$SequencerReceiver of com.sun.media.sound.RealTimeSequencer