package org.herac.tuxguitar.io.midi.base; import java.util.ArrayList; import java.util.List; public class MidiSequence { public static final float PPQ = 0.0f; public static final float SMPTE_24 = 24.0f; public static final float SMPTE_25 = 25.0f; public static final float SMPTE_30 = 30.0f; public static final float SMPTE_30DROP = 29.97f; protected float divisionType; protected int resolution; private List<MidiTrack> tracks; public MidiSequence(float divisionType, int resolution) { this.divisionType = divisionType; this.resolution = resolution; this.tracks = new ArrayList<MidiTrack>(); } public void addTrack(MidiTrack track) { this.tracks.add(track); } public int countTracks() { return this.tracks.size(); } public void finish() { for (int i = 0; i < this.tracks.size(); i++) { MidiTrack track = (MidiTrack) this.tracks.get(i); track.add(new MidiEvent(MidiMessage.metaMessage(47, new byte[] {}), track .ticks())); track.sort(); } } public float getDivisionType() { return this.divisionType; } public int getResolution() { return this.resolution; } public MidiTrack getTrack(int index) { return (MidiTrack) this.tracks.get(index); } public void sort() { for (int i = 0; i < this.tracks.size(); i++) { MidiTrack track = (MidiTrack) this.tracks.get(i); track.sort(); } } }