public final class com.sun.media.sound.SoftReceiver implements com.sun.media.sound.MidiDeviceReceiver
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.SoftReceiver
super_class: java.lang.Object
{
boolean open;
descriptor: Z
flags: (0x0000)
private final java.lang.Object control_mutex;
descriptor: Ljava/lang/Object;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.sun.media.sound.SoftSynthesizer synth;
descriptor: Lcom/sun/media/sound/SoftSynthesizer;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
java.util.TreeMap<java.lang.Long, java.lang.Object> midimessages;
descriptor: Ljava/util/TreeMap;
flags: (0x0000)
Signature: Ljava/util/TreeMap<Ljava/lang/Long;Ljava/lang/Object;>;
com.sun.media.sound.SoftMainMixer mainmixer;
descriptor: Lcom/sun/media/sound/SoftMainMixer;
flags: (0x0000)
public void <init>(com.sun.media.sound.SoftSynthesizer);
descriptor: (Lcom/sun/media/sound/SoftSynthesizer;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
iconst_1
putfield com.sun.media.sound.SoftReceiver.open:Z
2: aload 0
aload 1
getfield com.sun.media.sound.SoftSynthesizer.control_mutex:Ljava/lang/Object;
putfield com.sun.media.sound.SoftReceiver.control_mutex:Ljava/lang/Object;
3: aload 0
aload 1
putfield com.sun.media.sound.SoftReceiver.synth:Lcom/sun/media/sound/SoftSynthesizer;
4: aload 0
aload 1
invokevirtual com.sun.media.sound.SoftSynthesizer.getMainMixer:()Lcom/sun/media/sound/SoftMainMixer;
putfield com.sun.media.sound.SoftReceiver.mainmixer:Lcom/sun/media/sound/SoftMainMixer;
5: aload 0
getfield com.sun.media.sound.SoftReceiver.mainmixer:Lcom/sun/media/sound/SoftMainMixer;
ifnull 7
6: aload 0
aload 0
getfield com.sun.media.sound.SoftReceiver.mainmixer:Lcom/sun/media/sound/SoftMainMixer;
getfield com.sun.media.sound.SoftMainMixer.midimessages:Ljava/util/TreeMap;
putfield com.sun.media.sound.SoftReceiver.midimessages:Ljava/util/TreeMap;
7: StackMap locals: com.sun.media.sound.SoftReceiver com.sun.media.sound.SoftSynthesizer
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/media/sound/SoftReceiver;
0 8 1 synth Lcom/sun/media/sound/SoftSynthesizer;
MethodParameters:
Name Flags
synth
public javax.sound.midi.MidiDevice getMidiDevice();
descriptor: ()Ljavax/sound/midi/MidiDevice;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftReceiver.synth:Lcom/sun/media/sound/SoftSynthesizer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftReceiver;
public void send(javax.sound.midi.MidiMessage, long);
descriptor: (Ljavax/sound/midi/MidiMessage;J)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.media.sound.SoftReceiver.control_mutex:Ljava/lang/Object;
dup
astore 4
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftReceiver.open:Z
ifne 3
2: new java.lang.IllegalStateException
dup
ldc "Receiver is not open"
invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
athrow
3: StackMap locals: java.lang.Object
StackMap stack:
aload 4
monitorexit
4: goto 7
StackMap locals:
StackMap stack: java.lang.Throwable
5: aload 4
monitorexit
6: athrow
7: StackMap locals:
StackMap stack:
lload 2
ldc -1
lcmp
ifeq 22
8: aload 0
getfield com.sun.media.sound.SoftReceiver.control_mutex:Ljava/lang/Object;
dup
astore 4
monitorenter
9: aload 0
getfield com.sun.media.sound.SoftReceiver.mainmixer:Lcom/sun/media/sound/SoftMainMixer;
invokevirtual com.sun.media.sound.SoftMainMixer.activity:()V
10: goto 12
11: StackMap locals: java.lang.Object
StackMap stack:
lload 2
lconst_1
ladd
lstore 2
12: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftReceiver.midimessages:Ljava/util/TreeMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
invokevirtual java.util.TreeMap.get:(Ljava/lang/Object;)Ljava/lang/Object;
ifnonnull 11
13: aload 1
instanceof javax.sound.midi.ShortMessage
ifeq 17
14: aload 1
checkcast javax.sound.midi.ShortMessage
invokevirtual javax.sound.midi.ShortMessage.getChannel:()I
bipush 15
if_icmple 17
15: aload 0
getfield com.sun.media.sound.SoftReceiver.midimessages:Ljava/util/TreeMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 1
invokevirtual javax.sound.midi.MidiMessage.clone:()Ljava/lang/Object;
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
16: goto 18
17: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftReceiver.midimessages:Ljava/util/TreeMap;
lload 2
invokestatic java.lang.Long.valueOf:(J)Ljava/lang/Long;
aload 1
invokevirtual javax.sound.midi.MidiMessage.getMessage:()[B
invokevirtual java.util.TreeMap.put:(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
pop
18: StackMap locals:
StackMap stack:
aload 4
monitorexit
19: goto 23
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 4
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftReceiver.mainmixer:Lcom/sun/media/sound/SoftMainMixer;
aload 1
invokevirtual com.sun.media.sound.SoftMainMixer.processMessage:(Ljavax/sound/midi/MidiMessage;)V
23: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 this Lcom/sun/media/sound/SoftReceiver;
0 24 1 message Ljavax/sound/midi/MidiMessage;
0 24 2 timeStamp J
Exception table:
from to target type
1 4 5 any
5 6 5 any
9 19 20 any
20 21 20 any
MethodParameters:
Name Flags
message
timeStamp
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftReceiver.control_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
iconst_0
putfield com.sun.media.sound.SoftReceiver.open:Z
2: aload 1
monitorexit
3: goto 6
StackMap locals: com.sun.media.sound.SoftReceiver java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 1
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftReceiver.synth:Lcom/sun/media/sound/SoftSynthesizer;
aload 0
invokevirtual com.sun.media.sound.SoftSynthesizer.removeReceiver:(Ljavax/sound/midi/Receiver;)V
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/media/sound/SoftReceiver;
Exception table:
from to target type
1 3 4 any
4 5 4 any
}
SourceFile: "SoftReceiver.java"