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

#ifndef __javax_sound_midi_Sequencer__
#define __javax_sound_midi_Sequencer__

#pragma interface

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

extern "Java"
{
  namespace javax
  {
    namespace sound
    {
      namespace midi
      {
          class ControllerEventListener;
          class MetaEventListener;
          class MidiDevice$Info;
          class Receiver;
          class Sequence;
          class Sequencer;
          class Sequencer$SyncMode;
          class Track;
          class Transmitter;
      }
    }
  }
}

class javax::sound::midi::Sequencer : public ::java::lang::Object
{

public:
  virtual void setSequence(::javax::sound::midi::Sequence *) = 0;
  virtual void setSequence(::java::io::InputStream *) = 0;
  virtual ::javax::sound::midi::Sequence * getSequence() = 0;
  virtual void start() = 0;
  virtual void stop() = 0;
  virtual jboolean isRunning() = 0;
  virtual void startRecording() = 0;
  virtual void stopRecording() = 0;
  virtual jboolean isRecording() = 0;
  virtual void recordEnable(::javax::sound::midi::Track *, jint) = 0;
  virtual void recordDisable(::javax::sound::midi::Track *) = 0;
  virtual jfloat getTempoInBPM() = 0;
  virtual void setTempoInBPM(jfloat) = 0;
  virtual jfloat getTempoInMPQ() = 0;
  virtual void setTempoInMPQ(jfloat) = 0;
  virtual void setTempoFactor(jfloat) = 0;
  virtual jfloat getTempoFactor() = 0;
  virtual jlong getTickLength() = 0;
  virtual jlong getTickPosition() = 0;
  virtual void setTickPosition(jlong) = 0;
  virtual jlong getMicrosecondLength() = 0;
  virtual jlong getMicrosecondPosition() = 0;
  virtual void setMicrosecondPosition(jlong) = 0;
  virtual void setMasterSyncMode(::javax::sound::midi::Sequencer$SyncMode *) = 0;
  virtual ::javax::sound::midi::Sequencer$SyncMode * getMasterSyncMode() = 0;
  virtual JArray< ::javax::sound::midi::Sequencer$SyncMode * > * getMasterSyncModes() = 0;
  virtual void setSlaveSyncMode(::javax::sound::midi::Sequencer$SyncMode *) = 0;
  virtual ::javax::sound::midi::Sequencer$SyncMode * getSlaveSyncMode() = 0;
  virtual JArray< ::javax::sound::midi::Sequencer$SyncMode * > * getSlaveSyncModes() = 0;
  virtual void setTrackMute(jint, jboolean) = 0;
  virtual jboolean getTrackMute(jint) = 0;
  virtual void setTrackSolo(jint, jboolean) = 0;
  virtual jboolean getTrackSolo(jint) = 0;
  virtual jboolean addMetaEventListener(::javax::sound::midi::MetaEventListener *) = 0;
  virtual void removeMetaEventListener(::javax::sound::midi::MetaEventListener *) = 0;
  virtual JArray< jint > * addControllerEventListener(::javax::sound::midi::ControllerEventListener *, JArray< jint > *) = 0;
  virtual JArray< jint > * removeControllerEventListener(::javax::sound::midi::ControllerEventListener *, JArray< jint > *) = 0;
  virtual ::javax::sound::midi::MidiDevice$Info * getDeviceInfo() = 0;
  virtual void open() = 0;
  virtual void close() = 0;
  virtual jboolean isOpen() = 0;
  virtual jint getMaxReceivers() = 0;
  virtual jint getMaxTransmitters() = 0;
  virtual ::javax::sound::midi::Receiver * getReceiver() = 0;
  virtual ::javax::sound::midi::Transmitter * getTransmitter() = 0;
  static ::java::lang::Class class$;
} __attribute__ ((java_interface));

#endif // __javax_sound_midi_Sequencer__
