jdk/src/share/classes/com/sun/media/sound/DirectAudioDevice.java
changeset 21278 ef8a3a2a72f2
parent 18215 b2afd66ce6db
child 22584 eed64ee05369
equal deleted inserted replaced
21277:bd380b80f9ea 21278:ef8a3a2a72f2
   376         protected int waitTime;
   376         protected int waitTime;
   377         protected volatile boolean flushing = false;
   377         protected volatile boolean flushing = false;
   378         protected final boolean isSource;         // true for SourceDataLine, false for TargetDataLine
   378         protected final boolean isSource;         // true for SourceDataLine, false for TargetDataLine
   379         protected volatile long bytePosition;
   379         protected volatile long bytePosition;
   380         protected volatile boolean doIO = false;     // true in between start() and stop() calls
   380         protected volatile boolean doIO = false;     // true in between start() and stop() calls
   381         protected volatile boolean stoppedWritten = false; // true if a write occured in stopped state
   381         protected volatile boolean stoppedWritten = false; // true if a write occurred in stopped state
   382         protected volatile boolean drained = false; // set to true when drain function returns, set to false in write()
   382         protected volatile boolean drained = false; // set to true when drain function returns, set to false in write()
   383         protected boolean monitoring = false;
   383         protected boolean monitoring = false;
   384 
   384 
   385         // if native needs to manually swap samples/convert sign, this
   385         // if native needs to manually swap samples/convert sign, this
   386         // is set to the framesize
   386         // is set to the framesize
   640 
   640 
   641 
   641 
   642         public void drain() {
   642         public void drain() {
   643             noService = true;
   643             noService = true;
   644             // additional safeguard against draining forever
   644             // additional safeguard against draining forever
   645             // this occured on Solaris 8 x86, probably due to a bug
   645             // this occurred on Solaris 8 x86, probably due to a bug
   646             // in the audio driver
   646             // in the audio driver
   647             int counter = 0;
   647             int counter = 0;
   648             long startPos = getLongFramePosition();
   648             long startPos = getLongFramePosition();
   649             boolean posChanged = false;
   649             boolean posChanged = false;
   650             while (!drained) {
   650             while (!drained) {