public class android.media.audiopolicy.AudioMix$Builder
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: android.media.audiopolicy.AudioMix$Builder
super_class: java.lang.Object
{
private android.media.audiopolicy.AudioMixingRule mRule;
descriptor: Landroid/media/audiopolicy/AudioMixingRule;
flags: (0x0002) ACC_PRIVATE
private android.media.AudioFormat mFormat;
descriptor: Landroid/media/AudioFormat;
flags: (0x0002) ACC_PRIVATE
private int mRouteFlags;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mCallbackFlags;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private int mDeviceSystemType;
descriptor: I
flags: (0x0002) ACC_PRIVATE
private java.lang.String mDeviceAddress;
descriptor: Ljava/lang/String;
flags: (0x0002) ACC_PRIVATE
void <init>();
descriptor: ()V
flags: (0x0000)
Code:
stack=2, locals=1, args_size=1
start local 0 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
2: aload 0
aconst_null
putfield android.media.audiopolicy.AudioMix$Builder.mFormat:Landroid/media/AudioFormat;
3: aload 0
iconst_0
putfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
4: aload 0
iconst_0
putfield android.media.audiopolicy.AudioMix$Builder.mCallbackFlags:I
5: aload 0
iconst_0
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
6: aload 0
aconst_null
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceAddress:Ljava/lang/String;
7: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 this Landroid/media/audiopolicy/AudioMix$Builder;
public void <init>(android.media.audiopolicy.AudioMixingRule);
descriptor: (Landroid/media/audiopolicy/AudioMixingRule;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 0
invokespecial java.lang.Object.<init>:()V
1: aload 0
aconst_null
putfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
2: aload 0
aconst_null
putfield android.media.audiopolicy.AudioMix$Builder.mFormat:Landroid/media/AudioFormat;
3: aload 0
iconst_0
putfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
4: aload 0
iconst_0
putfield android.media.audiopolicy.AudioMix$Builder.mCallbackFlags:I
5: aload 0
iconst_0
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
6: aload 0
aconst_null
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceAddress:Ljava/lang/String;
7: aload 1
ifnonnull 9
8: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioMixingRule argument"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
9: StackMap locals: android.media.audiopolicy.AudioMix$Builder android.media.audiopolicy.AudioMixingRule
StackMap stack:
aload 0
aload 1
putfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
10: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 11 1 rule Landroid/media/audiopolicy/AudioMixingRule;
Exceptions:
throws java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
rule
android.media.audiopolicy.AudioMix$Builder setMixingRule(android.media.audiopolicy.AudioMixingRule);
descriptor: (Landroid/media/audiopolicy/AudioMixingRule;)Landroid/media/audiopolicy/AudioMix$Builder;
flags: (0x0000)
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioMixingRule argument"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
3: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 4 1 rule Landroid/media/audiopolicy/AudioMixingRule;
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
rule
android.media.audiopolicy.AudioMix$Builder setCallbackFlags(int);
descriptor: (I)Landroid/media/audiopolicy/AudioMix$Builder;
flags: (0x0000)
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifeq 4
iload 1
iconst_1
iand
ifne 4
1: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Illegal callback flags 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
2: iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.String.toUpperCase:()Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
3: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
iload 1
putfield android.media.audiopolicy.AudioMix$Builder.mCallbackFlags:I
5: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 6 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 6 1 flags I
Exceptions:
throws java.lang.IllegalArgumentException
MethodParameters:
Name Flags
flags
android.media.audiopolicy.AudioMix$Builder setDevice(int, java.lang.String);
descriptor: (ILjava/lang/String;)Landroid/media/audiopolicy/AudioMix$Builder;
flags: (0x0000)
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
1: aload 0
aload 2
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceAddress:Ljava/lang/String;
2: aload 0
areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 3 1 deviceType I
0 3 2 address Ljava/lang/String;
MethodParameters:
Name Flags
deviceType
address
public android.media.audiopolicy.AudioMix$Builder setFormat(android.media.AudioFormat);
descriptor: (Landroid/media/AudioFormat;)Landroid/media/audiopolicy/AudioMix$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioFormat argument"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
aload 1
putfield android.media.audiopolicy.AudioMix$Builder.mFormat:Landroid/media/AudioFormat;
3: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 4 1 format Landroid/media/AudioFormat;
Exceptions:
throws java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
format
public android.media.audiopolicy.AudioMix$Builder setRouteFlags(int);
descriptor: (I)Landroid/media/audiopolicy/AudioMix$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: iload 1
ifne 2
1: new java.lang.IllegalArgumentException
dup
ldc "Illegal empty route flags"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
iload 1
iconst_3
iand
ifne 6
3: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Invalid route flags 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
4: iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "when configuring an AudioMix"
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
5: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
6: StackMap locals:
StackMap stack:
iload 1
bipush -4
iand
ifeq 10
7: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unknown route flags 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
8: iload 1
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
ldc "when configuring an AudioMix"
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:
aload 0
iload 1
putfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
11: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 12 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 12 1 routeFlags I
Exceptions:
throws java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
routeFlags
public android.media.audiopolicy.AudioMix$Builder setDevice(android.media.AudioDeviceInfo);
descriptor: (Landroid/media/AudioDeviceInfo;)Landroid/media/audiopolicy/AudioMix$Builder;
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioDeviceInfo argument"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 1
invokevirtual android.media.AudioDeviceInfo.isSink:()Z
ifne 4
3: new java.lang.IllegalArgumentException
dup
ldc "Unsupported device type on mix, not a sink"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
4: StackMap locals:
StackMap stack:
aload 0
aload 1
invokevirtual android.media.AudioDeviceInfo.getType:()I
invokestatic android.media.AudioDeviceInfo.convertDeviceTypeToInternalDevice:(I)I
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
5: aload 0
aload 1
invokevirtual android.media.AudioDeviceInfo.getAddress:()Ljava/lang/String;
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceAddress:Ljava/lang/String;
6: aload 0
areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 7 0 this Landroid/media/audiopolicy/AudioMix$Builder;
0 7 1 device Landroid/media/AudioDeviceInfo;
Exceptions:
throws java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
MethodParameters:
Name Flags
device
public android.media.audiopolicy.AudioMix build();
descriptor: ()Landroid/media/audiopolicy/AudioMix;
flags: (0x0001) ACC_PUBLIC
Code:
stack=8, locals=2, args_size=1
start local 0 0: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
ifnonnull 2
1: new java.lang.IllegalArgumentException
dup
ldc "Illegal null AudioMixingRule"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
2: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
ifne 4
3: aload 0
iconst_2
putfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
4: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
iconst_3
if_icmpne 8
5: new java.lang.IllegalArgumentException
dup
new java.lang.StringBuilder
dup
ldc "Unsupported route behavior combination 0x"
invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
6: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
invokestatic java.lang.Integer.toHexString:(I)Ljava/lang/String;
invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
7: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
8: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mFormat:Landroid/media/AudioFormat;
ifnonnull 13
9: invokestatic android.media.AudioSystem.getPrimaryOutputSamplingRate:()I
istore 1
start local 1 10: iload 1
ifgt 12
11: ldc 44100
istore 1
12: StackMap locals: int
StackMap stack:
aload 0
new android.media.AudioFormat$Builder
dup
invokespecial android.media.AudioFormat$Builder.<init>:()V
iload 1
invokevirtual android.media.AudioFormat$Builder.setSampleRate:(I)Landroid/media/AudioFormat$Builder;
invokevirtual android.media.AudioFormat$Builder.build:()Landroid/media/AudioFormat;
putfield android.media.audiopolicy.AudioMix$Builder.mFormat:Landroid/media/AudioFormat;
end local 1 13: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
ifeq 22
14: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
ldc 32768
if_icmpeq 22
15: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
ldc -2147483392
if_icmpeq 22
16: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
iconst_1
iand
ifne 20
17: new java.lang.IllegalArgumentException
dup
18: ldc "Can't have audio device without flag ROUTE_FLAG_RENDER"
19: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
20: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
invokevirtual android.media.audiopolicy.AudioMixingRule.getTargetMixType:()I
ifeq 34
21: new java.lang.IllegalArgumentException
dup
ldc "Unsupported device on non-playback mix"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
22: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
iconst_1
iand
iconst_1
if_icmpne 26
23: new java.lang.IllegalArgumentException
dup
24: ldc "Can't have flag ROUTE_FLAG_RENDER without an audio device"
25: invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
26: StackMap locals:
StackMap stack:
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
iconst_3
iand
iconst_2
if_icmpne 34
27: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
invokevirtual android.media.audiopolicy.AudioMixingRule.getTargetMixType:()I
ifne 30
28: aload 0
ldc 32768
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
29: goto 34
StackMap locals:
StackMap stack:
30: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
invokevirtual android.media.audiopolicy.AudioMixingRule.getTargetMixType:()I
iconst_1
if_icmpne 33
31: aload 0
ldc -2147483392
putfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
32: goto 34
33: StackMap locals:
StackMap stack:
new java.lang.IllegalArgumentException
dup
ldc "Unknown mixing rule type"
invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
athrow
34: StackMap locals:
StackMap stack:
new android.media.audiopolicy.AudioMix
dup
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRule:Landroid/media/audiopolicy/AudioMixingRule;
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mFormat:Landroid/media/AudioFormat;
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mRouteFlags:I
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mCallbackFlags:I
aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mDeviceSystemType:I
35: aload 0
getfield android.media.audiopolicy.AudioMix$Builder.mDeviceAddress:Ljava/lang/String;
36: invokespecial android.media.audiopolicy.AudioMix.<init>:(Landroid/media/audiopolicy/AudioMixingRule;Landroid/media/AudioFormat;IIILjava/lang/String;)V
areturn
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 37 0 this Landroid/media/audiopolicy/AudioMix$Builder;
10 13 1 rate I
Exceptions:
throws java.lang.IllegalArgumentException
RuntimeVisibleAnnotations:
android.annotation.SystemApi()
}
SourceFile: "AudioMix.java"
NestHost: android.media.audiopolicy.AudioMix
InnerClasses:
public Builder = android.media.AudioFormat$Builder of android.media.AudioFormat
public Builder = android.media.audiopolicy.AudioMix$Builder of android.media.audiopolicy.AudioMix
RuntimeVisibleAnnotations:
android.annotation.SystemApi()