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
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
12: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
ifeq 15
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
ifeq 15
13: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
14: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
15: StackMap locals:
StackMap stack:
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
Exception table:
from to target type
3 5 6 any
6 7 6 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
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
invokevirtual java.lang.Object.notifyAll:()V
14: aload 1
monitorexit
15: goto 18
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
StackMap stack: java.lang.Throwable
16: aload 1
monitorexit
17: athrow
18: StackMap locals:
StackMap stack:
aload 0
iconst_0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
19: aload 0
iconst_0
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
20: 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 15 16 any
16 17 16 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 32
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 33
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 23
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 23
19: iload 4
ifne 21
20: goto 33
21: StackMap locals:
StackMap stack:
iconst_0
istore 4
22: lload 5
lstore 2
end local 5 23: StackMap locals:
StackMap stack:
iinc 1 1
24: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 5
monitorenter
25: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
ldc 10
invokevirtual java.lang.Object.wait:(J)V
26: goto 28
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int java.lang.Object
StackMap stack: java.lang.InterruptedException
27: pop
28: StackMap locals:
StackMap stack:
aload 5
monitorexit
29: goto 32
StackMap locals:
StackMap stack: java.lang.Throwable
30: aload 5
monitorexit
31: athrow
32: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
ifeq 5
33: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 35
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
lconst_0
lcmp
ifeq 35
34: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
35: StackMap locals:
StackMap stack:
aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
36: return
end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
2 37 1 counter I
3 37 2 startPos J
4 37 4 posChanged Z
15 23 5 thisFramePos J
Exception table:
from to target type
6 8 11 any
9 10 11 any
11 12 11 any
25 26 27 Class java.lang.InterruptedException
25 29 30 any
30 31 30 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
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.isActive:()Z
ifne 17
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 17
15: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
16: aload 0
iconst_1
invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
17: StackMap locals:
StackMap stack:
iconst_0
istore 4
start local 4 18: goto 46
19: StackMap locals: int
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
dup
astore 6
monitorenter
20: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
aload 1
iload 2
iload 3
21: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
22: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
23: invokestatic com.sun.media.sound.DirectAudioDevice.nWrite:(J[BIIIFF)I
istore 5
start local 5 24: iload 5
ifge 27
25: aload 6
monitorexit
26: goto 47
27: 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
28: iload 5
ifle 30
29: aload 0
iconst_0
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
30: StackMap locals:
StackMap stack:
aload 6
monitorexit
31: goto 34
end local 5 StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int top java.lang.Object
StackMap stack: java.lang.Throwable
32: aload 6
monitorexit
33: athrow
start local 5 34: StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int int
StackMap stack:
iload 3
iload 5
isub
istore 3
35: iload 4
iload 5
iadd
istore 4
36: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifeq 47
iload 3
ifle 47
37: iload 2
iload 5
iadd
istore 2
38: aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
dup
astore 6
monitorenter
39: 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
40: goto 42
StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int int java.lang.Object
StackMap stack: java.lang.InterruptedException
41: pop
42: StackMap locals:
StackMap stack:
aload 6
monitorexit
43: goto 46
StackMap locals:
StackMap stack: java.lang.Throwable
44: aload 6
monitorexit
45: athrow
end local 5 46: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
ifeq 19
47: StackMap locals:
StackMap stack:
iload 4
ifle 49
aload 0
getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
ifne 49
48: aload 0
iconst_1
putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
49: 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 50 0 this Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
0 50 1 b [B
0 50 2 off I
0 50 3 len I
18 50 4 written I
24 32 5 thisWritten I
34 46 5 thisWritten I
Exception table:
from to target type
20 26 32 any
27 31 32 any
32 33 32 any
39 40 41 Class java.lang.InterruptedException
39 43 44 any
44 45 44 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