// 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 Sequencer;
        class ControllerEventListener;
        class MetaEventListener;
        class Sequencer$SyncMode;
        class Track;
        class Sequence;
      }
    }
  }
}

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 jintArray addControllerEventListener (::javax::sound::midi::ControllerEventListener *, jintArray) = 0;
  virtual jintArray removeControllerEventListener (::javax::sound::midi::ControllerEventListener *, jintArray) = 0;

  friend class javax_sound_midi_Sequencer$SyncMode;

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

#endif /* __javax_sound_midi_Sequencer__ */
