1 package org.herac.tuxguitar.io.midi.base; 2 3 import java.util.ArrayList; 4 import java.util.Collections; 5 import java.util.Comparator; 6 import java.util.List; 7 8 public class MidiTrack { 9 10 private long ticks; 11 private List events = new ArrayList(); 12 add(MidiEvent event)13 public void add(MidiEvent event) { 14 this.events.add(event); 15 this.ticks = Math.max(this.ticks,event.getTick()); 16 } 17 get(int index)18 public MidiEvent get(int index){ 19 return (MidiEvent)this.events.get(index); 20 } 21 size()22 public int size(){ 23 return this.events.size(); 24 } 25 ticks()26 public long ticks(){ 27 return this.ticks; 28 } 29 sort()30 public void sort(){ 31 final Comparator comparator = new Comparator() { 32 public int compare(Object o1, Object o2) { 33 if(o1 instanceof MidiEvent && o2 instanceof MidiEvent){ 34 MidiEvent e1 = (MidiEvent)o1; 35 MidiEvent e2 = (MidiEvent)o2; 36 if(e1.getTick() == e2.getTick()){ 37 return 0; 38 } 39 return (e1.getTick() > e2.getTick() ? 1 : -1); 40 } 41 return 0; 42 } 43 }; 44 Collections.sort(this.events,comparator); 45 } 46 } 47