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

#ifndef __gnu_javax_sound_midi_file_MidiDataOutputStream__
#define __gnu_javax_sound_midi_file_MidiDataOutputStream__

#pragma interface

#include <java/io/DataOutputStream.h>
extern "Java"
{
  namespace gnu
  {
    namespace javax
    {
      namespace sound
      {
        namespace midi
        {
          namespace file
          {
              class MidiDataOutputStream;
          }
        }
      }
    }
  }
}

class gnu::javax::sound::midi::file::MidiDataOutputStream : public ::java::io::DataOutputStream
{

public:
  MidiDataOutputStream(::java::io::OutputStream *);
  virtual jint variableLengthIntLength(jint);
  virtual void writeVariableLengthInt(jint);
  static ::java::lang::Class class$;
};

#endif // __gnu_javax_sound_midi_file_MidiDataOutputStream__
