public final class com.sun.media.sound.SoftMixingMixer implements javax.sound.sampled.Mixer
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: com.sun.media.sound.SoftMixingMixer
super_class: java.lang.Object
{
static final java.lang.String INFO_NAME;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "Gervill Sound Mixer"
static final java.lang.String INFO_VENDOR;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "OpenJDK Proposal"
static final java.lang.String INFO_DESCRIPTION;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "Software Sound Mixer"
static final java.lang.String INFO_VERSION;
descriptor: Ljava/lang/String;
flags: (0x0018) ACC_STATIC, ACC_FINAL
ConstantValue: "1.0"
static final javax.sound.sampled.Mixer$Info info;
descriptor: Ljavax/sound/sampled/Mixer$Info;
flags: (0x0018) ACC_STATIC, ACC_FINAL
final java.lang.Object control_mutex;
descriptor: Ljava/lang/Object;
flags: (0x0010) ACC_FINAL
boolean implicitOpen;
descriptor: Z
flags: (0x0000)
private boolean open;
descriptor: Z
flags: (0x0002) ACC_PRIVATE
private com.sun.media.sound.SoftMixingMainMixer mainmixer;
descriptor: Lcom/sun/media/sound/SoftMixingMainMixer;
flags: (0x0002) ACC_PRIVATE
private javax.sound.sampled.AudioFormat format;
descriptor: Ljavax/sound/sampled/AudioFormat;
flags: (0x0002) ACC_PRIVATE
private javax.sound.sampled.SourceDataLine sourceDataLine;
descriptor: Ljavax/sound/sampled/SourceDataLine;
flags: (0x0002) ACC_PRIVATE
private com.sun.media.sound.SoftAudioPusher pusher;
descriptor: Lcom/sun/media/sound/SoftAudioPusher;
flags: (0x0002) ACC_PRIVATE
private javax.sound.sampled.AudioInputStream pusher_stream;
descriptor: Ljavax/sound/sampled/AudioInputStream;
flags: (0x0002) ACC_PRIVATE
private final float controlrate;
descriptor: F
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 147.0
private final long latency;
descriptor: J
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 100000
private final boolean jitter_correction;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
ConstantValue: 0
private final java.util.List<javax.sound.sampled.LineListener> listeners;
descriptor: Ljava/util/List;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
Signature: Ljava/util/List<Ljavax/sound/sampled/LineListener;>;
private final javax.sound.sampled.Line$Info[] sourceLineInfo;
descriptor: [Ljavax/sound/sampled/Line$Info;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=2, locals=0, args_size=0
0: new com.sun.media.sound.SoftMixingMixer$Info
dup
invokespecial com.sun.media.sound.SoftMixingMixer$Info.<init>:()V
putstatic com.sun.media.sound.SoftMixingMixer.info:Ljavax/sound/sampled/Mixer$Info;
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=4, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aload 0
putfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
2: aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.implicitOpen:Z
3: aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.open:Z
4: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
5: aload 0
new javax.sound.sampled.AudioFormat
dup
ldc 44100.0
bipush 16
iconst_2
iconst_1
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(FIIZZ)V
putfield com.sun.media.sound.SoftMixingMixer.format:Ljavax/sound/sampled/AudioFormat;
6: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.sourceDataLine:Ljavax/sound/sampled/SourceDataLine;
7: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.pusher:Lcom/sun/media/sound/SoftAudioPusher;
8: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.pusher_stream:Ljavax/sound/sampled/AudioInputStream;
9: aload 0
ldc 147.0
putfield com.sun.media.sound.SoftMixingMixer.controlrate:F
10: aload 0
ldc 100000
putfield com.sun.media.sound.SoftMixingMixer.latency:J
11: aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.jitter_correction:Z
12: aload 0
new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
putfield com.sun.media.sound.SoftMixingMixer.listeners:Ljava/util/List;
13: aload 0
iconst_2
anewarray javax.sound.sampled.Line$Info
putfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
14: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 1
start local 1 15: iconst_1
istore 2
start local 2 16: goto 62
17: StackMap locals: com.sun.media.sound.SoftMixingMixer java.util.ArrayList int
StackMap stack:
aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
18: ldc -1.0
bipush 8
iload 2
iload 2
19: ldc -1.0
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
20: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
21: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
22: ldc -1.0
bipush 8
iload 2
iload 2
23: ldc -1.0
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
24: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
25: bipush 16
istore 3
start local 3 26: goto 44
27: StackMap locals: int
StackMap stack:
aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
28: ldc -1.0
iload 3
iload 2
iload 2
29: iload 3
imul
bipush 8
idiv
ldc -1.0
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
30: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
31: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
32: ldc -1.0
iload 3
iload 2
iload 2
33: iload 3
imul
bipush 8
idiv
ldc -1.0
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
34: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
35: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
36: ldc -1.0
iload 3
iload 2
iload 2
37: iload 3
imul
bipush 8
idiv
ldc -1.0
iconst_1
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
38: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
39: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
40: ldc -1.0
iload 3
iload 2
iload 2
41: iload 3
imul
bipush 8
idiv
ldc -1.0
iconst_1
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
42: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
43: iinc 3 8
StackMap locals:
StackMap stack:
44: iload 3
bipush 32
if_icmplt 27
end local 3 45: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic com.sun.media.sound.AudioFloatConverter.PCM_FLOAT:Ljavax/sound/sampled/AudioFormat$Encoding;
46: ldc -1.0
bipush 32
iload 2
iload 2
iconst_4
imul
47: ldc -1.0
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
48: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
49: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic com.sun.media.sound.AudioFloatConverter.PCM_FLOAT:Ljavax/sound/sampled/AudioFormat$Encoding;
50: ldc -1.0
bipush 32
iload 2
iload 2
iconst_4
imul
51: ldc -1.0
iconst_1
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
52: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
53: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic com.sun.media.sound.AudioFloatConverter.PCM_FLOAT:Ljavax/sound/sampled/AudioFormat$Encoding;
54: ldc -1.0
bipush 64
iload 2
iload 2
bipush 8
imul
55: ldc -1.0
iconst_0
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
56: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
57: aload 1
new javax.sound.sampled.AudioFormat
dup
getstatic com.sun.media.sound.AudioFloatConverter.PCM_FLOAT:Ljavax/sound/sampled/AudioFormat$Encoding;
58: ldc -1.0
bipush 64
iload 2
iload 2
bipush 8
imul
59: ldc -1.0
iconst_1
invokespecial javax.sound.sampled.AudioFormat.<init>:(Ljavax/sound/sampled/AudioFormat$Encoding;FIIIFZ)V
60: invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
61: iinc 2 1
StackMap locals:
StackMap stack:
62: iload 2
iconst_2
if_icmple 17
end local 2 63: aload 1
aload 1
64: invokevirtual java.util.ArrayList.size:()I
anewarray javax.sound.sampled.AudioFormat
65: invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast javax.sound.sampled.AudioFormat[]
astore 2
start local 2 66: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
iconst_0
new javax.sound.sampled.DataLine$Info
dup
ldc Ljavax/sound/sampled/SourceDataLine;
67: aload 2
iconst_m1
68: iconst_m1
invokespecial javax.sound.sampled.DataLine$Info.<init>:(Ljava/lang/Class;[Ljavax/sound/sampled/AudioFormat;II)V
69: aastore
70: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
iconst_1
new javax.sound.sampled.DataLine$Info
dup
ldc Ljavax/sound/sampled/Clip;
aload 2
71: iconst_m1
iconst_m1
invokespecial javax.sound.sampled.DataLine$Info.<init>:(Ljava/lang/Class;[Ljavax/sound/sampled/AudioFormat;II)V
72: aastore
73: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 74 0 this Lcom/sun/media/sound/SoftMixingMixer;
15 74 1 formats Ljava/util/ArrayList<Ljavax/sound/sampled/AudioFormat;>;
16 63 2 channels I
26 45 3 bits I
66 74 2 formats_array [Ljavax/sound/sampled/AudioFormat;
public javax.sound.sampled.Line getLine(javax.sound.sampled.Line$Info);
descriptor: (Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 1
invokevirtual com.sun.media.sound.SoftMixingMixer.isLineSupported:(Ljavax/sound/sampled/Line$Info;)Z
ifne 2
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Line unsupported: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.sound.sampled.Line$Info.getLineClass:()Ljava/lang/Class;
ldc Ljavax/sound/sampled/SourceDataLine;
if_acmpne 4
3: new com.sun.media.sound.SoftMixingSourceDataLine
dup
aload 0
aload 1
checkcast javax.sound.sampled.DataLine$Info
invokespecial com.sun.media.sound.SoftMixingSourceDataLine.<init>:(Lcom/sun/media/sound/SoftMixingMixer;Ljavax/sound/sampled/DataLine$Info;)V
areturn
4: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.sound.sampled.Line$Info.getLineClass:()Ljava/lang/Class;
ldc Ljavax/sound/sampled/Clip;
if_acmpne 6
5: new com.sun.media.sound.SoftMixingClip
dup
aload 0
aload 1
checkcast javax.sound.sampled.DataLine$Info
invokespecial com.sun.media.sound.SoftMixingClip.<init>:(Lcom/sun/media/sound/SoftMixingMixer;Ljavax/sound/sampled/DataLine$Info;)V
areturn
6: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Line unsupported: "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 7 1 info Ljavax/sound/sampled/Line$Info;
Exceptions:
throws javax.sound.sampled.LineUnavailableException
MethodParameters:
Name Flags
info
public int getMaxLines(javax.sound.sampled.Line$Info);
descriptor: (Ljavax/sound/sampled/Line$Info;)I
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual javax.sound.sampled.Line$Info.getLineClass:()Ljava/lang/Class;
ldc Ljavax/sound/sampled/SourceDataLine;
if_acmpne 2
1: iconst_m1
ireturn
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual javax.sound.sampled.Line$Info.getLineClass:()Ljava/lang/Class;
ldc Ljavax/sound/sampled/Clip;
if_acmpne 4
3: iconst_m1
ireturn
4: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 5 1 info Ljavax/sound/sampled/Line$Info;
MethodParameters:
Name Flags
info
public javax.sound.sampled.Mixer$Info getMixerInfo();
descriptor: ()Ljavax/sound/sampled/Mixer$Info;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: getstatic com.sun.media.sound.SoftMixingMixer.info:Ljavax/sound/sampled/Mixer$Info;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
public javax.sound.sampled.Line$Info[] getSourceLineInfo();
descriptor: ()[Ljavax/sound/sampled/Line$Info;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
arraylength
anewarray javax.sound.sampled.Line$Info
astore 1
start local 1 1: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
iconst_0
aload 1
iconst_0
2: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
arraylength
3: invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
4: aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftMixingMixer;
1 5 1 localArray [Ljavax/sound/sampled/Line$Info;
public javax.sound.sampled.Line$Info[] getSourceLineInfo(javax.sound.sampled.Line$Info);
descriptor: (Ljavax/sound/sampled/Line$Info;)[Ljavax/sound/sampled/Line$Info;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=4, args_size=2
start local 0 start local 1 0: new java.util.ArrayList
dup
invokespecial java.util.ArrayList.<init>:()V
astore 3
start local 3 1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int java.util.ArrayList
StackMap stack:
aload 1
aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
iload 2
aaload
invokevirtual javax.sound.sampled.Line$Info.matches:(Ljavax/sound/sampled/Line$Info;)Z
ifeq 5
4: aload 3
aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
iload 2
aaload
invokevirtual java.util.ArrayList.add:(Ljava/lang/Object;)Z
pop
5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
arraylength
if_icmplt 3
7: aload 3
aload 3
invokevirtual java.util.ArrayList.size:()I
anewarray javax.sound.sampled.Line$Info
invokevirtual java.util.ArrayList.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast javax.sound.sampled.Line$Info[]
areturn
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 8 1 info Ljavax/sound/sampled/Line$Info;
2 8 2 i I
1 8 3 infos Ljava/util/ArrayList<Ljavax/sound/sampled/Line$Info;>;
MethodParameters:
Name Flags
info
public javax.sound.sampled.Line[] getSourceLines();
descriptor: ()[Ljavax/sound/sampled/Line;
flags: (0x0001) ACC_PUBLIC
Code:
stack=4, locals=5, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
ifnonnull 4
2: iconst_0
anewarray javax.sound.sampled.Line
aload 2
monitorexit
3: areturn
4: StackMap locals: com.sun.media.sound.SoftMixingMixer top java.lang.Object
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
invokevirtual com.sun.media.sound.SoftMixingMainMixer.getOpenLines:()[Lcom/sun/media/sound/SoftMixingDataLine;
astore 3
start local 3 5: aload 3
arraylength
anewarray javax.sound.sampled.Line
astore 1
start local 1 6: iconst_0
istore 4
start local 4 7: goto 10
8: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.Line[] java.lang.Object com.sun.media.sound.SoftMixingDataLine[] int
StackMap stack:
aload 1
iload 4
aload 3
iload 4
aaload
aastore
9: iinc 4 1
StackMap locals:
StackMap stack:
10: iload 4
aload 1
arraylength
if_icmplt 8
end local 4 end local 3 11: aload 2
monitorexit
12: goto 15
end local 1 StackMap locals: com.sun.media.sound.SoftMixingMixer top java.lang.Object
StackMap stack: java.lang.Throwable
13: aload 2
monitorexit
14: athrow
start local 1 15: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.Line[]
StackMap stack:
aload 1
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 16 0 this Lcom/sun/media/sound/SoftMixingMixer;
6 13 1 localLines [Ljavax/sound/sampled/Line;
15 16 1 localLines [Ljavax/sound/sampled/Line;
5 11 3 sourceLines [Lcom/sun/media/sound/SoftMixingDataLine;
7 11 4 i I
Exception table:
from to target type
1 3 13 any
4 12 13 any
13 14 13 any
public javax.sound.sampled.Line$Info[] getTargetLineInfo();
descriptor: ()[Ljavax/sound/sampled/Line$Info;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
anewarray javax.sound.sampled.Line$Info
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
public javax.sound.sampled.Line$Info[] getTargetLineInfo(javax.sound.sampled.Line$Info);
descriptor: (Ljavax/sound/sampled/Line$Info;)[Ljavax/sound/sampled/Line$Info;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_0
anewarray javax.sound.sampled.Line$Info
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 1 1 info Ljavax/sound/sampled/Line$Info;
MethodParameters:
Name Flags
info
public javax.sound.sampled.Line[] getTargetLines();
descriptor: ()[Ljavax/sound/sampled/Line;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
anewarray javax.sound.sampled.Line
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
public boolean isLineSupported(javax.sound.sampled.Line$Info);
descriptor: (Ljavax/sound/sampled/Line$Info;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=2
start local 0 start local 1 0: aload 1
ifnull 7
1: iconst_0
istore 2
start local 2 2: goto 6
3: StackMap locals: int
StackMap stack:
aload 1
aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
iload 2
aaload
invokevirtual javax.sound.sampled.Line$Info.matches:(Ljavax/sound/sampled/Line$Info;)Z
ifeq 5
4: iconst_1
ireturn
5: StackMap locals:
StackMap stack:
iinc 2 1
StackMap locals:
StackMap stack:
6: iload 2
aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceLineInfo:[Ljavax/sound/sampled/Line$Info;
arraylength
if_icmplt 3
end local 2 7: StackMap locals:
StackMap stack:
iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 8 1 info Ljavax/sound/sampled/Line$Info;
2 7 2 i I
MethodParameters:
Name Flags
info
public boolean isSynchronizationSupported(javax.sound.sampled.Line[], boolean);
descriptor: ([Ljavax/sound/sampled/Line;Z)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=3, args_size=3
start local 0 start local 1 start local 2 0: iconst_0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 1 1 lines [Ljavax/sound/sampled/Line;
0 1 2 maintainSync Z
MethodParameters:
Name Flags
lines
maintainSync
public void synchronize(javax.sound.sampled.Line[], boolean);
descriptor: ([Ljavax/sound/sampled/Line;Z)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: new java.lang.IllegalArgumentException
dup
1: ldc "Synchronization not supported by this mixer."
2: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 3 1 lines [Ljavax/sound/sampled/Line;
0 3 2 maintainSync Z
MethodParameters:
Name Flags
lines
maintainSync
public void unsynchronize(javax.sound.sampled.Line[]);
descriptor: ([Ljavax/sound/sampled/Line;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.IllegalArgumentException
dup
1: ldc "Synchronization not supported by this mixer."
2: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 3 1 lines [Ljavax/sound/sampled/Line;
MethodParameters:
Name Flags
lines
public void addLineListener(javax.sound.sampled.LineListener);
descriptor: (Ljavax/sound/sampled/LineListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftMixingMixer.listeners:Ljava/util/List;
aload 1
invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.LineListener java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 7 1 listener Ljavax/sound/sampled/LineListener;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
listener
private void sendEvent(javax.sound.sampled.LineEvent);
descriptor: (Ljavax/sound/sampled/LineEvent;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=7, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.listeners:Ljava/util/List;
invokeinterface java.util.List.size:()I
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftMixingMixer.listeners:Ljava/util/List;
3: aload 0
getfield com.sun.media.sound.SoftMixingMixer.listeners:Ljava/util/List;
invokeinterface java.util.List.size:()I
anewarray javax.sound.sampled.LineListener
invokeinterface java.util.List.toArray:([Ljava/lang/Object;)[Ljava/lang/Object;
checkcast javax.sound.sampled.LineListener[]
4: astore 2
start local 2 5: aload 2
dup
astore 6
arraylength
istore 5
iconst_0
istore 4
goto 9
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.LineEvent javax.sound.sampled.LineListener[] top int int javax.sound.sampled.LineListener[]
StackMap stack:
6: aload 6
iload 4
aaload
astore 3
start local 3 7: aload 3
aload 1
invokeinterface javax.sound.sampled.LineListener.update:(Ljavax/sound/sampled/LineEvent;)V
end local 3 8: iinc 4 1
StackMap locals:
StackMap stack:
9: iload 4
iload 5
if_icmplt 6
10: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 11 1 event Ljavax/sound/sampled/LineEvent;
5 11 2 listener_array [Ljavax/sound/sampled/LineListener;
7 8 3 listener Ljavax/sound/sampled/LineListener;
MethodParameters:
Name Flags
event
public void close();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=4, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.isOpen:()Z
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
new javax.sound.sampled.LineEvent
dup
aload 0
getstatic javax.sound.sampled.LineEvent$Type.CLOSE:Ljavax/sound/sampled/LineEvent$Type;
3: ldc -1
invokespecial javax.sound.sampled.LineEvent.<init>:(Ljavax/sound/sampled/Line;Ljavax/sound/sampled/LineEvent$Type;J)V
4: invokevirtual com.sun.media.sound.SoftMixingMixer.sendEvent:(Ljavax/sound/sampled/LineEvent;)V
5: aconst_null
astore 1
start local 1 6: aconst_null
astore 2
start local 2 7: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
8: aload 0
getfield com.sun.media.sound.SoftMixingMixer.pusher:Lcom/sun/media/sound/SoftAudioPusher;
ifnull 13
9: aload 0
getfield com.sun.media.sound.SoftMixingMixer.pusher:Lcom/sun/media/sound/SoftAudioPusher;
astore 1
10: aload 0
getfield com.sun.media.sound.SoftMixingMixer.pusher_stream:Ljavax/sound/sampled/AudioInputStream;
astore 2
11: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.pusher:Lcom/sun/media/sound/SoftAudioPusher;
12: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.pusher_stream:Ljavax/sound/sampled/AudioInputStream;
13: StackMap locals: com.sun.media.sound.SoftAudioPusher javax.sound.sampled.AudioInputStream java.lang.Object
StackMap stack:
aload 3
monitorexit
14: goto 17
StackMap locals:
StackMap stack: java.lang.Throwable
15: aload 3
monitorexit
16: athrow
17: StackMap locals:
StackMap stack:
aload 1
ifnull 23
18: aload 1
invokevirtual com.sun.media.sound.SoftAudioPusher.stop:()V
19: aload 2
invokevirtual javax.sound.sampled.AudioInputStream.close:()V
20: goto 23
StackMap locals:
StackMap stack: java.io.IOException
21: astore 3
start local 3 22: aload 3
invokevirtual java.io.IOException.printStackTrace:()V
end local 3 23: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 3
monitorenter
24: aload 0
getfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
ifnull 26
25: aload 0
getfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
invokevirtual com.sun.media.sound.SoftMixingMainMixer.close:()V
26: StackMap locals: java.lang.Object
StackMap stack:
aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.open:Z
27: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceDataLine:Ljavax/sound/sampled/SourceDataLine;
ifnull 31
28: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceDataLine:Ljavax/sound/sampled/SourceDataLine;
invokeinterface javax.sound.sampled.SourceDataLine.drain:()V
29: aload 0
getfield com.sun.media.sound.SoftMixingMixer.sourceDataLine:Ljavax/sound/sampled/SourceDataLine;
invokeinterface javax.sound.sampled.SourceDataLine.close:()V
30: aload 0
aconst_null
putfield com.sun.media.sound.SoftMixingMixer.sourceDataLine:Ljavax/sound/sampled/SourceDataLine;
31: StackMap locals:
StackMap stack:
aload 3
monitorexit
32: goto 35
StackMap locals:
StackMap stack: java.lang.Throwable
33: aload 3
monitorexit
34: athrow
35: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 36 0 this Lcom/sun/media/sound/SoftMixingMixer;
6 36 1 pusher_to_be_closed Lcom/sun/media/sound/SoftAudioPusher;
7 36 2 pusher_stream_to_be_closed Ljavax/sound/sampled/AudioInputStream;
22 23 3 e Ljava/io/IOException;
Exception table:
from to target type
8 14 15 any
15 16 15 any
19 20 21 Class java.io.IOException
24 32 33 any
33 34 33 any
public javax.sound.sampled.Control getControl(javax.sound.sampled.Control$Type);
descriptor: (Ljavax/sound/sampled/Control$Type;)Ljavax/sound/sampled/Control;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported control type : "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
1: aload 1
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
2: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 3 1 control Ljavax/sound/sampled/Control$Type;
MethodParameters:
Name Flags
control
public javax.sound.sampled.Control[] getControls();
descriptor: ()[Ljavax/sound/sampled/Control;
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: iconst_0
anewarray javax.sound.sampled.Control
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
public javax.sound.sampled.Line$Info getLineInfo();
descriptor: ()Ljavax/sound/sampled/Line$Info;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=1, args_size=1
start local 0 0: new javax.sound.sampled.Line$Info
dup
ldc Ljavax/sound/sampled/Mixer;
invokespecial javax.sound.sampled.Line$Info.<init>:(Ljava/lang/Class;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
public boolean isControlSupported(javax.sound.sampled.Control$Type);
descriptor: (Ljavax/sound/sampled/Control$Type;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=2, args_size=2
start local 0 start local 1 0: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 1 1 control Ljavax/sound/sampled/Control$Type;
MethodParameters:
Name Flags
control
public boolean isOpen();
descriptor: ()Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftMixingMixer.open:Z
aload 1
monitorexit
2: ireturn
3: StackMap locals: com.sun.media.sound.SoftMixingMixer java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftMixingMixer;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public void open();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.isOpen:()Z
ifeq 3
1: aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.implicitOpen:Z
2: return
3: StackMap locals:
StackMap stack:
aload 0
aconst_null
invokevirtual com.sun.media.sound.SoftMixingMixer.open:(Ljavax/sound/sampled/SourceDataLine;)V
4: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftMixingMixer;
Exceptions:
throws javax.sound.sampled.LineUnavailableException
public void open(javax.sound.sampled.SourceDataLine);
descriptor: (Ljavax/sound/sampled/SourceDataLine;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=20, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.isOpen:()Z
ifeq 3
1: aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.implicitOpen:Z
2: return
3: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
4: aload 1
ifnull 6
5: aload 0
aload 1
invokeinterface javax.sound.sampled.SourceDataLine.getFormat:()Ljavax/sound/sampled/AudioFormat;
putfield com.sun.media.sound.SoftMixingMixer.format:Ljavax/sound/sampled/AudioFormat;
6: StackMap locals: java.lang.Object
StackMap stack:
aload 0
aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual com.sun.media.sound.SoftMixingMixer.openStream:(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/AudioInputStream;
astore 3
start local 3 7: aload 1
ifnonnull 77
8: getstatic com.sun.media.sound.SoftMixingMixerProvider.mutex:Ljava/lang/Object;
dup
astore 4
monitorenter
9: invokestatic java.lang.Thread.currentThread:()Ljava/lang/Thread;
10: putstatic com.sun.media.sound.SoftMixingMixerProvider.lockthread:Ljava/lang/Thread;
11: aload 4
monitorexit
12: goto 15
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream java.lang.Object
StackMap stack: java.lang.Throwable
13: aload 4
monitorexit
14: athrow
15: StackMap locals:
StackMap stack:
aconst_null
invokestatic javax.sound.sampled.AudioSystem.getMixer:(Ljavax/sound/sampled/Mixer$Info;)Ljavax/sound/sampled/Mixer;
astore 4
start local 4 16: aload 4
ifnull 56
17: aconst_null
astore 5
start local 5 18: aconst_null
astore 6
start local 6 19: aload 4
invokeinterface javax.sound.sampled.Mixer.getSourceLineInfo:()[Ljavax/sound/sampled/Line$Info;
astore 7
start local 7 20: iconst_0
istore 8
start local 8 21: goto 52
22: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream javax.sound.sampled.Mixer javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat javax.sound.sampled.Line$Info[] int
StackMap stack:
aload 7
iload 8
aaload
invokevirtual javax.sound.sampled.Line$Info.getLineClass:()Ljava/lang/Class;
ldc Ljavax/sound/sampled/SourceDataLine;
if_acmpne 51
23: aload 7
iload 8
aaload
checkcast javax.sound.sampled.DataLine$Info
astore 9
start local 9 24: aload 9
invokevirtual javax.sound.sampled.DataLine$Info.getFormats:()[Ljavax/sound/sampled/AudioFormat;
astore 10
start local 10 25: iconst_0
istore 11
start local 11 26: goto 50
27: StackMap locals: javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat[] int
StackMap stack:
aload 10
iload 11
aaload
astore 12
start local 12 28: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
iconst_2
if_icmpeq 30
29: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
iconst_m1
if_icmpne 49
30: StackMap locals: javax.sound.sampled.AudioFormat
StackMap stack:
aload 12
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 32
31: aload 12
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
ifeq 49
32: StackMap locals:
StackMap stack:
aload 12
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
ldc -1.0
fcmpl
ifeq 34
33: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
f2d
ldc 48000.0
dcmpl
ifne 49
34: StackMap locals:
StackMap stack:
aload 12
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
iconst_m1
if_icmpeq 36
35: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
bipush 16
if_icmpne 49
36: StackMap locals:
StackMap stack:
aload 9
astore 5
37: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
istore 13
start local 13 38: aload 12
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
istore 14
start local 14 39: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
fstore 15
start local 15 40: aload 12
invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
istore 16
start local 16 41: aload 12
invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
istore 17
start local 17 42: iload 17
iconst_m1
if_icmpne 43
bipush 16
istore 17
43: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream javax.sound.sampled.Mixer javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat javax.sound.sampled.Line$Info[] int javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat[] int javax.sound.sampled.AudioFormat int int float int int
StackMap stack:
iload 13
iconst_m1
if_icmpne 44
iconst_2
istore 13
44: StackMap locals:
StackMap stack:
fload 15
ldc -1.0
fcmpl
ifne 45
ldc 48000.0
fstore 15
45: StackMap locals:
StackMap stack:
new javax.sound.sampled.AudioFormat
dup
fload 15
iload 17
46: iload 13
iload 14
iload 16
47: invokespecial javax.sound.sampled.AudioFormat.<init>:(FIIZZ)V
astore 6
48: goto 53
end local 17 end local 16 end local 15 end local 14 end local 13 end local 12 49: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream javax.sound.sampled.Mixer javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat javax.sound.sampled.Line$Info[] int javax.sound.sampled.DataLine$Info javax.sound.sampled.AudioFormat[] int
StackMap stack:
iinc 11 1
StackMap locals:
StackMap stack:
50: iload 11
aload 10
arraylength
if_icmplt 27
end local 11 end local 10 end local 9 51: StackMap locals:
StackMap stack:
iinc 8 1
StackMap locals:
StackMap stack:
52: iload 8
aload 7
arraylength
if_icmplt 22
end local 8 53: StackMap locals:
StackMap stack:
aload 6
ifnull 56
54: aload 0
aload 6
putfield com.sun.media.sound.SoftMixingMixer.format:Ljavax/sound/sampled/AudioFormat;
55: aload 4
aload 5
invokeinterface javax.sound.sampled.Mixer.getLine:(Ljavax/sound/sampled/Line$Info;)Ljavax/sound/sampled/Line;
checkcast javax.sound.sampled.SourceDataLine
astore 1
end local 7 end local 6 end local 5 56: StackMap locals:
StackMap stack:
aload 1
ifnonnull 67
57: aload 0
getfield com.sun.media.sound.SoftMixingMixer.format:Ljavax/sound/sampled/AudioFormat;
invokestatic javax.sound.sampled.AudioSystem.getSourceDataLine:(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/SourceDataLine;
astore 1
end local 4 58: goto 67
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream
StackMap stack: java.lang.Throwable
59: astore 18
60: getstatic com.sun.media.sound.SoftMixingMixerProvider.mutex:Ljava/lang/Object;
dup
astore 19
monitorenter
61: aconst_null
putstatic com.sun.media.sound.SoftMixingMixerProvider.lockthread:Ljava/lang/Thread;
62: aload 19
monitorexit
63: goto 66
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream top top top top top top top top top top top top top top java.lang.Throwable java.lang.Object
StackMap stack: java.lang.Throwable
64: aload 19
monitorexit
65: athrow
66: StackMap locals:
StackMap stack:
aload 18
athrow
67: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream
StackMap stack:
getstatic com.sun.media.sound.SoftMixingMixerProvider.mutex:Ljava/lang/Object;
dup
astore 19
monitorenter
68: aconst_null
putstatic com.sun.media.sound.SoftMixingMixerProvider.lockthread:Ljava/lang/Thread;
69: aload 19
monitorexit
70: goto 73
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream top top top top top top top top top top top top top top top java.lang.Object
StackMap stack: java.lang.Throwable
71: aload 19
monitorexit
72: athrow
73: StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream
StackMap stack:
aload 1
ifnonnull 77
74: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "No line matching "
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
75: getstatic com.sun.media.sound.SoftMixingMixer.info:Ljavax/sound/sampled/Mixer$Info;
invokevirtual javax.sound.sampled.Mixer$Info.toString:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc " is supported."
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
76: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
77: StackMap locals:
StackMap stack:
ldc 100000.0
dstore 4
start local 4 78: aload 1
invokeinterface javax.sound.sampled.SourceDataLine.isOpen:()Z
ifne 84
79: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
80: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.getFormat:()Ljavax/sound/sampled/AudioFormat;
invokevirtual javax.sound.sampled.AudioFormat.getFrameRate:()F
f2d
dload 4
ldc 1000000.0
ddiv
dmul
d2i
81: imul
istore 6
start local 6 82: aload 1
aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.getFormat:()Ljavax/sound/sampled/AudioFormat;
iload 6
invokeinterface javax.sound.sampled.SourceDataLine.open:(Ljavax/sound/sampled/AudioFormat;I)V
83: aload 0
aload 1
putfield com.sun.media.sound.SoftMixingMixer.sourceDataLine:Ljavax/sound/sampled/SourceDataLine;
end local 6 84: StackMap locals: double
StackMap stack:
aload 1
invokeinterface javax.sound.sampled.SourceDataLine.isActive:()Z
ifne 86
85: aload 1
invokeinterface javax.sound.sampled.SourceDataLine.start:()V
86: StackMap locals:
StackMap stack:
sipush 512
istore 6
start local 6 87: aload 3
invokevirtual javax.sound.sampled.AudioInputStream.available:()I
istore 6
88: goto 90
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object javax.sound.sampled.AudioInputStream double int
StackMap stack: java.io.IOException
89: pop
90: StackMap locals:
StackMap stack:
aload 1
invokeinterface javax.sound.sampled.SourceDataLine.getBufferSize:()I
istore 7
start local 7 91: iload 7
iload 7
iload 6
irem
isub
istore 7
92: iload 7
iconst_3
iload 6
imul
if_icmpge 94
93: iconst_3
iload 6
imul
istore 7
94: StackMap locals: int
StackMap stack:
aload 0
new com.sun.media.sound.SoftAudioPusher
dup
aload 1
aload 3
iload 6
invokespecial com.sun.media.sound.SoftAudioPusher.<init>:(Ljavax/sound/sampled/SourceDataLine;Ljavax/sound/sampled/AudioInputStream;I)V
putfield com.sun.media.sound.SoftMixingMixer.pusher:Lcom/sun/media/sound/SoftAudioPusher;
95: aload 0
aload 3
putfield com.sun.media.sound.SoftMixingMixer.pusher_stream:Ljavax/sound/sampled/AudioInputStream;
96: aload 0
getfield com.sun.media.sound.SoftMixingMixer.pusher:Lcom/sun/media/sound/SoftAudioPusher;
invokevirtual com.sun.media.sound.SoftAudioPusher.start:()V
end local 7 end local 6 end local 4 end local 3 97: goto 102
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.SourceDataLine java.lang.Object
StackMap stack: javax.sound.sampled.LineUnavailableException
98: astore 3
start local 3 99: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.isOpen:()Z
ifeq 101
100: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.close:()V
101: StackMap locals: javax.sound.sampled.LineUnavailableException
StackMap stack:
new javax.sound.sampled.LineUnavailableException
dup
aload 3
invokevirtual javax.sound.sampled.LineUnavailableException.toString:()Ljava/lang/String;
invokespecial javax.sound.sampled.LineUnavailableException.<init>:(Ljava/lang/String;)V
athrow
end local 3 102: StackMap locals:
StackMap stack:
aload 2
monitorexit
103: goto 106
StackMap locals:
StackMap stack: java.lang.Throwable
104: aload 2
monitorexit
105: athrow
106: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 107 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 107 1 line Ljavax/sound/sampled/SourceDataLine;
7 97 3 ais Ljavax/sound/sampled/AudioInputStream;
16 58 4 defaultmixer Ljavax/sound/sampled/Mixer;
18 56 5 idealinfo Ljavax/sound/sampled/DataLine$Info;
19 56 6 idealformat Ljavax/sound/sampled/AudioFormat;
20 56 7 lineinfos [Ljavax/sound/sampled/Line$Info;
21 53 8 i I
24 51 9 info Ljavax/sound/sampled/DataLine$Info;
25 51 10 formats [Ljavax/sound/sampled/AudioFormat;
26 51 11 j I
28 49 12 format Ljavax/sound/sampled/AudioFormat;
38 49 13 ideal_channels I
39 49 14 ideal_signed Z
40 49 15 ideal_rate F
41 49 16 ideal_endian Z
42 49 17 ideal_bits I
78 97 4 latency D
82 84 6 bufferSize I
87 97 6 controlbuffersize I
91 97 7 buffersize I
99 102 3 e Ljavax/sound/sampled/LineUnavailableException;
Exception table:
from to target type
9 12 13 any
13 14 13 any
15 59 59 any
61 63 64 any
64 65 64 any
68 70 71 any
71 72 71 any
87 88 89 Class java.io.IOException
4 97 98 Class javax.sound.sampled.LineUnavailableException
4 103 104 any
104 105 104 any
Exceptions:
throws javax.sound.sampled.LineUnavailableException
MethodParameters:
Name Flags
line
public javax.sound.sampled.AudioInputStream openStream(javax.sound.sampled.AudioFormat);
descriptor: (Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/AudioInputStream;
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=3, args_size=2
start local 0 start local 1 0: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.isOpen:()Z
ifeq 2
1: new javax.sound.sampled.LineUnavailableException
dup
ldc "Mixer is already open"
invokespecial javax.sound.sampled.LineUnavailableException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
3: aload 0
iconst_1
putfield com.sun.media.sound.SoftMixingMixer.open:Z
4: aload 0
iconst_0
putfield com.sun.media.sound.SoftMixingMixer.implicitOpen:Z
5: aload 1
ifnull 7
6: aload 0
aload 1
putfield com.sun.media.sound.SoftMixingMixer.format:Ljavax/sound/sampled/AudioFormat;
7: StackMap locals: java.lang.Object
StackMap stack:
aload 0
new com.sun.media.sound.SoftMixingMainMixer
dup
aload 0
invokespecial com.sun.media.sound.SoftMixingMainMixer.<init>:(Lcom/sun/media/sound/SoftMixingMixer;)V
putfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
8: aload 0
new javax.sound.sampled.LineEvent
dup
aload 0
getstatic javax.sound.sampled.LineEvent$Type.OPEN:Ljavax/sound/sampled/LineEvent$Type;
9: ldc -1
invokespecial javax.sound.sampled.LineEvent.<init>:(Ljavax/sound/sampled/Line;Ljavax/sound/sampled/LineEvent$Type;J)V
10: invokevirtual com.sun.media.sound.SoftMixingMixer.sendEvent:(Ljavax/sound/sampled/LineEvent;)V
11: aload 0
getfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
invokevirtual com.sun.media.sound.SoftMixingMainMixer.getInputStream:()Ljavax/sound/sampled/AudioInputStream;
aload 2
monitorexit
12: areturn
13: StackMap locals:
StackMap stack: java.lang.Throwable
aload 2
monitorexit
14: athrow
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 15 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 15 1 targetFormat Ljavax/sound/sampled/AudioFormat;
Exception table:
from to target type
3 12 13 any
13 14 13 any
Exceptions:
throws javax.sound.sampled.LineUnavailableException
MethodParameters:
Name Flags
targetFormat
public void removeLineListener(javax.sound.sampled.LineListener);
descriptor: (Ljavax/sound/sampled/LineListener;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 2
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftMixingMixer.listeners:Ljava/util/List;
aload 1
invokeinterface java.util.List.remove:(Ljava/lang/Object;)Z
pop
2: aload 2
monitorexit
3: goto 6
StackMap locals: com.sun.media.sound.SoftMixingMixer javax.sound.sampled.LineListener java.lang.Object
StackMap stack: java.lang.Throwable
4: aload 2
monitorexit
5: athrow
6: StackMap locals:
StackMap stack:
return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Lcom/sun/media/sound/SoftMixingMixer;
0 7 1 listener Ljavax/sound/sampled/LineListener;
Exception table:
from to target type
1 3 4 any
4 5 4 any
MethodParameters:
Name Flags
listener
public long getLatency();
descriptor: ()J
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 1
monitorexit
2: ldc 100000
lreturn
3: StackMap locals: com.sun.media.sound.SoftMixingMixer java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftMixingMixer;
Exception table:
from to target type
1 2 3 any
3 4 3 any
public javax.sound.sampled.AudioFormat getFormat();
descriptor: ()Ljavax/sound/sampled/AudioFormat;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
dup
astore 1
monitorenter
1: aload 0
getfield com.sun.media.sound.SoftMixingMixer.format:Ljavax/sound/sampled/AudioFormat;
aload 1
monitorexit
2: areturn
3: StackMap locals: com.sun.media.sound.SoftMixingMixer java.lang.Object
StackMap stack: java.lang.Throwable
aload 1
monitorexit
4: athrow
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/sun/media/sound/SoftMixingMixer;
Exception table:
from to target type
1 2 3 any
3 4 3 any
float getControlRate();
descriptor: ()F
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: ldc 147.0
freturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/sun/media/sound/SoftMixingMixer;
com.sun.media.sound.SoftMixingMainMixer getMainMixer();
descriptor: ()Lcom/sun/media/sound/SoftMixingMainMixer;
flags: (0x0000)
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokevirtual com.sun.media.sound.SoftMixingMixer.isOpen:()Z
ifne 2
1: aconst_null
areturn
2: StackMap locals:
StackMap stack:
aload 0
getfield com.sun.media.sound.SoftMixingMixer.mainmixer:Lcom/sun/media/sound/SoftMixingMainMixer;
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lcom/sun/media/sound/SoftMixingMixer;
}
SourceFile: "SoftMixingMixer.java"
NestMembers:
com.sun.media.sound.SoftMixingMixer$Info
InnerClasses:
private Info = com.sun.media.sound.SoftMixingMixer$Info of com.sun.media.sound.SoftMixingMixer
public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat
public Type = javax.sound.sampled.Control$Type of javax.sound.sampled.Control
public Info = javax.sound.sampled.DataLine$Info of javax.sound.sampled.DataLine
public Info = javax.sound.sampled.Line$Info of javax.sound.sampled.Line
public Type = javax.sound.sampled.LineEvent$Type of javax.sound.sampled.LineEvent
public Info = javax.sound.sampled.Mixer$Info of javax.sound.sampled.Mixer