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

#ifndef __javax_sound_midi_Instrument__
#define __javax_sound_midi_Instrument__

#pragma interface

#include <javax/sound/midi/SoundbankResource.h>
extern "Java"
{
  namespace javax
  {
    namespace sound
    {
      namespace midi
      {
          class Instrument;
          class Patch;
          class Soundbank;
      }
    }
  }
}

class javax::sound::midi::Instrument : public ::javax::sound::midi::SoundbankResource
{

public: // actually protected
  Instrument(::javax::sound::midi::Soundbank *, ::javax::sound::midi::Patch *, ::java::lang::String *, ::java::lang::Class *);
public:
  virtual ::javax::sound::midi::Patch * getPatch();
private:
  ::javax::sound::midi::Patch * __attribute__((aligned(__alignof__( ::javax::sound::midi::SoundbankResource)))) patch;
public:
  static ::java::lang::Class class$;
};

#endif // __javax_sound_midi_Instrument__
