package org.herac.tuxguitar.player.base;
import org.herac.tuxguitar.song.models.TGTimeSignature;
public abstract class MidiSequenceHandler {
private int tracks;
private int infoTrack;
private int metronomeTrack;
public MidiSequenceHandler(int tracks){
this.tracks = tracks;
this.infoTrack = 0;
this.metronomeTrack = (tracks - 1);
}
public int getInfoTrack() {
return this.infoTrack;
}
public int getMetronomeTrack() {
return this.metronomeTrack;
}
public int getTracks() {
return this.tracks;
}
public abstract void addNoteOn(long tick,int track,int channel,int note,int velocity);
public abstract void addNoteOff(long tick,int track,int channel,int note,int velocity);
public abstract void addControlChange(long tick,int track,int channel,int controller,int value);
public abstract void addProgramChange(long tick,int track,int channel,int instrument);
public abstract void addPitchBend(long tick,int track,int channel,int value);
public abstract void addTempoInUSQ(long tick,int track,int usq);
public abstract void addTimeSignature(long tick,int track,TGTimeSignature ts);
public abstract void notifyFinish();
}