home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / sun / audio / AudioStream.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  1.2 KB  |  54 lines

  1. package sun.audio;
  2.  
  3. import java.io.FilterInputStream;
  4. import java.io.IOException;
  5. import java.io.InputStream;
  6.  
  7. public class AudioStream extends FilterInputStream {
  8.    NativeAudioStream audioIn;
  9.  
  10.    public AudioStream(InputStream var1) throws IOException {
  11.       super(var1);
  12.  
  13.       try {
  14.          this.audioIn = new NativeAudioStream(var1);
  15.       } catch (InvalidAudioFormatException var2) {
  16.          this.audioIn = new AudioTranslatorStream(var1);
  17.       }
  18.  
  19.       super.in = this.audioIn;
  20.    }
  21.  
  22.    public int read(byte[] var1, int var2, int var3) throws IOException {
  23.       int var4 = 0;
  24.  
  25.       while(var4 < var3) {
  26.          int var5 = super.read(var1, var2 + var4, var3 - var4);
  27.          if (var5 < 0) {
  28.             return var4;
  29.          }
  30.  
  31.          var4 += var5;
  32.          Thread.currentThread();
  33.          Thread.yield();
  34.       }
  35.  
  36.       return var4;
  37.    }
  38.  
  39.    public AudioData getData() throws IOException {
  40.       byte[] var1 = new byte[this.audioIn.getLength()];
  41.       int var2 = this.read(var1, 0, this.audioIn.getLength());
  42.       ((FilterInputStream)this).close();
  43.       if (var2 != this.audioIn.getLength()) {
  44.          throw new IOException("audio data read error");
  45.       } else {
  46.          return new AudioData(var1);
  47.       }
  48.    }
  49.  
  50.    public int getLength() {
  51.       return this.audioIn.getLength();
  52.    }
  53. }
  54.