class com.sun.media.sound.DirectAudioDevice$DirectDL extends com.sun.media.sound.AbstractDataLine implements com.sun.media.sound.EventDispatcher$LineMonitor
  minor version: 0
  major version: 59
  flags: flags: (0x0020) ACC_SUPER
  this_class: com.sun.media.sound.DirectAudioDevice$DirectDL
  super_class: com.sun.media.sound.AbstractDataLine
{
  protected final int mixerIndex;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected final int deviceID;
    descriptor: I
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected long id;
    descriptor: J
    flags: (0x0004) ACC_PROTECTED

  protected int waitTime;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected volatile boolean flushing;
    descriptor: Z
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected final boolean isSource;
    descriptor: Z
    flags: (0x0014) ACC_PROTECTED, ACC_FINAL

  protected volatile long bytePosition;
    descriptor: J
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected volatile boolean doIO;
    descriptor: Z
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected volatile boolean stoppedWritten;
    descriptor: Z
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected volatile boolean drained;
    descriptor: Z
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected boolean monitoring;
    descriptor: Z
    flags: (0x0004) ACC_PROTECTED

  protected int softwareConversionSize;
    descriptor: I
    flags: (0x0004) ACC_PROTECTED

  protected javax.sound.sampled.AudioFormat hardwareFormat;
    descriptor: Ljavax/sound/sampled/AudioFormat;
    flags: (0x0004) ACC_PROTECTED

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

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

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

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

  private float leftGain;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  private float rightGain;
    descriptor: F
    flags: (0x0002) ACC_PRIVATE

  protected volatile boolean noService;
    descriptor: Z
    flags: (0x0044) ACC_PROTECTED, ACC_VOLATILE

  protected java.lang.Object lockNative;
    descriptor: Ljava/lang/Object;
    flags: (0x0004) ACC_PROTECTED

  protected static java.lang.Object lockLast;
    descriptor: Ljava/lang/Object;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  protected static com.sun.media.sound.DirectAudioDevice$DirectDL lastOpened;
    descriptor: Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=2, locals=0, args_size=0
         0: .line 400
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lockLast:Ljava/lang/Object;
         1: .line 402
            return
      LocalVariableTable:
        Start  End  Slot  Name  Signature

  protected void <init>(javax.sound.sampled.DataLine$Info, com.sun.media.sound.DirectAudioDevice, javax.sound.sampled.AudioFormat, int, int, int, boolean);
    descriptor: (Ljavax/sound/sampled/DataLine$Info;Lcom/sun/media/sound/DirectAudioDevice;Ljavax/sound/sampled/AudioFormat;IIIZ)V
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=6, locals=8, args_size=8
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
        start local 1 // javax.sound.sampled.DataLine$Info info
        start local 2 // com.sun.media.sound.DirectAudioDevice mixer
        start local 3 // javax.sound.sampled.AudioFormat format
        start local 4 // int bufferSize
        start local 5 // int mixerIndex
        start local 6 // int deviceID
        start local 7 // boolean isSource
         0: .line 412
            aload 0 /* this */
            aload 1 /* info */
            aload 2 /* mixer */
            aconst_null
            aload 3 /* format */
            iload 4 /* bufferSize */
            invokespecial com.sun.media.sound.AbstractDataLine.<init>:(Ljavax/sound/sampled/DataLine$Info;Lcom/sun/media/sound/AbstractMixer;[Ljavax/sound/sampled/Control;Ljavax/sound/sampled/AudioFormat;I)V
         1: .line 377
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
         2: .line 380
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
         3: .line 381
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
         4: .line 382
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
         5: .line 383
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
         6: .line 387
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
         7: .line 390
            aload 0 /* this */
            new com.sun.media.sound.DirectAudioDevice$DirectDL$Gain
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Gain.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.gainControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
         8: .line 391
            aload 0 /* this */
            new com.sun.media.sound.DirectAudioDevice$DirectDL$Mute
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Mute.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.muteControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
         9: .line 392
            aload 0 /* this */
            new com.sun.media.sound.DirectAudioDevice$DirectDL$Balance
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Balance.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.balanceControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
        10: .line 393
            aload 0 /* this */
            new com.sun.media.sound.DirectAudioDevice$DirectDL$Pan
            dup
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL$Pan.<init>:(Lcom/sun/media/sound/DirectAudioDevice$DirectDL;)V
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.panControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Pan;
        11: .line 395
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
        12: .line 398
            aload 0 /* this */
            new java.lang.Object
            dup
            invokespecial java.lang.Object.<init>:()V
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
        13: .line 414
            aload 0 /* this */
            iload 5 /* mixerIndex */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.mixerIndex:I
        14: .line 415
            aload 0 /* this */
            iload 6 /* deviceID */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.deviceID:I
        15: .line 416
            aload 0 /* this */
            bipush 10
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
        16: .line 417
            aload 0 /* this */
            iload 7 /* isSource */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
        17: .line 419
            return
        end local 7 // boolean isSource
        end local 6 // int deviceID
        end local 5 // int mixerIndex
        end local 4 // int bufferSize
        end local 3 // javax.sound.sampled.AudioFormat format
        end local 2 // com.sun.media.sound.DirectAudioDevice mixer
        end local 1 // javax.sound.sampled.DataLine$Info info
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   18     0        this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            0   18     1        info  Ljavax/sound/sampled/DataLine$Info;
            0   18     2       mixer  Lcom/sun/media/sound/DirectAudioDevice;
            0   18     3      format  Ljavax/sound/sampled/AudioFormat;
            0   18     4  bufferSize  I
            0   18     5  mixerIndex  I
            0   18     6    deviceID  I
            0   18     7    isSource  Z
    MethodParameters:
            Name  Flags
      info        
      mixer       
      format      
      bufferSize  
      mixerIndex  
      deviceID    
      isSource    

  void implOpen(javax.sound.sampled.AudioFormat, int);
    descriptor: (Ljavax/sound/sampled/AudioFormat;I)V
    flags: (0x0000) 
    Code:
      stack=12, locals=6, args_size=3
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
        start local 1 // javax.sound.sampled.AudioFormat format
        start local 2 // int bufferSize
         0: .line 430
            aload 1 /* format */
            invokestatic com.sun.media.sound.Toolkit.isFullySpecifiedAudioFormat:(Ljavax/sound/sampled/AudioFormat;)V
         1: .line 433
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            ifne 3
         2: .line 434
            invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
         3: .line 436
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 3 /* encoding */
        start local 3 // int encoding
         4: .line 437
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.ULAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 438
            iconst_1
            istore 3 /* encoding */
         6: .line 439
            goto 9
         7: .line 440
      StackMap locals: int
      StackMap stack:
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.ALAW:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifeq 9
         8: .line 441
            iconst_2
            istore 3 /* encoding */
         9: .line 444
      StackMap locals:
      StackMap stack:
            iload 2 /* bufferSize */
            iconst_m1
            if_icmpgt 11
        10: .line 445
            aload 1 /* format */
            ldc 500
            invokestatic com.sun.media.sound.Toolkit.millis2bytes:(Ljavax/sound/sampled/AudioFormat;J)J
            l2i
            istore 2 /* bufferSize */
        11: .line 448
      StackMap locals:
      StackMap stack:
            aconst_null
            astore 4 /* ddli */
        start local 4 // com.sun.media.sound.DirectAudioDevice$DirectDLI ddli
        12: .line 449
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.info:Ljavax/sound/sampled/Line$Info;
            instanceof com.sun.media.sound.DirectAudioDevice$DirectDLI
            ifeq 14
        13: .line 450
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.info:Ljavax/sound/sampled/Line$Info;
            checkcast com.sun.media.sound.DirectAudioDevice$DirectDLI
            astore 4 /* ddli */
        14: .line 454
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDLI
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            ifeq 31
        15: .line 455
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_SIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifne 19
        16: .line 456
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getEncoding:()Ljavax/sound/sampled/AudioFormat$Encoding;
            getstatic javax.sound.sampled.AudioFormat$Encoding.PCM_UNSIGNED:Ljavax/sound/sampled/AudioFormat$Encoding;
            invokevirtual javax.sound.sampled.AudioFormat$Encoding.equals:(Ljava/lang/Object;)Z
            ifne 19
        17: .line 458
            aload 0 /* this */
            iconst_0
            anewarray javax.sound.sampled.Control
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
        18: .line 459
            goto 31
        19: .line 460
      StackMap locals:
      StackMap stack:
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
            iconst_2
            if_icmpgt 21
        20: .line 461
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
            bipush 16
            if_icmple 23
        21: .line 463
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            anewarray javax.sound.sampled.Control
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
        22: .line 464
            goto 31
        23: .line 465
      StackMap locals:
      StackMap stack:
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
            iconst_1
            if_icmpne 26
        24: .line 466
            aload 0 /* this */
            iconst_2
            anewarray javax.sound.sampled.Control
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
        25: .line 467
            goto 29
        26: .line 468
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_4
            anewarray javax.sound.sampled.Control
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
        27: .line 469
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
            iconst_2
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.balanceControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
            aastore
        28: .line 473
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
            iconst_3
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.panControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Pan;
            aastore
        29: .line 475
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
            iconst_0
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.gainControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
            aastore
        30: .line 476
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.controls:[Ljavax/sound/sampled/Control;
            iconst_1
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.muteControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
            aastore
        31: .line 481
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* format */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
        32: .line 484
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
        33: .line 485
            aload 4 /* ddli */
            ifnull 38
            aload 4 /* ddli */
            aload 1 /* format */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDLI.isFormatSupportedInHardware:(Ljavax/sound/sampled/AudioFormat;)Z
            ifne 38
        34: .line 486
            aload 1 /* format */
            invokestatic com.sun.media.sound.DirectAudioDevice.getSignOrEndianChangedFormat:(Ljavax/sound/sampled/AudioFormat;)Ljavax/sound/sampled/AudioFormat;
            astore 5 /* newFormat */
        start local 5 // javax.sound.sampled.AudioFormat newFormat
        35: .line 487
            aload 4 /* ddli */
            aload 5 /* newFormat */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDLI.isFormatSupportedInHardware:(Ljavax/sound/sampled/AudioFormat;)Z
            ifeq 38
        36: .line 489
            aload 0 /* this */
            aload 5 /* newFormat */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
        37: .line 491
            aload 0 /* this */
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
            idiv
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
        end local 5 // javax.sound.sampled.AudioFormat newFormat
        38: .line 502
      StackMap locals:
      StackMap stack:
            iload 2 /* bufferSize */
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            idiv
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            imul
            istore 2 /* bufferSize */
        39: .line 504
            getstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lockLast:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        40: .line 505
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.mixerIndex:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.deviceID:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
        41: .line 506
            iload 3 /* encoding */
        42: .line 507
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        43: .line 508
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
        44: .line 509
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
        45: .line 510
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        46: .line 511
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            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
        47: .line 512
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
        48: .line 513
            iload 2 /* bufferSize */
        49: .line 505
            invokestatic com.sun.media.sound.DirectAudioDevice.nOpen:(IIZIFIIIZZI)J
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
        50: .line 515
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifne 67
        51: .line 521
            getstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            ifnull 65
        52: .line 522
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            getstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.matches:(Ljavax/sound/sampled/AudioFormat;)Z
            ifeq 65
        53: .line 523
            getstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.implClose:()V
        54: .line 524
            aconst_null
            putstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
        55: .line 526
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.mixerIndex:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.deviceID:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
        56: .line 527
            iload 3 /* encoding */
        57: .line 528
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getSampleRate:()F
        58: .line 529
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getSampleSizeInBits:()I
        59: .line 530
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
        60: .line 531
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
        61: .line 532
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            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
        62: .line 533
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.hardwareFormat:Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.isBigEndian:()Z
        63: .line 534
            iload 2 /* bufferSize */
        64: .line 526
            invokestatic com.sun.media.sound.DirectAudioDevice.nOpen:(IIZIFIIIZZI)J
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
        65: .line 537
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifne 67
        66: .line 539
            new javax.sound.sampled.LineUnavailableException
            dup
            new java.lang.StringBuilder
            dup
            ldc "line with format "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 1 /* format */
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
            ldc " not supported."
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial javax.sound.sampled.LineUnavailableException.<init>:(Ljava/lang/String;)V
            athrow
        67: .line 542
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            putstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
        68: .line 504
            aload 5
            monitorexit
        69: goto 72
      StackMap locals:
      StackMap stack: java.lang.Throwable
        70: aload 5
            monitorexit
        71: athrow
        72: .line 545
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nGetBufferSize:(JZ)I
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
        73: .line 546
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
            iconst_1
            if_icmpge 75
        74: .line 548
            aload 0 /* this */
            iload 2 /* bufferSize */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
        75: .line 550
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* format */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.format:Ljavax/sound/sampled/AudioFormat;
        76: .line 552
            aload 0 /* this */
            aload 1 /* format */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bufferSize:I
            i2l
            invokestatic com.sun.media.sound.Toolkit.bytes2millis:(Ljavax/sound/sampled/AudioFormat;J)J
            l2i
            iconst_4
            idiv
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
        77: .line 553
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
            bipush 10
            if_icmpge 80
        78: .line 554
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
        79: .line 555
            goto 82
        80: .line 556
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
            sipush 1000
            if_icmple 82
        81: .line 559
            aload 0 /* this */
            sipush 1000
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
        82: .line 561
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
        83: .line 562
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
        84: .line 563
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
        85: .line 564
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.calcVolume:()V
        86: .line 567
            return
        end local 4 // com.sun.media.sound.DirectAudioDevice$DirectDLI ddli
        end local 3 // int encoding
        end local 2 // int bufferSize
        end local 1 // javax.sound.sampled.AudioFormat format
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0   87     0        this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            0   87     1      format  Ljavax/sound/sampled/AudioFormat;
            0   87     2  bufferSize  I
            4   87     3    encoding  I
           12   87     4        ddli  Lcom/sun/media/sound/DirectAudioDevice$DirectDLI;
           35   38     5   newFormat  Ljavax/sound/sampled/AudioFormat;
      Exception table:
        from    to  target  type
          40    69      70  any
          70    71      70  any
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException
    MethodParameters:
            Name  Flags
      format      
      bufferSize  

  void implStart();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 574
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            ifne 2
         1: .line 575
            invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
         2: .line 578
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 580
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nStart:(JZ)V
         4: .line 578
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 583
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.requiresServicing:()Z
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
         9: .line 584
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
            ifeq 11
        10: .line 585
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.addLineMonitor:(Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
        11: .line 588
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
        12: .line 593
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            ifeq 15
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
            ifeq 15
        13: .line 594
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
        14: .line 595
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
        15: .line 599
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   16     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any

  void implStop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 605
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            ifne 2
         1: .line 606
            invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
         2: .line 609
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
            ifeq 5
         3: .line 610
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.removeLineMonitor:(Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
         4: .line 611
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
         5: .line 613
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         6: .line 614
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nStop:(JZ)V
         7: .line 619
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
         8: .line 613
            aload 1
            monitorexit
         9: goto 12
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
      StackMap stack: java.lang.Throwable
        10: aload 1
            monitorexit
        11: athrow
        12: .line 622
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
        13: .line 623
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
        14: .line 622
            aload 1
            monitorexit
        15: goto 18
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
      StackMap stack: java.lang.Throwable
        16: aload 1
            monitorexit
        17: athrow
        18: .line 625
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
        19: .line 626
            aload 0 /* this */
            iconst_0
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
        20: .line 627
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
        21: .line 630
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   22     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
      Exception table:
        from    to  target  type
           6     9      10  any
          10    11      10  any
          13    15      16  any
          16    17      16  any

  void implClose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=5, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 636
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            ifne 2
         1: .line 637
            invokestatic com.sun.media.sound.JSSecurityManager.checkRecordPermission:()V
         2: .line 641
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
            ifeq 5
         3: .line 642
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.removeLineMonitor:(Lcom/sun/media/sound/EventDispatcher$LineMonitor;)V
         4: .line 643
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
         5: .line 646
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
         6: .line 647
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lstore 1 /* oldID */
        start local 1 // long oldID
         7: .line 648
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
         8: .line 649
            getstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lockLast:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         9: .line 650
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 4
            monitorenter
        10: .line 651
            lload 1 /* oldID */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nClose:(JZ)V
        11: .line 652
            getstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            aload 0 /* this */
            if_acmpne 13
        12: .line 653
            aconst_null
            putstatic com.sun.media.sound.DirectAudioDevice$DirectDL.lastOpened:Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
        13: .line 650
      StackMap locals: long java.lang.Object java.lang.Object
      StackMap stack:
            aload 4
            monitorexit
        14: goto 17
      StackMap locals:
      StackMap stack: java.lang.Throwable
        15: aload 4
            monitorexit
        16: athrow
        17: .line 649
      StackMap locals:
      StackMap stack:
            aload 3
            monitorexit
        18: goto 21
      StackMap locals:
      StackMap stack: java.lang.Throwable
        19: aload 3
            monitorexit
        20: athrow
        21: .line 656
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
        22: .line 657
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
        23: .line 659
            return
        end local 1 // long oldID
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   24     0   this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            7   24     1  oldID  J
      Exception table:
        from    to  target  type
          10    14      15  any
          15    16      15  any
           9    18      19  any
          19    20      19  any

  public int available();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 664
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifne 2
         1: .line 665
            iconst_0
            ireturn
         2: .line 667
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 1 /* a */
        start local 1 // int a
         3: .line 668
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         4: .line 669
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 6
         5: .line 670
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nAvailable:(JZ)I
            istore 1 /* a */
         6: .line 668
      StackMap locals: int java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
         7: goto 10
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 672
      StackMap locals:
      StackMap stack:
            iload 1 /* a */
            ireturn
        end local 1 // int a
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            3   11     1     a  I
      Exception table:
        from    to  target  type
           4     7       8  any
           8     9       8  any

  public void drain();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=7, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 677
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
         1: .line 681
            iconst_0
            istore 1 /* counter */
        start local 1 // int counter
         2: .line 682
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getLongFramePosition:()J
            lstore 2 /* startPos */
        start local 2 // long startPos
         3: .line 683
            iconst_0
            istore 4 /* posChanged */
        start local 4 // boolean posChanged
         4: .line 684
            goto 32
         5: .line 685
      StackMap locals: int long int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
         6: .line 686
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifeq 7
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 7
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nIsStillDraining:(JZ)Z
            ifne 9
         7: .line 687
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 5
            monitorexit
         8: goto 33
         9: .line 685
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        10: goto 13
      StackMap locals:
      StackMap stack: java.lang.Throwable
        11: aload 5
            monitorexit
        12: athrow
        13: .line 690
      StackMap locals:
      StackMap stack:
            iload 1 /* counter */
            iconst_5
            irem
            iconst_4
            if_icmpne 23
        14: .line 691
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getLongFramePosition:()J
            lstore 5 /* thisFramePos */
        start local 5 // long thisFramePos
        15: .line 692
            iload 4 /* posChanged */
            lload 5 /* thisFramePos */
            lload 2 /* startPos */
            lcmp
            ifeq 16
            iconst_1
            goto 17
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int long
      StackMap stack: int
        16: iconst_0
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int long
      StackMap stack: int int
        17: ior
            istore 4 /* posChanged */
        18: .line 693
            iload 1 /* counter */
            bipush 50
            irem
            bipush 45
            if_icmple 23
        19: .line 696
            iload 4 /* posChanged */
            ifne 21
        20: .line 698
            goto 33
        21: .line 700
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* posChanged */
        22: .line 701
            lload 5 /* thisFramePos */
            lstore 2 /* startPos */
        end local 5 // long thisFramePos
        23: .line 704
      StackMap locals:
      StackMap stack:
            iinc 1 /* counter */ 1
        24: .line 705
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            dup
            astore 5
            monitorenter
        25: .line 707
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            ldc 10
            invokevirtual java.lang.Object.wait:(J)V
        26: .line 708
            goto 28
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL int long int java.lang.Object
      StackMap stack: java.lang.InterruptedException
        27: pop
        28: .line 705
      StackMap locals:
      StackMap stack:
            aload 5
            monitorexit
        29: goto 32
      StackMap locals:
      StackMap stack: java.lang.Throwable
        30: aload 5
            monitorexit
        31: athrow
        32: .line 684
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
            ifeq 5
        33: .line 712
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 35
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifeq 35
        34: .line 713
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
        35: .line 715
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
        36: .line 716
            return
        end local 4 // boolean posChanged
        end local 2 // long startPos
        end local 1 // int counter
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0   37     0          this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            2   37     1       counter  I
            3   37     2      startPos  J
            4   37     4    posChanged  Z
           15   23     5  thisFramePos  J
      Exception table:
        from    to  target  type
           6     8      11  any
           9    10      11  any
          11    12      11  any
          25    26      27  Class java.lang.InterruptedException
          25    29      30  any
          30    31      30  any

  public void flush();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 719
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifeq 16
         1: .line 721
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
         2: .line 722
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 723
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         4: .line 722
            aload 1
            monitorexit
         5: goto 8
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL java.lang.Object
      StackMap stack: java.lang.Throwable
         6: aload 1
            monitorexit
         7: athrow
         8: .line 725
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         9: .line 726
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifeq 11
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 11
        10: .line 728
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nFlush:(JZ)V
        11: .line 725
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
        12: goto 15
      StackMap locals:
      StackMap stack: java.lang.Throwable
        13: aload 1
            monitorexit
        14: athrow
        15: .line 731
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
        16: .line 733
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   17     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
      Exception table:
        from    to  target  type
           3     5       6  any
           6     7       6  any
           9    12      13  any
          13    14      13  any

  public long getLongFramePosition();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=4, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 737
            lconst_0
            lstore 1 /* pos */
        start local 1 // long pos
         1: .line 738
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 3
            monitorenter
         2: .line 739
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 4
         3: .line 740
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
            invokestatic com.sun.media.sound.DirectAudioDevice.nGetBytePosition:(JZJ)J
            lstore 1 /* pos */
         4: .line 738
      StackMap locals: long java.lang.Object
      StackMap stack:
            aload 3
            monitorexit
         5: goto 8
      StackMap locals:
      StackMap stack: java.lang.Throwable
         6: aload 3
            monitorexit
         7: athrow
         8: .line 743
      StackMap locals:
      StackMap stack:
            lload 1 /* pos */
            lconst_0
            lcmp
            ifge 10
         9: .line 746
            lconst_0
            lstore 1 /* pos */
        10: .line 748
      StackMap locals:
      StackMap stack:
            lload 1 /* pos */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            i2l
            ldiv
            lreturn
        end local 1 // long pos
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   11     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            1   11     1   pos  J
      Exception table:
        from    to  target  type
           2     5       6  any
           6     7       6  any

  public int write(byte[], int, int);
    descriptor: ([BII)I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=8, locals=7, args_size=4
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
        start local 1 // byte[] b
        start local 2 // int off
        start local 3 // int len
         0: .line 758
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
         1: .line 759
            iload 3 /* len */
            ifne 3
         2: .line 760
            iconst_0
            ireturn
         3: .line 762
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            ifge 5
         4: .line 763
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "illegal len: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         5: .line 765
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            irem
            ifeq 10
         6: .line 766
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "illegal request to write non-integral number of frames ("
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         7: .line 768
            iload 3 /* len */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes, "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         8: .line 769
            ldc "frameSize = "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " bytes)"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         9: .line 766
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
        10: .line 771
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            ifge 12
        11: .line 772
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            iload 2 /* off */
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
            athrow
        12: .line 774
      StackMap locals:
      StackMap stack:
            iload 2 /* off */
            i2l
            iload 3 /* len */
            i2l
            ladd
            aload 1 /* b */
            arraylength
            i2l
            lcmp
            ifle 14
        13: .line 775
            new java.lang.ArrayIndexOutOfBoundsException
            dup
            aload 1 /* b */
            arraylength
            invokespecial java.lang.ArrayIndexOutOfBoundsException.<init>:(I)V
            athrow
        14: .line 778
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.isActive:()Z
            ifne 17
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 17
        15: .line 781
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setActive:(Z)V
        16: .line 782
            aload 0 /* this */
            iconst_1
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.setStarted:(Z)V
        17: .line 784
      StackMap locals:
      StackMap stack:
            iconst_0
            istore 4 /* written */
        start local 4 // int written
        18: .line 785
            goto 48
        19: .line 786
      StackMap locals: int
      StackMap stack:
            iconst_0
            istore 5 /* thisWritten */
        start local 5 // int thisWritten
        20: .line 787
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        21: .line 788
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 26
        22: .line 789
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 1 /* b */
            iload 2 /* off */
            iload 3 /* len */
        23: .line 790
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.softwareConversionSize:I
        24: .line 791
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
        25: .line 789
            invokestatic com.sun.media.sound.DirectAudioDevice.nWrite:(J[BIIIFF)I
            istore 5 /* thisWritten */
        26: .line 792
      StackMap locals: int java.lang.Object
      StackMap stack:
            iload 5 /* thisWritten */
            ifge 29
        27: .line 794
            aload 6
            monitorexit
        28: goto 49
        29: .line 796
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            dup
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
            iload 5 /* thisWritten */
            i2l
            ladd
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.bytePosition:J
        30: .line 797
            iload 5 /* thisWritten */
            ifle 32
        31: .line 798
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.drained:Z
        32: .line 787
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        33: goto 36
      StackMap locals:
      StackMap stack: java.lang.Throwable
        34: aload 6
            monitorexit
        35: athrow
        36: .line 801
      StackMap locals:
      StackMap stack:
            iload 3 /* len */
            iload 5 /* thisWritten */
            isub
            istore 3 /* len */
        37: .line 802
            iload 4 /* written */
            iload 5 /* thisWritten */
            iadd
            istore 4 /* written */
        38: .line 803
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 49
            iload 3 /* len */
            ifle 49
        39: .line 804
            iload 2 /* off */
            iload 5 /* thisWritten */
            iadd
            istore 2 /* off */
        40: .line 805
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            dup
            astore 6
            monitorenter
        41: .line 807
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lock:Ljava/lang/Object;
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.waitTime:I
            i2l
            invokevirtual java.lang.Object.wait:(J)V
        42: .line 808
            goto 44
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectDL byte[] int int int int java.lang.Object
      StackMap stack: java.lang.InterruptedException
        43: pop
        44: .line 805
      StackMap locals:
      StackMap stack:
            aload 6
            monitorexit
        45: goto 48
      StackMap locals:
      StackMap stack: java.lang.Throwable
        46: aload 6
            monitorexit
        47: athrow
        end local 5 // int thisWritten
        48: .line 785
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
            ifeq 19
        49: .line 814
      StackMap locals:
      StackMap stack:
            iload 4 /* written */
            ifle 51
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifne 51
        50: .line 815
            aload 0 /* this */
            iconst_1
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.stoppedWritten:Z
        51: .line 817
      StackMap locals:
      StackMap stack:
            iload 4 /* written */
            ireturn
        end local 4 // int written
        end local 3 // int len
        end local 2 // int off
        end local 1 // byte[] b
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   52     0         this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            0   52     1            b  [B
            0   52     2          off  I
            0   52     3          len  I
           18   52     4      written  I
           20   48     5  thisWritten  I
      Exception table:
        from    to  target  type
          21    28      34  any
          29    33      34  any
          34    35      34  any
          41    42      43  Class java.lang.InterruptedException
          41    45      46  any
          46    47      46  any
    MethodParameters:
      Name  Flags
      b     
      off   
      len   

  protected boolean requiresServicing();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 821
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nRequiresServicing:(JZ)Z
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;

  public void checkLine();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=2, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 826
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.lockNative:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         1: .line 827
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.monitoring:Z
            ifeq 7
         2: .line 828
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.doIO:Z
            ifeq 7
         3: .line 829
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            lconst_0
            lcmp
            ifeq 7
         4: .line 830
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.flushing:Z
            ifne 7
         5: .line 831
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.noService:Z
            ifne 7
         6: .line 832
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.isSource:Z
            invokestatic com.sun.media.sound.DirectAudioDevice.nService:(JZ)V
         7: .line 826
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 1
            monitorexit
         8: goto 11
      StackMap locals:
      StackMap stack: java.lang.Throwable
         9: aload 1
            monitorexit
        10: athrow
        11: .line 835
      StackMap locals:
      StackMap stack:
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   12     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
      Exception table:
        from    to  target  type
           1     8       9  any
           9    10       9  any

  private void calcVolume();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=3, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
         0: .line 838
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
            ifnonnull 2
         1: .line 839
            return
         2: .line 841
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.muteControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Mute;
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL$Mute.getValue:()Z
            ifeq 6
         3: .line 842
            aload 0 /* this */
            fconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
         4: .line 843
            aload 0 /* this */
            fconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
         5: .line 844
            return
         6: .line 846
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.gainControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Gain;
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL$Gain.getLinearGain:()F
            fstore 1 /* gain */
        start local 1 // float gain
         7: .line 847
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getChannels:()I
            iconst_1
            if_icmpne 11
         8: .line 849
            aload 0 /* this */
            fload 1 /* gain */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
         9: .line 850
            aload 0 /* this */
            fload 1 /* gain */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
        10: .line 851
            goto 18
        11: .line 853
      StackMap locals: float
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectDL.balanceControl:Lcom/sun/media/sound/DirectAudioDevice$DirectDL$Balance;
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectDL$Balance.getValue:()F
            fstore 2 /* bal */
        start local 2 // float bal
        12: .line 854
            fload 2 /* bal */
            fconst_0
            fcmpg
            ifge 16
        13: .line 856
            aload 0 /* this */
            fload 1 /* gain */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
        14: .line 857
            aload 0 /* this */
            fload 1 /* gain */
            fload 2 /* bal */
            fconst_1
            fadd
            fmul
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
        15: .line 858
            goto 18
        16: .line 859
      StackMap locals: float
      StackMap stack:
            aload 0 /* this */
            fload 1 /* gain */
            fconst_1
            fload 2 /* bal */
            fsub
            fmul
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.leftGain:F
        17: .line 860
            aload 0 /* this */
            fload 1 /* gain */
            putfield com.sun.media.sound.DirectAudioDevice$DirectDL.rightGain:F
        end local 2 // float bal
        18: .line 863
      StackMap locals:
      StackMap stack:
            return
        end local 1 // float gain
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectDL this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   19     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectDL;
            7   19     1  gain  F
           12   18     2   bal  F
}
SourceFile: "DirectAudioDevice.java"
NestHost: com.sun.media.sound.DirectAudioDevice
InnerClasses:
  private DirectDL = com.sun.media.sound.DirectAudioDevice$DirectDL of com.sun.media.sound.DirectAudioDevice
  private final Balance = com.sun.media.sound.DirectAudioDevice$DirectDL$Balance of com.sun.media.sound.DirectAudioDevice$DirectDL
  protected final Gain = com.sun.media.sound.DirectAudioDevice$DirectDL$Gain of com.sun.media.sound.DirectAudioDevice$DirectDL
  private final Mute = com.sun.media.sound.DirectAudioDevice$DirectDL$Mute of com.sun.media.sound.DirectAudioDevice$DirectDL
  private final Pan = com.sun.media.sound.DirectAudioDevice$DirectDL$Pan of com.sun.media.sound.DirectAudioDevice$DirectDL
  private final DirectDLI = com.sun.media.sound.DirectAudioDevice$DirectDLI of com.sun.media.sound.DirectAudioDevice
  abstract LineMonitor = com.sun.media.sound.EventDispatcher$LineMonitor of com.sun.media.sound.EventDispatcher
  public Encoding = javax.sound.sampled.AudioFormat$Encoding of javax.sound.sampled.AudioFormat
  public Info = javax.sound.sampled.DataLine$Info of javax.sound.sampled.DataLine