final class com.sun.media.sound.DirectAudioDevice$DirectClip extends com.sun.media.sound.DirectAudioDevice$DirectDL implements javax.sound.sampled.Clip, java.lang.Runnable, com.sun.media.sound.AutoClosingClip
  minor version: 0
  major version: 59
  flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
  this_class: com.sun.media.sound.DirectAudioDevice$DirectClip
  super_class: com.sun.media.sound.DirectAudioDevice$DirectDL
{
  private java.lang.Thread thread;
    descriptor: Ljava/lang/Thread;
    flags: (0x0002) ACC_PRIVATE

  private byte[] audioData;
    descriptor: [B
    flags: (0x0002) ACC_PRIVATE

  private int frameSize;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int m_lengthInFrames;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int loopCount;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int clipBytePosition;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int newFramePosition;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int loopStartFrame;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private int loopEndFrame;
    descriptor: I
    flags: (0x0002) ACC_PRIVATE

  private boolean autoclosing;
    descriptor: Z
    flags: (0x0002) ACC_PRIVATE

  private void <init>(javax.sound.sampled.DataLine$Info, javax.sound.sampled.AudioFormat, int, com.sun.media.sound.DirectAudioDevice);
    descriptor: (Ljavax/sound/sampled/DataLine$Info;Ljavax/sound/sampled/AudioFormat;ILcom/sun/media/sound/DirectAudioDevice;)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=8, locals=5, args_size=5
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // javax.sound.sampled.DataLine$Info info
        start local 2 // javax.sound.sampled.AudioFormat format
        start local 3 // int bufferSize
        start local 4 // com.sun.media.sound.DirectAudioDevice mixer
         0: .line 1075
            aload 0 /* this */
            aload 1 /* info */
            aload 4 /* mixer */
            aload 2 /* format */
            iload 3 /* bufferSize */
            aload 4 /* mixer */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getMixerIndex:()I
            aload 4 /* mixer */
            invokevirtual com.sun.media.sound.DirectAudioDevice.getDeviceID:()I
            iconst_1
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL.<init>:(Ljavax/sound/sampled/DataLine$Info;Lcom/sun/media/sound/DirectAudioDevice;Ljavax/sound/sampled/AudioFormat;IIIZ)V
         1: .line 1058
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
         2: .line 1068
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.autoclosing:Z
         3: .line 1077
            return
        end local 4 // com.sun.media.sound.DirectAudioDevice mixer
        end local 3 // int bufferSize
        end local 2 // javax.sound.sampled.AudioFormat format
        end local 1 // javax.sound.sampled.DataLine$Info info
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0    4     1        info  Ljavax/sound/sampled/DataLine$Info;
            0    4     2      format  Ljavax/sound/sampled/AudioFormat;
            0    4     3  bufferSize  I
            0    4     4       mixer  Lcom/sun/media/sound/DirectAudioDevice;
    MethodParameters:
            Name  Flags
      info        
      format      
      bufferSize  
      mixer       

  public void open(javax.sound.sampled.AudioFormat, byte[], int, int);
    descriptor: (Ljavax/sound/sampled/AudioFormat;[BII)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=6, args_size=5
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // javax.sound.sampled.AudioFormat format
        start local 2 // byte[] data
        start local 3 // int offset
        start local 4 // int bufferSize
         0: .line 1085
            aload 1 /* format */
            invokestatic com.sun.media.sound.Toolkit.isFullySpecifiedAudioFormat:(Ljavax/sound/sampled/AudioFormat;)V
         1: .line 1087
            iload 4 /* bufferSize */
            newarray 8
            astore 5 /* newData */
        start local 5 // byte[] newData
         2: .line 1088
            aload 2 /* data */
            iload 3 /* offset */
            aload 5 /* newData */
            iconst_0
            iload 4 /* bufferSize */
            invokestatic java.lang.System.arraycopy:(Ljava/lang/Object;ILjava/lang/Object;II)V
         3: .line 1089
            aload 0 /* this */
            aload 1 /* format */
            aload 5 /* newData */
            iload 4 /* bufferSize */
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            idiv
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.open:(Ljavax/sound/sampled/AudioFormat;[BI)V
         4: .line 1090
            return
        end local 5 // byte[] newData
        end local 4 // int bufferSize
        end local 3 // int offset
        end local 2 // byte[] data
        end local 1 // javax.sound.sampled.AudioFormat format
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    5     0        this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0    5     1      format  Ljavax/sound/sampled/AudioFormat;
            0    5     2        data  [B
            0    5     3      offset  I
            0    5     4  bufferSize  I
            2    5     5     newData  [B
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException
    MethodParameters:
            Name  Flags
      format      
      data        
      offset      
      bufferSize  

  private void open(javax.sound.sampled.AudioFormat, byte[], int);
    descriptor: (Ljavax/sound/sampled/AudioFormat;[BI)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=6, args_size=4
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // javax.sound.sampled.AudioFormat format
        start local 2 // byte[] data
        start local 3 // int frameLength
         0: .line 1097
            aload 1 /* format */
            invokestatic com.sun.media.sound.Toolkit.isFullySpecifiedAudioFormat:(Ljavax/sound/sampled/AudioFormat;)V
         1: .line 1099
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.mixer:Lcom/sun/media/sound/AbstractMixer;
            dup
            astore 4
            monitorenter
         2: .line 1104
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.isOpen:()Z
            ifeq 6
         3: .line 1105
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Clip is already open with format "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         4: .line 1106
            ldc " and frame lengh of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         5: .line 1105
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         6: .line 1109
      StackMap locals: com.sun.media.sound.AbstractMixer
      StackMap stack:
            aload 0 /* this */
            aload 2 /* data */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
         7: .line 1110
            aload 0 /* this */
            aload 1 /* format */
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
         8: .line 1111
            aload 0 /* this */
            iload 3 /* frameLength */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.m_lengthInFrames:I
         9: .line 1113
            aload 0 /* this */
            lconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.bytePosition:J
        10: .line 1114
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
        11: .line 1115
            aload 0 /* this */
            iconst_m1
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
        12: .line 1116
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopStartFrame:I
        13: .line 1117
            aload 0 /* this */
            iload 3 /* frameLength */
            iconst_1
            isub
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopEndFrame:I
        14: .line 1118
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
        15: .line 1122
            aload 0 /* this */
            aload 1 /* format */
            aload 1 /* format */
            ldc 1000
            invokestatic com.sun.media.sound.Toolkit.millis2bytes:(Ljavax/sound/sampled/AudioFormat;J)J
            l2i
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.open:(Ljavax/sound/sampled/AudioFormat;I)V
        16: .line 1123
            goto 23
      StackMap locals:
      StackMap stack: javax.sound.sampled.LineUnavailableException
        17: astore 5 /* lue */
        start local 5 // javax.sound.sampled.LineUnavailableException lue
        18: .line 1124
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
        19: .line 1125
            aload 5 /* lue */
            athrow
        end local 5 // javax.sound.sampled.LineUnavailableException lue
        20: .line 1126
      StackMap locals:
      StackMap stack: java.lang.IllegalArgumentException
            astore 5 /* iae */
        start local 5 // java.lang.IllegalArgumentException iae
        21: .line 1127
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
        22: .line 1128
            aload 5 /* iae */
            athrow
        end local 5 // java.lang.IllegalArgumentException iae
        23: .line 1132
      StackMap locals:
      StackMap stack:
            bipush 6
            istore 5 /* priority */
        start local 5 // int priority
        24: .line 1134
            aload 0 /* this */
            aload 0 /* this */
        25: .line 1135
            ldc "Direct Clip"
        26: .line 1136
            iconst_1
        27: .line 1137
            iload 5 /* priority */
        28: .line 1138
            iconst_0
        29: .line 1134
            invokestatic com.sun.media.sound.JSSecurityManager.createThread:(Ljava/lang/Runnable;Ljava/lang/String;ZIZ)Ljava/lang/Thread;
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.thread:Ljava/lang/Thread;
        30: .line 1142
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.thread:Ljava/lang/Thread;
            invokevirtual java.lang.Thread.start:()V
        end local 5 // int priority
        31: .line 1099
            aload 4
            monitorexit
        32: goto 35
      StackMap locals:
      StackMap stack: java.lang.Throwable
        33: aload 4
            monitorexit
        34: athrow
        35: .line 1145
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.isAutoClosing:()Z
            ifeq 37
        36: .line 1146
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.autoClosingClipOpened:(Lcom/sun/media/sound/AutoClosingClip;)V
        37: .line 1149
      StackMap locals:
      StackMap stack:
            return
        end local 3 // int frameLength
        end local 2 // byte[] data
        end local 1 // javax.sound.sampled.AudioFormat format
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot         Name  Signature
            0   38     0         this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0   38     1       format  Ljavax/sound/sampled/AudioFormat;
            0   38     2         data  [B
            0   38     3  frameLength  I
           18   20     5          lue  Ljavax/sound/sampled/LineUnavailableException;
           21   23     5          iae  Ljava/lang/IllegalArgumentException;
           24   31     5     priority  I
      Exception table:
        from    to  target  type
          15    16      17  Class javax.sound.sampled.LineUnavailableException
          15    16      20  Class java.lang.IllegalArgumentException
           2    32      33  any
          33    34      33  any
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException
    MethodParameters:
             Name  Flags
      format       
      data         
      frameLength  

  public void open(javax.sound.sampled.AudioInputStream);
    descriptor: (Ljavax/sound/sampled/AudioInputStream;)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=10, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // javax.sound.sampled.AudioInputStream stream
         0: .line 1155
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.format:Ljavax/sound/sampled/AudioFormat;
            invokestatic com.sun.media.sound.Toolkit.isFullySpecifiedAudioFormat:(Ljavax/sound/sampled/AudioFormat;)V
         1: .line 1157
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.mixer:Lcom/sun/media/sound/AbstractMixer;
            dup
            astore 2
            monitorenter
         2: .line 1159
            aconst_null
            astore 3 /* streamData */
        start local 3 // byte[] streamData
         3: .line 1161
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.isOpen:()Z
            ifeq 7
         4: .line 1162
            new java.lang.IllegalStateException
            dup
            new java.lang.StringBuilder
            dup
            ldc "Clip is already open with format "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/Object;)Ljava/lang/StringBuilder;
         5: .line 1163
            ldc " and frame lengh of "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
         6: .line 1162
            invokespecial java.lang.IllegalStateException.<init>:(Ljava/lang/String;)V
            athrow
         7: .line 1165
      StackMap locals: com.sun.media.sound.AbstractMixer byte[]
      StackMap stack:
            aload 1 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFrameLength:()J
            l2i
            istore 4 /* lengthInFrames */
        start local 4 // int lengthInFrames
         8: .line 1168
            iconst_0
            istore 5 /* bytesRead */
        start local 5 // int bytesRead
         9: .line 1169
            iload 4 /* lengthInFrames */
            iconst_m1
            if_icmpeq 24
        10: .line 1171
            iload 4 /* lengthInFrames */
            aload 1 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            imul
            istore 6 /* arraysize */
        start local 6 // int arraysize
        11: .line 1172
            iload 6 /* arraysize */
            newarray 8
            astore 3 /* streamData */
        12: .line 1174
            iload 6 /* arraysize */
            istore 7 /* bytesRemaining */
        start local 7 // int bytesRemaining
        13: .line 1175
            iconst_0
            istore 8 /* thisRead */
        start local 8 // int thisRead
        14: .line 1176
            goto 22
        15: .line 1177
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip javax.sound.sampled.AudioInputStream com.sun.media.sound.AbstractMixer byte[] int int int int int
      StackMap stack:
            aload 1 /* stream */
            aload 3 /* streamData */
            iload 5 /* bytesRead */
            iload 7 /* bytesRemaining */
            invokevirtual javax.sound.sampled.AudioInputStream.read:([BII)I
            istore 8 /* thisRead */
        16: .line 1178
            iload 8 /* thisRead */
            ifle 20
        17: .line 1179
            iload 5 /* bytesRead */
            iload 8 /* thisRead */
            iadd
            istore 5 /* bytesRead */
        18: .line 1180
            iload 7 /* bytesRemaining */
            iload 8 /* thisRead */
            isub
            istore 7 /* bytesRemaining */
        19: .line 1181
            goto 22
        20: .line 1182
      StackMap locals:
      StackMap stack:
            iload 8 /* thisRead */
            ifne 22
        21: .line 1183
            invokestatic java.lang.Thread.yield:()V
        22: .line 1176
      StackMap locals:
      StackMap stack:
            iload 7 /* bytesRemaining */
            ifle 38
            iload 8 /* thisRead */
            ifge 15
        end local 8 // int thisRead
        end local 7 // int bytesRemaining
        end local 6 // int arraysize
        23: .line 1186
            goto 38
        24: .line 1191
      StackMap locals:
      StackMap stack:
            sipush 16384
            istore 6 /* MAX_READ_LIMIT */
        start local 6 // int MAX_READ_LIMIT
        25: .line 1192
            new com.sun.media.sound.DirectAudioDevice$DirectBAOS
            dup
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectBAOS.<init>:()V
            astore 7 /* dbaos */
        start local 7 // com.sun.media.sound.DirectAudioDevice$DirectBAOS dbaos
        26: .line 1193
            iload 6 /* MAX_READ_LIMIT */
            newarray 8
            astore 8 /* tmp */
        start local 8 // byte[] tmp
        27: .line 1194
            iconst_0
            istore 9 /* thisRead */
        start local 9 // int thisRead
        28: .line 1195
            goto 36
        29: .line 1196
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip javax.sound.sampled.AudioInputStream com.sun.media.sound.AbstractMixer byte[] int int int com.sun.media.sound.DirectAudioDevice$DirectBAOS byte[] int
      StackMap stack:
            aload 1 /* stream */
            aload 8 /* tmp */
            iconst_0
            aload 8 /* tmp */
            arraylength
            invokevirtual javax.sound.sampled.AudioInputStream.read:([BII)I
            istore 9 /* thisRead */
        30: .line 1197
            iload 9 /* thisRead */
            ifle 34
        31: .line 1198
            aload 7 /* dbaos */
            aload 8 /* tmp */
            iconst_0
            iload 9 /* thisRead */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectBAOS.write:([BII)V
        32: .line 1199
            iload 5 /* bytesRead */
            iload 9 /* thisRead */
            iadd
            istore 5 /* bytesRead */
        33: .line 1200
            goto 36
        34: .line 1201
      StackMap locals:
      StackMap stack:
            iload 9 /* thisRead */
            ifne 36
        35: .line 1202
            invokestatic java.lang.Thread.yield:()V
        36: .line 1195
      StackMap locals:
      StackMap stack:
            iload 9 /* thisRead */
            ifge 29
        37: .line 1205
            aload 7 /* dbaos */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectBAOS.getInternalBuffer:()[B
            astore 3 /* streamData */
        end local 9 // int thisRead
        end local 8 // byte[] tmp
        end local 7 // com.sun.media.sound.DirectAudioDevice$DirectBAOS dbaos
        end local 6 // int MAX_READ_LIMIT
        38: .line 1207
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip javax.sound.sampled.AudioInputStream com.sun.media.sound.AbstractMixer byte[] int int
      StackMap stack:
            iload 5 /* bytesRead */
            aload 1 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
            invokevirtual javax.sound.sampled.AudioFormat.getFrameSize:()I
            idiv
            istore 4 /* lengthInFrames */
        39: .line 1212
            aload 0 /* this */
            aload 1 /* stream */
            invokevirtual javax.sound.sampled.AudioInputStream.getFormat:()Ljavax/sound/sampled/AudioFormat;
            aload 3 /* streamData */
            iload 4 /* lengthInFrames */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.open:(Ljavax/sound/sampled/AudioFormat;[BI)V
        end local 5 // int bytesRead
        end local 4 // int lengthInFrames
        end local 3 // byte[] streamData
        40: .line 1157
            aload 2
            monitorexit
        41: goto 44
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip javax.sound.sampled.AudioInputStream com.sun.media.sound.AbstractMixer
      StackMap stack: java.lang.Throwable
        42: aload 2
            monitorexit
        43: athrow
        44: .line 1216
      StackMap locals:
      StackMap stack:
            return
        end local 1 // javax.sound.sampled.AudioInputStream stream
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   45     0            this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0   45     1          stream  Ljavax/sound/sampled/AudioInputStream;
            3   40     3      streamData  [B
            8   40     4  lengthInFrames  I
            9   40     5       bytesRead  I
           11   23     6       arraysize  I
           13   23     7  bytesRemaining  I
           14   23     8        thisRead  I
           25   38     6  MAX_READ_LIMIT  I
           26   38     7           dbaos  Lcom/sun/media/sound/DirectAudioDevice$DirectBAOS;
           27   38     8             tmp  [B
           28   38     9        thisRead  I
      Exception table:
        from    to  target  type
           2    41      42  any
          42    43      42  any
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException, java.io.IOException
    MethodParameters:
        Name  Flags
      stream  

  public int getFrameLength();
    descriptor: ()I
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1220
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.m_lengthInFrames:I
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;

  public long getMicrosecondLength();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1225
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFormat:()Ljavax/sound/sampled/AudioFormat;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            i2l
            invokestatic com.sun.media.sound.Toolkit.frames2micros:(Ljavax/sound/sampled/AudioFormat;J)J
            lreturn
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;

  public void setFramePosition(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // int frames
         0: .line 1232
            iload 1 /* frames */
            ifge 3
         1: .line 1233
            iconst_0
            istore 1 /* frames */
         2: .line 1234
            goto 5
         3: .line 1235
      StackMap locals:
      StackMap stack:
            iload 1 /* frames */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            if_icmplt 5
         4: .line 1236
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            istore 1 /* frames */
         5: .line 1238
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.doIO:Z
            ifeq 8
         6: .line 1239
            aload 0 /* this */
            iload 1 /* frames */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
         7: .line 1240
            goto 10
         8: .line 1241
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* frames */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            imul
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
         9: .line 1242
            aload 0 /* this */
            iconst_m1
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
        10: .line 1248
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* frames */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            imul
            i2l
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.bytePosition:J
        11: .line 1251
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.flush:()V
        12: .line 1255
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.lockNative:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
        13: .line 1256
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.doIO:Z
            ifeq 15
        14: .line 1257
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.id:J
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.isSource:Z
            iload 1 /* frames */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            imul
            i2l
            invokestatic com.sun.media.sound.DirectAudioDevice.nSetBytePosition:(JZJ)V
        15: .line 1255
      StackMap locals: java.lang.Object
      StackMap stack:
            aload 2
            monitorexit
        16: goto 19
      StackMap locals:
      StackMap stack: java.lang.Throwable
        17: aload 2
            monitorexit
        18: athrow
        19: .line 1267
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int frames
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   20     0    this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0   20     1  frames  I
      Exception table:
        from    to  target  type
          13    16      17  any
          17    18      17  any
    MethodParameters:
        Name  Flags
      frames  

  public long getLongFramePosition();
    descriptor: ()J
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1281
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL.getLongFramePosition:()J
            lreturn
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;

  public synchronized void setMicrosecondPosition(long);
    descriptor: (J)V
    flags: (0x0021) ACC_PUBLIC, ACC_SYNCHRONIZED
    Code:
      stack=3, locals=5, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // long microseconds
         0: .line 1288
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFormat:()Ljavax/sound/sampled/AudioFormat;
            lload 1 /* microseconds */
            invokestatic com.sun.media.sound.Toolkit.micros2frames:(Ljavax/sound/sampled/AudioFormat;J)J
            lstore 3 /* frames */
        start local 3 // long frames
         1: .line 1289
            aload 0 /* this */
            lload 3 /* frames */
            l2i
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.setFramePosition:(I)V
         2: .line 1292
            return
        end local 3 // long frames
        end local 1 // long microseconds
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    3     0          this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0    3     1  microseconds  J
            1    3     3        frames  J
    MethodParameters:
              Name  Flags
      microseconds  

  public void setLoopPoints(int, int);
    descriptor: (II)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=5, locals=3, args_size=3
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // int start
        start local 2 // int end
         0: .line 1297
            iload 1 /* start */
            iflt 1
            iload 1 /* start */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            if_icmplt 2
         1: .line 1298
      StackMap locals:
      StackMap stack:
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "illegal value for start: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 1 /* start */
            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
         2: .line 1300
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            if_icmplt 4
         3: .line 1301
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "illegal value for end: "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* end */
            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
         4: .line 1304
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            iconst_m1
            if_icmpne 8
         5: .line 1305
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            iconst_1
            isub
            istore 2 /* end */
         6: .line 1306
            iload 2 /* end */
            ifge 8
         7: .line 1307
            iconst_0
            istore 2 /* end */
         8: .line 1312
      StackMap locals:
      StackMap stack:
            iload 2 /* end */
            iload 1 /* start */
            if_icmpge 10
         9: .line 1313
            new java.lang.IllegalArgumentException
            dup
            new java.lang.StringBuilder
            dup
            ldc "End position "
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 2 /* end */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "  preceeds start position "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 1 /* start */
            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
        10: .line 1317
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* start */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopStartFrame:I
        11: .line 1318
            aload 0 /* this */
            iload 2 /* end */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopEndFrame:I
        12: .line 1322
            return
        end local 2 // int end
        end local 1 // int start
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   13     0   this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0   13     1  start  I
            0   13     2    end  I
    MethodParameters:
       Name  Flags
      start  
      end    

  public void loop(int);
    descriptor: (I)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // int count
         0: .line 1328
            aload 0 /* this */
            iload 1 /* count */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
         1: .line 1329
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.start:()V
         2: .line 1330
            return
        end local 1 // int count
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    3     0   this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0    3     1  count  I
    MethodParameters:
       Name  Flags
      count  

  void implOpen(javax.sound.sampled.AudioFormat, int);
    descriptor: (Ljavax/sound/sampled/AudioFormat;I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // javax.sound.sampled.AudioFormat format
        start local 2 // int bufferSize
         0: .line 1339
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
            ifnonnull 2
         1: .line 1340
            new java.lang.IllegalArgumentException
            dup
            ldc "illegal call to open() in interface Clip"
            invokespecial java.lang.IllegalArgumentException.<init>:(Ljava/lang/String;)V
            athrow
         2: .line 1342
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 1 /* format */
            iload 2 /* bufferSize */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL.implOpen:(Ljavax/sound/sampled/AudioFormat;I)V
         3: .line 1343
            return
        end local 2 // int bufferSize
        end local 1 // javax.sound.sampled.AudioFormat format
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            0    4     0        this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0    4     1      format  Ljavax/sound/sampled/AudioFormat;
            0    4     2  bufferSize  I
    Exceptions:
      throws javax.sound.sampled.LineUnavailableException
    MethodParameters:
            Name  Flags
      format      
      bufferSize  

  void implClose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1349
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.thread:Ljava/lang/Thread;
            astore 1 /* oldThread */
        start local 1 // java.lang.Thread oldThread
         1: .line 1350
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.thread:Ljava/lang/Thread;
         2: .line 1351
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.doIO:Z
         3: .line 1352
            aload 1 /* oldThread */
            ifnull 13
         4: .line 1354
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.lock:Ljava/lang/Object;
            dup
            astore 2
            monitorenter
         5: .line 1355
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.notifyAll:()V
         6: .line 1354
            aload 2
            monitorexit
         7: goto 10
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip java.lang.Thread java.lang.Object
      StackMap stack: java.lang.Throwable
         8: aload 2
            monitorexit
         9: athrow
        10: .line 1360
      StackMap locals:
      StackMap stack:
            aload 1 /* oldThread */
            ldc 2000
            invokevirtual java.lang.Thread.join:(J)V
        11: .line 1361
            goto 13
      StackMap locals:
      StackMap stack: java.lang.InterruptedException
        12: pop
        13: .line 1363
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL.implClose:()V
        14: .line 1365
            aload 0 /* this */
            aconst_null
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
        15: .line 1366
            aload 0 /* this */
            iconst_m1
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
        16: .line 1369
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.autoClosingClipClosed:(Lcom/sun/media/sound/AutoClosingClip;)V
        17: .line 1372
            return
        end local 1 // java.lang.Thread oldThread
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   18     0       this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            1   18     1  oldThread  Ljava/lang/Thread;
      Exception table:
        from    to  target  type
           5     7       8  any
           8     9       8  any
          10    11      12  Class java.lang.InterruptedException

  void implStart();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1377
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL.implStart:()V
         1: .line 1379
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;

  void implStop();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=2, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1384
            aload 0 /* this */
            invokespecial com.sun.media.sound.DirectAudioDevice$DirectDL.implStop:()V
         1: .line 1387
            aload 0 /* this */
            iconst_0
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
         2: .line 1390
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    3     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;

  public void run();
    descriptor: ()V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=4, locals=7, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1396
            goto 34
         1: .line 1397
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.doIO:Z
            ifne 33
         2: .line 1398
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.lock:Ljava/lang/Object;
            dup
            astore 1
            monitorenter
         3: .line 1400
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.lock:Ljava/lang/Object;
            invokevirtual java.lang.Object.wait:()V
         4: .line 1401
            goto 6
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip java.lang.Object
      StackMap stack: java.lang.InterruptedException
         5: pop
         6: .line 1398
      StackMap locals:
      StackMap stack:
            aload 1
            monitorexit
         7: goto 33
      StackMap locals:
      StackMap stack: java.lang.Throwable
         8: aload 1
            monitorexit
         9: athrow
        10: .line 1405
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
            iflt 13
        11: .line 1406
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            imul
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
        12: .line 1407
            aload 0 /* this */
            iconst_m1
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
        13: .line 1409
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getFrameLength:()I
            iconst_1
            isub
            istore 1 /* endFrame */
        start local 1 // int endFrame
        14: .line 1410
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
            ifgt 15
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
            iconst_m1
            if_icmpne 16
        15: .line 1411
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopEndFrame:I
            istore 1 /* endFrame */
        16: .line 1413
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            idiv
            i2l
            lstore 2 /* framePos */
        start local 2 // long framePos
        17: .line 1414
            iload 1 /* endFrame */
            i2l
            lload 2 /* framePos */
            lsub
            lconst_1
            ladd
            l2i
            istore 4 /* toWriteFrames */
        start local 4 // int toWriteFrames
        18: .line 1415
            iload 4 /* toWriteFrames */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            imul
            istore 5 /* toWriteBytes */
        start local 5 // int toWriteBytes
        19: .line 1416
            iload 5 /* toWriteBytes */
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getBufferSize:()I
            if_icmple 21
        20: .line 1417
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getBufferSize:()I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            invokestatic com.sun.media.sound.Toolkit.align:(II)I
            istore 5 /* toWriteBytes */
        21: .line 1419
      StackMap locals: long int int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.audioData:[B
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
            iload 5 /* toWriteBytes */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.write:([BII)I
            istore 6 /* written */
        start local 6 // int written
        22: .line 1420
            aload 0 /* this */
            dup
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
            iload 6 /* written */
            iadd
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
        23: .line 1422
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.doIO:Z
            ifeq 33
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
            ifge 33
            iload 6 /* written */
            iflt 33
        24: .line 1423
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.clipBytePosition:I
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.frameSize:I
            idiv
            i2l
            lstore 2 /* framePos */
        25: .line 1427
            lload 2 /* framePos */
            iload 1 /* endFrame */
            i2l
            lcmp
            ifle 33
        26: .line 1429
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
            ifgt 27
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
            iconst_m1
            if_icmpne 31
        27: .line 1430
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
            iconst_m1
            if_icmpeq 29
        28: .line 1431
            aload 0 /* this */
            dup
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
            iconst_1
            isub
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopCount:I
        29: .line 1433
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.loopStartFrame:I
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.newFramePosition:I
        30: .line 1434
            goto 33
        31: .line 1439
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.drain:()V
        32: .line 1440
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.stop:()V
        end local 6 // int written
        end local 5 // int toWriteBytes
        end local 4 // int toWriteFrames
        end local 2 // long framePos
        end local 1 // int endFrame
        33: .line 1404
      StackMap locals: com.sun.media.sound.DirectAudioDevice$DirectClip
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.doIO:Z
            ifne 10
        34: .line 1396
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.thread:Ljava/lang/Thread;
            ifnonnull 1
        35: .line 1447
            return
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   36     0           this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
           14   33     1       endFrame  I
           17   33     2       framePos  J
           18   33     4  toWriteFrames  I
           19   33     5   toWriteBytes  I
           22   33     6        written  I
      Exception table:
        from    to  target  type
           3     4       5  Class java.lang.InterruptedException
           3     7       8  any
           8     9       8  any

  public boolean isAutoClosing();
    descriptor: ()Z
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1457
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.autoclosing:Z
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;

  public void setAutoClosing(boolean);
    descriptor: (Z)V
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=2, locals=2, args_size=2
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
        start local 1 // boolean value
         0: .line 1461
            iload 1 /* value */
            aload 0 /* this */
            getfield com.sun.media.sound.DirectAudioDevice$DirectClip.autoclosing:Z
            if_icmpeq 7
         1: .line 1462
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.isOpen:()Z
            ifeq 6
         2: .line 1463
            iload 1 /* value */
            ifeq 5
         3: .line 1464
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.autoClosingClipOpened:(Lcom/sun/media/sound/AutoClosingClip;)V
         4: .line 1465
            goto 6
         5: .line 1466
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            invokevirtual com.sun.media.sound.DirectAudioDevice$DirectClip.getEventDispatcher:()Lcom/sun/media/sound/EventDispatcher;
            aload 0 /* this */
            invokevirtual com.sun.media.sound.EventDispatcher.autoClosingClipClosed:(Lcom/sun/media/sound/AutoClosingClip;)V
         6: .line 1469
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 1 /* value */
            putfield com.sun.media.sound.DirectAudioDevice$DirectClip.autoclosing:Z
         7: .line 1471
      StackMap locals:
      StackMap stack:
            return
        end local 1 // boolean value
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0    8     0   this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
            0    8     1  value  Z
    MethodParameters:
       Name  Flags
      value  

  protected boolean requiresServicing();
    descriptor: ()Z
    flags: (0x0004) ACC_PROTECTED
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
         0: .line 1475
            iconst_0
            ireturn
        end local 0 // com.sun.media.sound.DirectAudioDevice$DirectClip this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lcom/sun/media/sound/DirectAudioDevice$DirectClip;
}
SourceFile: "DirectAudioDevice.java"
NestHost: com.sun.media.sound.DirectAudioDevice
InnerClasses:
  private DirectBAOS = com.sun.media.sound.DirectAudioDevice$DirectBAOS of com.sun.media.sound.DirectAudioDevice
  private final DirectClip = com.sun.media.sound.DirectAudioDevice$DirectClip of com.sun.media.sound.DirectAudioDevice
  private DirectDL = com.sun.media.sound.DirectAudioDevice$DirectDL of com.sun.media.sound.DirectAudioDevice
  public Info = javax.sound.sampled.DataLine$Info of javax.sound.sampled.DataLine