home *** CD-ROM | disk | FTP | other *** search
- package sun.audio;
-
- import java.io.DataInputStream;
- import java.io.FilterInputStream;
- import java.io.IOException;
- import java.io.InputStream;
-
- public class NativeAudioStream extends FilterInputStream {
- private final int SUN_MAGIC = 779316836;
- private final int DEC_MAGIC = 779314176;
- private final int MINHDRSIZE = 24;
- private final int TYPE_ULAW = 1;
- private int length;
-
- public NativeAudioStream(InputStream var1) throws IOException {
- super(var1);
- DataInputStream var2 = new DataInputStream(var1);
- int var3 = var2.readInt();
- if (var3 != 779316836 && var3 != 779314176) {
- System.out.println("NativeAudioStream: invalid file type.");
- throw new InvalidAudioFormatException();
- } else {
- int var4 = var2.readInt();
- if (var4 < 24) {
- System.out.println("NativeAudioStream: wrong header size of " + var4 + ".");
- throw new InvalidAudioFormatException();
- } else {
- this.length = var2.readInt();
- int var5 = var2.readInt();
- if (var5 != 1) {
- System.out.println("NativeAudioStream: invalid audio encoding.");
- throw new InvalidAudioFormatException();
- } else {
- int var6 = var2.readInt();
- if (var6 / 1000 != 8) {
- System.out.println("NativeAudioStream: invalid sample rate of " + var6 + ".");
- throw new InvalidAudioFormatException();
- } else {
- int var7 = var2.readInt();
- if (var7 != 1) {
- System.out.println("NativeAudioStream: wrong number of channels. (wanted 1, actual " + var7 + ")");
- throw new InvalidAudioFormatException();
- } else {
- var1.skip((long)(var4 - 24));
- }
- }
- }
- }
- }
- }
-
- public int getLength() {
- return this.length;
- }
- }
-