class com.sun.media.sound.DirectAudioDevice$DirectDL extends com.sun.media.sound.AbstractDataLine implements com.sun.media.sound.EventDispatcher$LineMonitor
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: com.sun.media.sound.DirectAudioDevice$DirectDL
super_class: com.sun.media.sound.AbstractDataLine
{
protected final int mixerIndex;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected final int deviceID;
descriptor: I
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected long id;
descriptor: J
flags: (0x0004) ACC_PROTECTED
protected int waitTime;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected volatile boolean flushing;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected final boolean isSource;
descriptor: Z
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected volatile long bytePosition;
descriptor: J
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile boolean doIO;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile boolean stoppedWritten;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected volatile boolean drained;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected boolean monitoring;
descriptor: Z
flags: (0x0004) ACC_PROTECTED
protected int softwareConversionSize;
descriptor: I
flags: (0x0004) ACC_PROTECTED
protected javax.sound.sampled.AudioFormat hardwareFormat;
descriptor: Ljavax/sound/sampled/AudioFormat;
flags: (0x0004) ACC_PROTECTED
private final com.sun.media.sound.DirectAudioDevice$DirectDL$Gain gainControl;
descriptor: Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.sun.media.sound.DirectAudioDevice$DirectDL$Mute muteControl;
descriptor: Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.sun.media.sound.DirectAudioDevice$DirectDL$Balance balanceControl;
descriptor: Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final com.sun.media.sound.DirectAudioDevice$DirectDL$Pan panControl;
descriptor: Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Pan;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private float leftGain;
descriptor: F
flags: (0x0002) ACC_PRIVATE
private float rightGain;
descriptor: F
flags: (0x0002) ACC_PRIVATE
protected volatile boolean noService;
descriptor: Z
flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE
protected final java.lang.Object lockNative;
descriptor: Ljava/lang/Object;
flags: (0x0014) ACC_PROTECTED, ACC_FINAL
protected void <init>(javax.sound.sampled.DataLine$Info, com.sun.media.sound.DirectAudioDevice, javax.sound.sampled.AudioFormat, int, int, int, boolean);
descriptor: (Ljavax/sound/sampled/DataLine$Info;Lcom/sun/media/sound/DirectAudioDevice;Ljavax/sound/sampled/AudioFormat;IIIZ)V
flags: (0x0004) ACC_PROTECTED
Code:
stack=6, locals=8, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: aload 0
aload 1
aload 2
aconst_null
aload 3
iload 4
invokespecial com.sun.media.sound.AbstractDataLine.<init>:(Ljavax/sound/sampled/DataLine$Info;Lcom/sun/media/sound/AbstractMixer;[Ljavax/sound/sampled/Control;Ljavax/sound/sampled/AudioFormat;I)V
1: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
2: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
3: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
4: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
5: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
6: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
7: aload 0
new com.sun.media.sound.DirectAudioDevice$DirectDL$Gain
dup
aload 0
invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Gain.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.gainControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
8: aload 0
new com.sun.media.sound.DirectAudioDevice$DirectDL$Mute
dup
aload 0
invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Mute.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.muteControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
9: aload 0
new com.sun.media.sound.DirectAudioDevice$DirectDL$Balance
dup
aload 0
invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Balance.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.balanceControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
10: aload 0
new com.sun.media.sound.DirectAudioDevice$DirectDL$Pan
dup
aload 0
invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Pan.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.panControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Pan;
11: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
12: aload 0
new java.lang.Object
dup
invokespecial java.lang.Object.<init>:()V
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
13: aload 0
iload 5
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.mixerIndex:I
14: aload 0
iload 6
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.deviceID:I
15: aload 0
bipush 10
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
16: aload 0
iload 7
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
17: return
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 18 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
0 18 1 info Ljavax/sound/sampled/DataLine$Info;
0 18 2 mixer Lcom/sun/media/sound/DirectAudioDevice;
0 18 3 format Ljavax/sound/sampled/AudioFormat;
0 18 4 bufferSize I
0 18 5 mixerIndex I
0 18 6 deviceID I
0 18 7 isSource Z
MethodParameters:
Name Flags
info
mixer
format
bufferSize
mixerIndex
deviceID
isSource
void implOpen(javax.sound.sampled.AudioFormat, int);
descriptor: (Ljavax/sound/sampled/AudioFormat;I)V
flags: (0x0000)
Code:
stack=12, locals=6, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokestatic com.sun.media.sound.Toolkit.isFullySpecifiedAudioFormat:(Ljavax/sound/sampled/AudioFormat;)V
1: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifne 3
2: invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
3: StackMap locals:
StackMap stack:
iconst_0
istore 3
start local 3 4: aload 1
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 7
5: iconst_1
istore 3
6: goto 9
7: StackMap locals: int
StackMap stack:
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifeq 9
8: iconst_2
istore 3
9: StackMap locals:
StackMap stack:
iload 2
iconst_m1
if_icmpgt 11
10: aload 1
ldc 500
invokestatic com.sun.media.sound.Toolkit.millis2bytes:(Ljavax/sound/sampled/AudioFormat;J)J
l2i
istore 2
11: StackMap locals:
StackMap stack:
aconst_null
astore 4
start local 4 12: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.info:Ljavax/sound/sampled/Line$Info;
instanceof com.sun.media.sound.DirectAudioDevice$DirectDLI
ifeq 14
13: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.info:Ljavax/sound/sampled/Line$Info;
checkcast com.sun.media.sound.DirectAudioDevice$DirectDLI
astore 4
14: StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDLI
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifeq 31
15: aload 1
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifne 19
16: aload 1
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
ifne 19
17: aload 0
iconst_0
anewarray javax.sound.sampled.Control
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
18: goto 31
19: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
iconst_2
if_icmpgt 21
20: aload 1
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
bipush 16
if_icmple 23
21: StackMap locals:
StackMap stack:
aload 0
iconst_0
anewarray javax.sound.sampled.Control
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
22: goto 31
23: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
iconst_1
if_icmpne 26
24: aload 0
iconst_2
anewarray javax.sound.sampled.Control
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
25: goto 29
26: StackMap locals:
StackMap stack:
aload 0
iconst_4
anewarray javax.sound.sampled.Control
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
27: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
iconst_2
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.balanceControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
aastore
28: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
iconst_3
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.panControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Pan;
aastore
29: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
iconst_0
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.gainControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
aastore
30: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
iconst_1
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.muteControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
aastore
31: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
32: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
33: aload 4
ifnull 38
aload 4
aload 1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDLI.isFormatSupportedInHardware:(Ljavax/sound/sampled/AudioFormat;)Z
ifne 38
34: aload 1
invokestatic com.sun.media.sound.DirectAudioDevice.getSignOrEndianChangedFormat:(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/AudioFormat;
astore 5
start local 5 35: aload 4
aload 5
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDLI.isFormatSupportedInHardware:(Ljavax/sound/sampled/AudioFormat;)Z
ifeq 38
36: aload 0
aload 5
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
37: aload 0
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
idiv
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
end local 5 38: StackMap locals:
StackMap stack:
iload 2
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
idiv
aload 1
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
imul
istore 2
39: aload 0
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.mixerIndex:I
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.deviceID:I
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
40: iload 3
41: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
42: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
43: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
44: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
45: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
46: getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
47: invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
48: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
49: iload 2
50: invokestatic com.sun.media.sound.DirectAudioDevice.nOpen:(IIZIFIIIZZI)J
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
51: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifne 55
52: new javax.sound.sampled.LineUnavailableException
dup
53: new java.lang.StringBuilder
dup
ldc "line with format "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
ldc " not supported."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
54: invokespecial javax.sound.sampled.LineUnavailableException.<init>:(Ljava/lang/String;)V
athrow
55: StackMap locals:
StackMap stack:
aload 0
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nGetBufferSize:(JZ)I
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
56: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
iconst_1
if_icmpge 58
57: aload 0
iload 2
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
58: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.format:Ljavax/sound/sampled/AudioFormat;
59: aload 0
aload 1
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
i2l
invokestatic com.sun.media.sound.Toolkit.bytes2millis:(Ljavax/sound/sampled/AudioFormat;J)J
l2i
iconst_4
idiv
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
60: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
bipush 10
if_icmpge 63
61: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
62: goto 65
63: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
sipush 1000
if_icmple 65
64: aload 0
sipush 1000
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
65: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
66: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
67: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
68: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.calcVolume:()V
69: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 70 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
0 70 1 format Ljavax/sound/sampled/AudioFormat;
0 70 2 bufferSize I
4 70 3 encoding I
12 70 4 ddli Lcom/sun/media/sound/DirectAudioDevice$DirectDLI;
35 38 5 newFormat Ljavax/sound/sampled/AudioFormat;
Exceptions:
throws javax.sound.sampled.LineUnavailableException
MethodParameters:
Name Flags
format
bufferSize
void implStart();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifne 2
1: invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nStart:(JZ)V
4: aload 1
monitorexit
5: goto 8
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.requiresServicing:()Z
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
9: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
ifeq 11
10: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
aload 0
invokevirtual com.sun.media.sound.EventDispatcher.addLineMonitor:(Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
12: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
13: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifeq 16
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
ifeq 16
14: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
15: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
16: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
17: goto 20
StackMap locals:
StackMap stack: java.lang.Throwable
18: aload 1
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 21 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
Exception table:
from to target type
3 5 6 any
6 7 6 any
12 17 18 any
18 19 18 any
void implStop();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifne 2
1: invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
ifeq 5
3: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
aload 0
invokevirtual com.sun.media.sound.EventDispatcher.removeLineMonitor:(Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
4: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
5: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 1
monitorenter
6: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nStop:(JZ)V
7: aload 1
monitorexit
8: goto 11
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
12: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
13: aload 0
iconst_0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
14: aload 0
iconst_0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
15: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
16: aload 1
monitorexit
17: goto 20
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
StackMap stack: java.lang.Throwable
18: aload 1
monitorexit
19: athrow
20: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
21: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
Exception table:
from to target type
6 8 9 any
9 10 9 any
12 17 18 any
18 19 18 any
void implClose();
descriptor: ()V
flags: (0x0000)
Code:
stack=3, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifne 2
1: invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
ifeq 5
3: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
aload 0
invokevirtual com.sun.media.sound.EventDispatcher.removeLineMonitor:(Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
4: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
5: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
6: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lstore 1
start local 1 7: aload 0
lconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
8: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 3
monitorenter
9: lload 1
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nClose:(JZ)V
10: aload 3
monitorexit
11: goto 14
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL long java.lang.Object
StackMap stack: java.lang.Throwable
12: aload 3
monitorexit
13: athrow
14: StackMap locals:
StackMap stack:
aload 0
lconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
15: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
16: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
7 17 1 oldID J
Exception table:
from to target type
9 11 12 any
12 13 12 any
public int available();
descriptor: ()I
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifne 2
1: iconst_0
ireturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nAvailable:(JZ)I
istore 1
start local 1 4: aload 2
monitorexit
5: goto 8
end local 1 StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL top java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 2
monitorexit
7: athrow
start local 1 8: StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int
StackMap stack:
iload 1
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
4 6 1 a I
8 9 1 a I
Exception table:
from to target type
3 5 6 any
6 7 6 any
public void drain();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=7, args_size=1
start local 0 0: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
1: iconst_0
istore 1
start local 1 2: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getLongFramePosition:()J
lstore 2
start local 2 3: iconst_0
istore 4
start local 4 4: goto 33
5: StackMap locals: int long int
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 5
monitorenter
6: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifeq 7
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 7
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nIsStillDraining:(JZ)Z
ifne 9
7: StackMap locals: java.lang.Object
StackMap stack:
aload 5
monitorexit
8: goto 34
9: StackMap locals:
StackMap stack:
aload 5
monitorexit
10: goto 13
StackMap locals:
StackMap stack: java.lang.Throwable
11: aload 5
monitorexit
12: athrow
13: StackMap locals:
StackMap stack:
iload 1
iconst_5
irem
iconst_4
if_icmpne 24
14: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getLongFramePosition:()J
lstore 5
start local 5 15: iload 4
lload 5
lload 2
lcmp
ifeq 16
iconst_1
goto 17
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int long
StackMap stack: int
16: iconst_0
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int long
StackMap stack: int int
17: ior
istore 4
18: iload 1
bipush 50
irem
bipush 45
if_icmple 24
19: iload 4
ifne 22
20: getstatic com.sun.media.sound.Printer.err:Z
ifeq 34
ldc "Native reports isDraining, but frame position does not increase!"
invokestatic com.sun.media.sound.Printer.err:(Ljava/lang/String;)V
21: goto 34
22: StackMap locals:
StackMap stack:
iconst_0
istore 4
23: lload 5
lstore 2
end local 5 24: StackMap locals:
StackMap stack:
iinc 1 1
25: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
26: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
ldc 10
invokevirtual java.lang.Object.wait:(J)V
27: goto 29
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int java.lang.Object
StackMap stack: java.lang.InterruptedException
28: pop
29: StackMap locals:
StackMap stack:
aload 5
monitorexit
30: goto 33
StackMap locals:
StackMap stack: java.lang.Throwable
31: aload 5
monitorexit
32: athrow
33: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
ifeq 5
34: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 36
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifeq 36
35: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
36: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
37: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 38 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
2 38 1 counter I
3 38 2 startPos J
4 38 4 posChanged Z
15 24 5 thisFramePos J
Exception table:
from to target type
6 8 11 any
9 10 11 any
11 12 11 any
26 27 28 Class java.lang.InterruptedException
26 30 31 any
31 32 31 any
public void flush();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifeq 16
1: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
2: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 1
monitorenter
3: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
4: aload 1
monitorexit
5: goto 8
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
StackMap stack: java.lang.Throwable
6: aload 1
monitorexit
7: athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 1
monitorenter
9: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifeq 11
10: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nFlush:(JZ)V
11: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
12: goto 15
StackMap locals:
StackMap stack: java.lang.Throwable
13: aload 1
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
16: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 17 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
Exception table:
from to target type
3 5 6 any
6 7 6 any
9 12 13 any
13 14 13 any
public long getLongFramePosition();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 3
monitorenter
1: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
invokestatic com.sun.media.sound.DirectAudioDevice.nGetBytePosition:(JZJ)J
lstore 1
start local 1 2: aload 3
monitorexit
3: goto 6
end local 1 StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL top top java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 3
monitorexit
5: athrow
start local 1 6: StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL long
StackMap stack:
lload 1
lconst_0
lcmp
ifge 8
7: lconst_0
lstore 1
8: StackMap locals:
StackMap stack:
lload 1
aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
i2l
ldiv
lreturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 9 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
2 4 1 pos J
6 9 1 pos J
Exception table:
from to target type
1 3 4 any
4 5 4 any
public int write(byte[], int, int);
descriptor: ([BII)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=7, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
1: iload 3
ifne 3
2: iconst_0
ireturn
3: StackMap locals:
StackMap stack:
iload 3
ifge 5
4: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "illegal len: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
5: StackMap locals:
StackMap stack:
iload 3
aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
irem
ifeq 10
6: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "illegal request to write non-integral number of frames ("
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
7: iload 3
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes, "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
8: ldc "frameSize = "
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
ldc " bytes)"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
9: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
10: StackMap locals:
StackMap stack:
iload 2
ifge 12
11: new java.lang.ArrayIndexOutOfBoundsException
dup
iload 2
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
athrow
12: StackMap locals:
StackMap stack:
iload 2
i2l
iload 3
i2l
ladd
aload 1
arraylength
i2l
lcmp
ifle 14
13: new java.lang.ArrayIndexOutOfBoundsException
dup
aload 1
arraylength
invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
athrow
14: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 4
monitorenter
15: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.isActive:()Z
ifne 18
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 18
16: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
17: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
18: StackMap locals: java.lang.Object
StackMap stack:
aload 4
monitorexit
19: goto 22
StackMap locals:
StackMap stack: java.lang.Throwable
20: aload 4
monitorexit
21: athrow
22: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 23: goto 51
24: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 6
monitorenter
25: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 1
iload 2
iload 3
26: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
27: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
28: invokestatic com.sun.media.sound.DirectAudioDevice.nWrite:(J[BIIIFF)I
istore 5
start local 5 29: iload 5
ifge 32
30: aload 6
monitorexit
31: goto 52
32: StackMap locals: int java.lang.Object
StackMap stack:
aload 0
dup
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
iload 5
i2l
ladd
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
33: iload 5
ifle 35
34: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
35: StackMap locals:
StackMap stack:
aload 6
monitorexit
36: goto 39
end local 5 StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int top java.lang.Object
StackMap stack: java.lang.Throwable
37: aload 6
monitorexit
38: athrow
start local 5 39: StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int int
StackMap stack:
iload 3
iload 5
isub
istore 3
40: iload 4
iload 5
iadd
istore 4
41: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 52
iload 3
ifle 52
42: iload 2
iload 5
iadd
istore 2
43: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 6
monitorenter
44: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
i2l
invokevirtual java.lang.Object.wait:(J)V
45: goto 47
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int int java.lang.Object
StackMap stack: java.lang.InterruptedException
46: pop
47: StackMap locals:
StackMap stack:
aload 6
monitorexit
48: goto 51
StackMap locals:
StackMap stack: java.lang.Throwable
49: aload 6
monitorexit
50: athrow
end local 5 51: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
ifeq 24
52: StackMap locals:
StackMap stack:
iload 4
ifle 54
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifne 54
53: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
54: StackMap locals:
StackMap stack:
iload 4
ireturn
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 55 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
0 55 1 b [B
0 55 2 off I
0 55 3 len I
23 55 4 written I
29 37 5 thisWritten I
39 51 5 thisWritten I
Exception table:
from to target type
15 19 20 any
20 21 20 any
25 31 37 any
32 36 37 any
37 38 37 any
44 45 46 Class java.lang.InterruptedException
44 48 49 any
49 50 49 any
MethodParameters:
Name Flags
b
off
len
protected boolean requiresServicing();
descriptor: ()Z
flags: (0x0004) ACC_PROTECTED
Code:
stack=3, locals=1, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nRequiresServicing:(JZ)Z
ireturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
public void checkLine();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
ifeq 7
2: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 7
3: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifeq 7
4: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
ifne 7
5: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
ifne 7
6: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
invokestatic com.sun.media.sound.DirectAudioDevice.nService:(JZ)V
7: StackMap locals: java.lang.Object
StackMap stack:
aload 1
monitorexit
8: goto 11
StackMap locals:
StackMap stack: java.lang.Throwable
9: aload 1
monitorexit
10: athrow
11: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
Exception table:
from to target type
1 8 9 any
9 10 9 any
private void calcVolume();
descriptor: ()V
flags: (0x0002) ACC_PRIVATE
Code:
stack=4, locals=3, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
ifnonnull 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.muteControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL$Mute.getValue:()Z
ifeq 6
3: aload 0
fconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
4: aload 0
fconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
5: return
6: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.gainControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL$Gain.getLinearGain:()F
fstore 1
start local 1 7: aload 0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
iconst_1
if_icmpne 11
8: aload 0
fload 1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
9: aload 0
fload 1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
10: goto 18
11: StackMap locals: float
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.balanceControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL$Balance.getValue:()F
fstore 2
start local 2 12: fload 2
fconst_0
fcmpg
ifge 16
13: aload 0
fload 1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
14: aload 0
fload 1
fload 2
fconst_1
fadd
fmul
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
15: goto 18
16: StackMap locals: float
StackMap stack:
aload 0
fload 1
fconst_1
fload 2
fsub
fmul
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
17: aload 0
fload 1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
end local 2 18: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 19 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
7 19 1 gain F
12 18 2 bal F
}
SourceFile: "DirectAudioDevice.java"
NestHost: com.sun.media.sound.DirectAudioDevice
InnerClasses:
private DirectDL = com.sun.media.sound.DirectAudioDevice$DirectDL of com.sun.media.sound.DirectAudioDevice
private final Balance = com.sun.media.sound.DirectAudioDevice$DirectDL$Balance of com.sun.media.sound.DirectAudioDevice$DirectDL
protected final Gain = com.sun.media.sound.DirectAudioDevice$DirectDL$Gain of com.sun.media.sound.DirectAudioDevice$DirectDL
private final Mute = com.sun.media.sound.DirectAudioDevice$DirectDL$Mute of com.sun.media.sound.DirectAudioDevice$DirectDL
private final Pan = com.sun.media.sound.DirectAudioDevice$DirectDL$Pan of com.sun.media.sound.DirectAudioDevice$DirectDL
private final DirectDLI = com.sun.media.sound.DirectAudioDevice$DirectDLI of com.sun.media.sound.DirectAudioDevice
abstract LineMonitor = com.sun.media.sound.EventDispatcher$LineMonitor of com.sun.media.sound.EventDispatcher
public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat
public Info = javax.sound.sampled.DataLine$Info of javax.sound.sampled.DataLine