public abstract class com.sun.media.sound.SoftMixingDataLine implements javax.sound.sampled.DataLine
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: com.sun.media.sound.SoftMixingDataLine
  super_class: java.lang.Object
{
  public static final javax.sound.sampled.FloatControl$Type CHORUS_SEND;
    descriptor: Ljavax/sound/sampled/FloatControl$Type;
    flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$Gain gain_control;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$Gain;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$Mute mute_control;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$Mute;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$Balance balance_control;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$Balance;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$Pan pan_control;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$Pan;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$ReverbSend reverbsend_control;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$ReverbSend;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$ChorusSend chorussend_control;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$ChorusSend;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final com.sun.media.sound.SoftMixingDataLine$ApplyReverb apply_reverb;
    descriptor: Lcom/sun/media/sound/SoftMixingDataLine$ApplyReverb;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  private final javax.sound.sampled.Control[] controls;
    descriptor: [Ljavax/sound/sampled/Control;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  float leftgain;
    descriptor: F
    flags: (0x0000) 

  float rightgain;
    descriptor: F
    flags: (0x0000) 

  float eff1gain;
    descriptor: F
    flags: (0x0000) 

  float eff2gain;
    descriptor: F
    flags: (0x0000) 

  java.util.List<javax.sound.sampled.LineListener> listeners;
    descriptor: Ljava/util/List;
    flags: (0x0000) 
    Signature: Ljava/util/List<Ljavax/sound/sampled/LineListener;>;

  final java.lang.Object control_mutex;
    descriptor: Ljava/lang/Object;
    flags: (0x0010) ACC_FINAL

  com.sun.media.sound.SoftMixingMixer mixer;
    descriptor: Lcom/sun/media/sound/SoftMixingMixer;
    flags: (0x0000) 

  javax.sound.sampled.DataLine$Info info;
    descriptor: Ljavax/sound/sampled/DataLine$Info;
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=3, locals=0, args_size=0
         0: .line 50
            new com.sun.media.sound.SoftMixingDataLine$1
            dup
         1: .line 51
            ldc "Chorus Send"
         2: .line 50
            invokespecial com.sun.media.sound.SoftMixingDataLine$1.<init>:(Ljava/lang/String;)V
            putstatic com.sun.media.sound.SoftMixingDataLine.CHORUS_SEND:Ljavax/sound/sampled/FloatControl$Type;
         3: .line 52
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected abstract void processControlLogic();
    descriptor: ()V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT

  protected abstract void processAudioLogic(com.sun.media.sound.SoftAudioBuffer[]);
    descriptor: ([Lcom/sun/media/sound/SoftAudioBuffer;)V
    flags: (0x0404) ACC_PROTECTED, ACC_ABSTRACT
    MethodParameters:
         Name  Flags
      buffers  

  void <init>(com.sun.media.sound.SoftMixingMixer, javax.sound.sampled.DataLine$Info);
    descriptor: (Lcom/sun/media/sound/SoftMixingMixer;Ljavax/sound/sampled/DataLine$Info;)V
    flags: (0x0000) 
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
        start local 1 // com.sun.media.sound.SoftMixingMixer mixer
        start local 2 // javax.sound.sampled.DataLine$Info info
         0: .line 450
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 414
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$Gain
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$Gain.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.gain_control:Lcom/sun/media/sound/SoftMixingDataLine$Gain;
         2: .line 416
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$Mute
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$Mute.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.mute_control:Lcom/sun/media/sound/SoftMixingDataLine$Mute;
         3: .line 418
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$Balance
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$Balance.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.balance_control:Lcom/sun/media/sound/SoftMixingDataLine$Balance;
         4: .line 420
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$Pan
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$Pan.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.pan_control:Lcom/sun/media/sound/SoftMixingDataLine$Pan;
         5: .line 422
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$ReverbSend
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$ReverbSend.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.reverbsend_control:Lcom/sun/media/sound/SoftMixingDataLine$ReverbSend;
         6: .line 424
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$ChorusSend
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$ChorusSend.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.chorussend_control:Lcom/sun/media/sound/SoftMixingDataLine$ChorusSend;
         7: .line 426
            aload 0 /* this */
            new com.sun.media.sound.SoftMixingDataLine$ApplyReverb
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.SoftMixingDataLine$ApplyReverb.<init>:(Lcom/sun/media/sound/SoftMixingDataLine;)V
            putfield com.sun.media.sound.SoftMixingDataLine.apply_reverb:Lcom/sun/media/sound/SoftMixingDataLine$ApplyReverb;
         8: .line 430
            aload 0 /* this */
            fconst_1
            putfield com.sun.media.sound.SoftMixingDataLine.leftgain:F
         9: .line 432
            aload 0 /* this */
            fconst_1
            putfield com.sun.media.sound.SoftMixingDataLine.rightgain:F
        10: .line 434
            aload 0 /* this */
            fconst_0
            putfield com.sun.media.sound.SoftMixingDataLine.eff1gain:F
        11: .line 436
            aload 0 /* this */
            fconst_0
            putfield com.sun.media.sound.SoftMixingDataLine.eff2gain:F
        12: .line 438
            aload 0 /* this */
            new java.util.ArrayList
            dup
            invokespecial java.util.ArrayList.<init>:()V
            putfield com.sun.media.sound.SoftMixingDataLine.listeners:Ljava/util/List;
        13: .line 451
            aload 0 /* this */
            aload 1 /* mixer */
            putfield com.sun.media.sound.SoftMixingDataLine.mixer:Lcom/sun/media/sound/SoftMixingMixer;
        14: .line 452
            aload 0 /* this */
            aload 2 /* info */
            putfield com.sun.media.sound.SoftMixingDataLine.info:Ljavax/sound/sampled/DataLine$Info;
        15: .line 453
            aload 0 /* this */
            aload 1 /* mixer */
            getfield com.sun.media.sound.SoftMixingMixer.control_mutex:Ljava/lang/Object;
            putfield com.sun.media.sound.SoftMixingDataLine.control_mutex:Ljava/lang/Object;
        16: .line 455
            aload 0 /* this */
            bipush 7
            anewarray javax.sound.sampled.Control
            dup
            iconst_0
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.gain_control:Lcom/sun/media/sound/SoftMixingDataLine$Gain;
            aastore
            dup
            iconst_1
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.mute_control:Lcom/sun/media/sound/SoftMixingDataLine$Mute;
            aastore
            dup
            iconst_2
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.balance_control:Lcom/sun/media/sound/SoftMixingDataLine$Balance;
            aastore
            dup
            iconst_3
        17: .line 456
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.pan_control:Lcom/sun/media/sound/SoftMixingDataLine$Pan;
            aastore
            dup
            iconst_4
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.reverbsend_control:Lcom/sun/media/sound/SoftMixingDataLine$ReverbSend;
            aastore
            dup
            iconst_5
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.chorussend_control:Lcom/sun/media/sound/SoftMixingDataLine$ChorusSend;
            aastore
            dup
            bipush 6
        18: .line 457
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.apply_reverb:Lcom/sun/media/sound/SoftMixingDataLine$ApplyReverb;
            aastore
        19: .line 455
            putfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
        20: .line 458
            aload 0 /* this */
            invokevirtual com.sun.media.sound.SoftMixingDataLine.calcVolume:()V
        21: .line 459
            return
        end local 2 // javax.sound.sampled.DataLine$Info info
        end local 1 // com.sun.media.sound.SoftMixingMixer mixer
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   22     0   this  Lcom/sun/media/sound/SoftMixingDataLine;
            0   22     1  mixer  Lcom/sun/media/sound/SoftMixingMixer;
            0   22     2   info  Ljavax/sound/sampled/DataLine$Info;
    MethodParameters:
       Name  Flags
      mixer  
      info   

  final void calcVolume();
    descriptor: ()V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=7, locals=6, args_size=1
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
         0: .line 462
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.control_mutex:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 463
            ldc 10.0
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.gain_control:Lcom/sun/media/sound/SoftMixingDataLine$Gain;
            invokevirtual com.sun.media.sound.SoftMixingDataLine$Gain.getValue:()F
            f2d
            ldc 20.0
            ddiv
            invokestatic java.lang.Math.pow:(DD)D
            dstore 2 /* gain */
        start local 2 // double gain
         2: .line 464
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.mute_control:Lcom/sun/media/sound/SoftMixingDataLine$Mute;
            invokevirtual com.sun.media.sound.SoftMixingDataLine$Mute.getValue:()Z
            ifeq 4
         3: .line 465
            dconst_0
            dstore 2 /* gain */
         4: .line 466
      StackMap locals: java.lang.Object double
      StackMap stack:
            aload 0 /* this */
            dload 2 /* gain */
            d2f
            putfield com.sun.media.sound.SoftMixingDataLine.leftgain:F
         5: .line 467
            aload 0 /* this */
            dload 2 /* gain */
            d2f
            putfield com.sun.media.sound.SoftMixingDataLine.rightgain:F
         6: .line 468
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.mixer:Lcom/sun/media/sound/SoftMixingMixer;
            invokevirtual com.sun.media.sound.SoftMixingMixer.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
            iconst_1
            if_icmple 11
         7: .line 470
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.balance_control:Lcom/sun/media/sound/SoftMixingDataLine$Balance;
            invokevirtual com.sun.media.sound.SoftMixingDataLine$Balance.getValue:()F
            f2d
            dstore 4 /* balance */
        start local 4 // double balance
         8: .line 471
            dload 4 /* balance */
            dconst_0
            dcmpl
            ifle 10
         9: .line 472
            aload 0 /* this */
            dup
            getfield com.sun.media.sound.SoftMixingDataLine.leftgain:F
            f2d
            dconst_1
            dload 4 /* balance */
            dsub
            dmul
            d2f
            putfield com.sun.media.sound.SoftMixingDataLine.leftgain:F
            goto 11
        10: .line 474
      StackMap locals: double
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.media.sound.SoftMixingDataLine.rightgain:F
            f2d
            dconst_1
            dload 4 /* balance */
            dadd
            dmul
            d2f
            putfield com.sun.media.sound.SoftMixingDataLine.rightgain:F
        end local 4 // double balance
        end local 2 // double gain
        11: .line 462
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 479
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 10.0
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.reverbsend_control:Lcom/sun/media/sound/SoftMixingDataLine$ReverbSend;
            invokevirtual com.sun.media.sound.SoftMixingDataLine$ReverbSend.getValue:()F
            f2d
            ldc 20.0
            ddiv
            invokestatic java.lang.Math.pow:(DD)D
            d2f
            putfield com.sun.media.sound.SoftMixingDataLine.eff1gain:F
        16: .line 480
            aload 0 /* this */
            ldc 10.0
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.chorussend_control:Lcom/sun/media/sound/SoftMixingDataLine$ChorusSend;
            invokevirtual com.sun.media.sound.SoftMixingDataLine$ChorusSend.getValue:()F
            f2d
            ldc 20.0
            ddiv
            invokestatic java.lang.Math.pow:(DD)D
            d2f
            putfield com.sun.media.sound.SoftMixingDataLine.eff2gain:F
        17: .line 482
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.apply_reverb:Lcom/sun/media/sound/SoftMixingDataLine$ApplyReverb;
            invokevirtual com.sun.media.sound.SoftMixingDataLine$ApplyReverb.getValue:()Z
            ifne 19
        18: .line 483
            aload 0 /* this */
            fconst_0
            putfield com.sun.media.sound.SoftMixingDataLine.eff1gain:F
        19: .line 485
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lcom/sun/media/sound/SoftMixingDataLine;
            2   11     2     gain  D
            8   11     4  balance  D
      Exception table:
        from    to  target  type
           1    12      13  any
          13    14      13  any

  final void sendEvent(javax.sound.sampled.LineEvent);
    descriptor: (Ljavax/sound/sampled/LineEvent;)V
    flags: (0x0010) ACC_FINAL
    Code:
      stack=2, locals=7, args_size=2
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
        start local 1 // javax.sound.sampled.LineEvent event
         0: .line 488
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.listeners:Ljava/util/List;
            invokeinterface java.util.List.size:()I
            ifne 2
         1: .line 489
            return
         2: .line 490
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.listeners:Ljava/util/List;
         3: .line 491
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.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: .line 490
            astore 2 /* listener_array */
        start local 2 // javax.sound.sampled.LineListener[] listener_array
         5: .line 492
            aload 2 /* listener_array */
            dup
            astore 6
            arraylength
            istore 5
            iconst_0
            istore 4
            goto 9
      StackMap locals: com.sun.media.sound.SoftMixingDataLine 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 /* listener */
        start local 3 // javax.sound.sampled.LineListener listener
         7: .line 493
            aload 3 /* listener */
            aload 1 /* event */
            invokeinterface javax.sound.sampled.LineListener.update:(Ljavax/sound/sampled/LineEvent;)V
        end local 3 // javax.sound.sampled.LineListener listener
         8: .line 492
            iinc 4 1
      StackMap locals:
      StackMap stack:
         9: iload 4
            iload 5
            if_icmplt 6
        10: .line 495
            return
        end local 2 // javax.sound.sampled.LineListener[] listener_array
        end local 1 // javax.sound.sampled.LineEvent event
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   11     0            this  Lcom/sun/media/sound/SoftMixingDataLine;
            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 final void addLineListener(javax.sound.sampled.LineListener);
    descriptor: (Ljavax/sound/sampled/LineListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
        start local 1 // javax.sound.sampled.LineListener listener
         0: .line 499
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.control_mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 500
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.listeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 499
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: com.sun.media.sound.SoftMixingDataLine javax.sound.sampled.LineListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 502
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.sound.sampled.LineListener listener
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/media/sound/SoftMixingDataLine;
            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 final void removeLineListener(javax.sound.sampled.LineListener);
    descriptor: (Ljavax/sound/sampled/LineListener;)V
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
        start local 1 // javax.sound.sampled.LineListener listener
         0: .line 506
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.control_mutex:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         1: .line 507
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.listeners:Ljava/util/List;
            aload 1 /* listener */
            invokeinterface java.util.List.add:(Ljava/lang/Object;)Z
            pop
         2: .line 506
            aload 2
            monitorexit
         3: goto 6
      StackMap locals: com.sun.media.sound.SoftMixingDataLine javax.sound.sampled.LineListener java.lang.Object
      StackMap stack: java.lang.Throwable
         4: aload 2
            monitorexit
         5: athrow
         6: .line 509
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.sound.sampled.LineListener listener
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lcom/sun/media/sound/SoftMixingDataLine;
            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 final javax.sound.sampled.Line$Info getLineInfo();
    descriptor: ()Ljavax/sound/sampled/Line$Info;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
         0: .line 513
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.info:Ljavax/sound/sampled/DataLine$Info;
            areturn
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/SoftMixingDataLine;

  public final javax.sound.sampled.Control getControl(javax.sound.sampled.Control$Type);
    descriptor: (Ljavax/sound/sampled/Control$Type;)Ljavax/sound/sampled/Control;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
        start local 1 // javax.sound.sampled.Control$Type control
         0: .line 518
            aload 1 /* control */
            ifnull 7
         1: .line 519
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 520
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            iload 2 /* i */
            aaload
            invokevirtual javax.sound.sampled.Control.getType:()Ljavax/sound/sampled/Control$Type;
            aload 1 /* control */
            if_acmpne 5
         4: .line 521
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            iload 2 /* i */
            aaload
            areturn
         5: .line 519
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 525
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Unsupported control type : "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         8: .line 526
            aload 1 /* control */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 525
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        end local 1 // javax.sound.sampled.Control$Type control
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   10     0     this  Lcom/sun/media/sound/SoftMixingDataLine;
            0   10     1  control  Ljavax/sound/sampled/Control$Type;
            2    7     2        i  I
    MethodParameters:
         Name  Flags
      control  

  public final javax.sound.sampled.Control[] getControls();
    descriptor: ()[Ljavax/sound/sampled/Control;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
         0: .line 531
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            arraylength
            invokestatic java.util.Arrays.copyOf:([Ljava/lang/Object;I)[Ljava/lang/Object;
            checkcast javax.sound.sampled.Control[]
            areturn
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/SoftMixingDataLine;

  public final boolean isControlSupported(javax.sound.sampled.Control$Type);
    descriptor: (Ljavax/sound/sampled/Control$Type;)Z
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=2, locals=3, args_size=2
        start local 0 // com.sun.media.sound.SoftMixingDataLine this
        start local 1 // javax.sound.sampled.Control$Type control
         0: .line 536
            aload 1 /* control */
            ifnull 7
         1: .line 537
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 6
         3: .line 538
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            iload 2 /* i */
            aaload
            invokevirtual javax.sound.sampled.Control.getType:()Ljavax/sound/sampled/Control$Type;
            aload 1 /* control */
            if_acmpne 5
         4: .line 539
            iconst_1
            ireturn
         5: .line 537
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 2 /* i */
            aload 0 /* this */
            getfield com.sun.media.sound.SoftMixingDataLine.controls:[Ljavax/sound/sampled/Control;
            arraylength
            if_icmplt 3
        end local 2 // int i
         7: .line 543
      StackMap locals:
      StackMap stack:
            iconst_0
            ireturn
        end local 1 // javax.sound.sampled.Control$Type control
        end local 0 // com.sun.media.sound.SoftMixingDataLine this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    8     0     this  Lcom/sun/media/sound/SoftMixingDataLine;
            0    8     1  control  Ljavax/sound/sampled/Control$Type;
            2    7     2        i  I
    MethodParameters:
         Name  Flags
      control  
}
SourceFile: "SoftMixingDataLine.java"
NestMembers:
  com.sun.media.sound.SoftMixingDataLine$1  com.sun.media.sound.SoftMixingDataLine$ApplyReverb  com.sun.media.sound.SoftMixingDataLine$AudioFloatInputStreamResampler  com.sun.media.sound.SoftMixingDataLine$Balance  com.sun.media.sound.SoftMixingDataLine$ChorusSend  com.sun.media.sound.SoftMixingDataLine$Gain  com.sun.media.sound.SoftMixingDataLine$Mute  com.sun.media.sound.SoftMixingDataLine$Pan  com.sun.media.sound.SoftMixingDataLine$ReverbSend
InnerClasses:
  com.sun.media.sound.SoftMixingDataLine$1
  private final ApplyReverb = com.sun.media.sound.SoftMixingDataLine$ApplyReverb of com.sun.media.sound.SoftMixingDataLine
  protected final AudioFloatInputStreamResampler = com.sun.media.sound.SoftMixingDataLine$AudioFloatInputStreamResampler of com.sun.media.sound.SoftMixingDataLine
  private final Balance = com.sun.media.sound.SoftMixingDataLine$Balance of com.sun.media.sound.SoftMixingDataLine
  private final ChorusSend = com.sun.media.sound.SoftMixingDataLine$ChorusSend of com.sun.media.sound.SoftMixingDataLine
  private final Gain = com.sun.media.sound.SoftMixingDataLine$Gain of com.sun.media.sound.SoftMixingDataLine
  private final Mute = com.sun.media.sound.SoftMixingDataLine$Mute of com.sun.media.sound.SoftMixingDataLine
  private final Pan = com.sun.media.sound.SoftMixingDataLine$Pan of com.sun.media.sound.SoftMixingDataLine
  private final ReverbSend = com.sun.media.sound.SoftMixingDataLine$ReverbSend of com.sun.media.sound.SoftMixingDataLine
  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 Type = javax.sound.sampled.FloatControl$Type of javax.sound.sampled.FloatControl
  public Info = javax.sound.sampled.Line$Info of javax.sound.sampled.Line