final class com.sun.media.sound.MidiInDevice extends com.sun.media.sound.AbstractMidiDevice implements java.lang.Runnable
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.MidiInDevice
super_class: com.sun.media.sound.AbstractMidiDevice
{
private volatile java.lang.Thread midiInThread;
descriptor: Ljava/lang/Thread;
flags: (0x0042) ACC_PRIVATE, ACC_VOLATILE
void <init>(com.sun.media.sound.AbstractMidiDeviceProvider$Info);
descriptor: (Lcom/sun/media/sound/AbstractMidiDeviceProvider$Info;)V
flags: (0x0000)
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokespecial com.sun.media.sound.AbstractMidiDevice.<init>:(Ljavax/sound/midi/MidiDevice$Info;)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/sun/media/sound/MidiInDevice;
0 2 1 info Lcom/sun/media/sound/AbstractMidiDeviceProvider$Info;
MethodParameters:
Name Flags
info
protected synchronized void implOpen();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=6, locals=2, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.media.sound.MidiInDevice.getDeviceInfo:()Ljavax/sound/midi/MidiDevice$Info;
checkcast com.sun.media.sound.MidiInDeviceProvider$MidiInDeviceInfo
invokevirtual com.sun.media.sound.MidiInDeviceProvider$MidiInDeviceInfo.getIndex:()I
istore 1
start local 1 1: aload 0
aload 0
iload 1
invokevirtual com.sun.media.sound.MidiInDevice.nOpen:(I)J
putfield com.sun.media.sound.MidiInDevice.id:J
2: aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
lconst_0
lcmp
ifne 4
3: new javax.sound.midi.MidiUnavailableException
dup
ldc "Unable to open native device"
invokespecial javax.sound.midi.MidiUnavailableException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.media.sound.MidiInDevice.midiInThread:Ljava/lang/Thread;
ifnonnull 11
5: aload 0
aload 0
6: ldc "Java Sound MidiInDevice Thread"
7: iconst_0
8: iconst_m1
9: iconst_1
10: invokestatic com.sun.media.sound.JSSecurityManager.createThread:(Ljava/lang/Runnable;Ljava/lang/String;ZIZ)Ljava/lang/Thread;
putfield com.sun.media.sound.MidiInDevice.midiInThread:Ljava/lang/Thread;
11: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
invokevirtual com.sun.media.sound.MidiInDevice.nStart:(J)V
12: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 13 0 this Lcom/sun/media/sound/MidiInDevice;
1 13 1 index I
Exceptions:
throws javax.sound.midi.MidiUnavailableException
protected synchronized void implClose();
descriptor: ()V
flags: (0x0024) ACC_PROTECTED, ACC_SYNCHRONIZED
Code:
stack=3, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
lstore 1
start local 1 1: aload 0
lconst_0
putfield com.sun.media.sound.MidiInDevice.id:J
2: aload 0
invokespecial com.sun.media.sound.AbstractMidiDevice.implClose:()V
3: aload 0
lload 1
invokevirtual com.sun.media.sound.MidiInDevice.nStop:(J)V
4: aload 0
getfield com.sun.media.sound.MidiInDevice.midiInThread:Ljava/lang/Thread;
ifnull 8
5: aload 0
getfield com.sun.media.sound.MidiInDevice.midiInThread:Ljava/lang/Thread;
ldc 1000
invokevirtual java.lang.Thread.join:(J)V
6: goto 8
StackMap locals: com.sun.media.sound.MidiInDevice long
StackMap stack: java.lang.InterruptedException
7: pop
8: StackMap locals:
StackMap stack:
aload 0
lload 1
invokevirtual com.sun.media.sound.MidiInDevice.nClose:(J)V
9: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 10 0 this Lcom/sun/media/sound/MidiInDevice;
1 10 1 oldId J
Exception table:
from to target type
5 6 7 Class java.lang.InterruptedException
public long getMicrosecondPosition();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=1
start local 0 0: ldc -1
lstore 1
start local 1 1: aload 0
invokevirtual com.sun.media.sound.MidiInDevice.isOpen:()Z
ifeq 3
2: aload 0
aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
invokevirtual com.sun.media.sound.MidiInDevice.nGetTimeStamp:(J)J
lstore 1
3: StackMap locals: long
StackMap stack:
lload 1
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/sound/MidiInDevice;
1 4 1 timestamp J
protected boolean hasTransmitters();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_1
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/MidiInDevice;
protected javax.sound.midi.Transmitter createTransmitter();
descriptor: ()Ljavax/sound/midi/Transmitter;
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: new com.sun.media.sound.MidiInDevice$MidiInTransmitter
dup
aload 0
invokespecial com.sun.media.sound.MidiInDevice$MidiInTransmitter.<init>:(Lcom/sun/media/sound/MidiInDevice;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/MidiInDevice;
public void run();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=1, args_size=1
start local 0 0: goto 6
1: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
invokevirtual com.sun.media.sound.MidiInDevice.nGetMessages:(J)V
2: aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
lconst_0
lcmp
ifeq 6
3: lconst_1
invokestatic java.lang.Thread.sleep:(J)V
4: goto 6
StackMap locals:
StackMap stack: java.lang.InterruptedException
5: pop
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
lconst_0
lcmp
ifne 1
7: aload 0
aconst_null
putfield com.sun.media.sound.MidiInDevice.midiInThread:Ljava/lang/Thread;
8: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/media/sound/MidiInDevice;
Exception table:
from to target type
3 4 5 Class java.lang.InterruptedException
void callbackShortMessage(int, long);
descriptor: (IJ)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: iload 1
ifeq 1
aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
lconst_0
lcmp
ifne 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.media.sound.MidiInDevice.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
iload 1
lload 2
invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:(IJ)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/sound/MidiInDevice;
0 4 1 packedMsg I
0 4 2 timeStamp J
MethodParameters:
Name Flags
packedMsg
timeStamp
void callbackLongMessage(byte[], long);
descriptor: ([BJ)V
flags: (0x0000)
Code:
stack=4, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield com.sun.media.sound.MidiInDevice.id:J
lconst_0
lcmp
ifeq 1
aload 1
ifnonnull 2
1: StackMap locals:
StackMap stack:
return
2: StackMap locals:
StackMap stack:
aload 0
invokevirtual com.sun.media.sound.MidiInDevice.getTransmitterList:()Lcom/sun/media/sound/AbstractMidiDevice$TransmitterList;
aload 1
lload 2
invokevirtual com.sun.media.sound.AbstractMidiDevice$TransmitterList.sendMessage:([BJ)V
3: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lcom/sun/media/sound/MidiInDevice;
0 4 1 data [B
0 4 2 timeStamp J
MethodParameters:
Name Flags
data
timeStamp
private native long nOpen(int);
descriptor: (I)J
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws javax.sound.midi.MidiUnavailableException
MethodParameters:
Name Flags
index
private native void nClose(long);
descriptor: (J)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
id
private native void nStart(long);
descriptor: (J)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
Exceptions:
throws javax.sound.midi.MidiUnavailableException
MethodParameters:
Name Flags
id
private native void nStop(long);
descriptor: (J)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
id
private native long nGetTimeStamp(long);
descriptor: (J)J
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
id
private native void nGetMessages(long);
descriptor: (J)V
flags: (0x0102) ACC_PRIVATE, ACC_NATIVE
MethodParameters:
Name Flags
id
}
SourceFile: "MidiInDevice.java"
NestMembers:
com.sun.media.sound.MidiInDevice$MidiInTransmitter
InnerClasses:
final TransmitterList = com.sun.media.sound.AbstractMidiDevice$TransmitterList of com.sun.media.sound.AbstractMidiDevice
Info = com.sun.media.sound.AbstractMidiDeviceProvider$Info of com.sun.media.sound.AbstractMidiDeviceProvider
private final MidiInTransmitter = com.sun.media.sound.MidiInDevice$MidiInTransmitter of com.sun.media.sound.MidiInDevice
final MidiInDeviceInfo = com.sun.media.sound.MidiInDeviceProvider$MidiInDeviceInfo of com.sun.media.sound.MidiInDeviceProvider
public Info = javax.sound.midi.MidiDevice$Info of javax.sound.midi.MidiDevice