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

#ifndef __javax_sound_midi_Synthesizer__
#define __javax_sound_midi_Synthesizer__

#pragma interface

#include <java/lang/Object.h>
#include <gcj/array.h>

extern "Java"
{
  namespace javax
  {
    namespace sound
    {
      namespace midi
      {
        class Synthesizer;
        class Patch;
        class Instrument;
        class Soundbank;
        class VoiceStatus;
        class MidiChannel;
      }
    }
  }
}

class javax::sound::midi::Synthesizer : public ::java::lang::Object
{
public:
  virtual jint getMaxPolyphony () = 0;
  virtual jlong getLatency () = 0;
  virtual JArray< ::javax::sound::midi::MidiChannel *> *getChannels () = 0;
  virtual JArray< ::javax::sound::midi::VoiceStatus *> *getVoiceStatus () = 0;
  virtual jboolean isSoundbankSupported (::javax::sound::midi::Soundbank *) = 0;
  virtual jboolean loadInstrument (::javax::sound::midi::Instrument *) = 0;
  virtual void unloadInstrument (::javax::sound::midi::Instrument *) = 0;
  virtual jboolean remapInstrument (::javax::sound::midi::Instrument *, ::javax::sound::midi::Instrument *) = 0;
  virtual ::javax::sound::midi::Soundbank *getDefaultSoundbank () = 0;
  virtual JArray< ::javax::sound::midi::Instrument *> *getAvailableInstruments () = 0;
  virtual JArray< ::javax::sound::midi::Instrument *> *getLoadedInstruments () = 0;
  virtual jboolean loadAllInstruments (::javax::sound::midi::Soundbank *) = 0;
  virtual void unloadAllInstruments (::javax::sound::midi::Soundbank *) = 0;
  virtual jboolean loadInstruments (::javax::sound::midi::Soundbank *, JArray< ::javax::sound::midi::Patch *> *) = 0;
  virtual void unloadInstruments (::javax::sound::midi::Soundbank *, JArray< ::javax::sound::midi::Patch *> *) = 0;

  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif /* __javax_sound_midi_Synthesizer__ */
