
// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-

#ifndef __javax_sound_sampled_AudioInputStream$TargetInputStream__
#define __javax_sound_sampled_AudioInputStream$TargetInputStream__

#pragma interface

#include <java/io/InputStream.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace sound
    {
      namespace sampled
      {
          class AudioInputStream$TargetInputStream;
          class TargetDataLine;
      }
    }
  }
}

class javax::sound::sampled::AudioInputStream$TargetInputStream : public ::java::io::InputStream
{

public:
  AudioInputStream$TargetInputStream(::javax::sound::sampled::TargetDataLine *);
  virtual jint read();
  virtual jint read(JArray< jbyte > *, jint, jint);
private:
  ::javax::sound::sampled::TargetDataLine * __attribute__((aligned(__alignof__( ::java::io::InputStream)))) line;
  JArray< jbyte > * buf;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_sound_sampled_AudioInputStream$TargetInputStream__
