2
* Created on 26-nov-2005
4
* TODO To change the template for this generated file go to
5
* Window - Preferences - Java - Code Style - Code Templates
7
package org.herac.tuxguitar.song.models;
9
import java.util.ArrayList;
10
import java.util.List;
12
import org.herac.tuxguitar.song.factory.TGFactory;
17
* TODO To change the template for this generated type comment go to
18
* Window - Preferences - Java - Code Style - Code Templates
20
public abstract class TGMeasure {
22
public static final int CLEF_TREBLE = 1;
23
public static final int CLEF_BASS = 2;
24
public static final int CLEF_TENOR = 3;
25
public static final int CLEF_ALTO = 4;
27
public static final int DEFAULT_CLEF = CLEF_TREBLE;
28
public static final int DEFAULT_KEY_SIGNATURE= 0;
30
private TGMeasureHeader header;
31
private TGTrack track;
33
private int keySignature;
37
public TGMeasure(TGMeasureHeader header){
39
this.clef = DEFAULT_CLEF;
40
this.keySignature = DEFAULT_KEY_SIGNATURE;
41
this.beats = new ArrayList();
44
public TGTrack getTrack() {
48
public void setTrack(TGTrack track) {
52
public int getClef() {
56
public void setClef(int clef) {
60
public int getKeySignature() {
61
return this.keySignature;
64
public void setKeySignature(int keySignature) {
65
this.keySignature = keySignature;
68
public List getBeats() {
72
public void addBeat(TGBeat beat){
73
beat.setMeasure(this);
77
public void moveBeat(int index,TGBeat beat){
78
this.beats.remove(beat);
79
this.beats.add(index,beat);
82
public void removeBeat(TGBeat beat){
83
this.beats.remove(beat);
86
public TGBeat getBeat(int index){
87
if(index >= 0 && index < countBeats()){
88
return (TGBeat)this.beats.get(index);
93
public int countBeats(){
94
return this.beats.size();
97
public TGMeasureHeader getHeader() {
101
public void setHeader(TGMeasureHeader header) {
102
this.header = header;
105
public int getNumber() {
106
return this.header.getNumber();
109
public int getRepeatClose() {
110
return this.header.getRepeatClose();
113
public long getStart() {
114
return this.header.getStart();
117
public TGTempo getTempo() {
118
return this.header.getTempo();
121
public TGTimeSignature getTimeSignature() {
122
return this.header.getTimeSignature();
125
public boolean isRepeatOpen() {
126
return this.header.isRepeatOpen();
129
public int getTripletFeel() {
130
return this.header.getTripletFeel();
133
public long getLength() {
134
return this.header.getLength();
137
public boolean hasMarker() {
138
return this.header.hasMarker();
141
public TGMarker getMarker(){
142
return this.header.getMarker();
145
public void makeEqual(TGMeasure measure){
146
this.clef = measure.getClef();
147
this.keySignature = measure.getKeySignature();
149
for(int i = 0; i < measure.countBeats(); i ++){
150
TGBeat beat = measure.getBeat(i);
155
public TGMeasure clone(TGFactory factory,TGMeasureHeader header){
156
TGMeasure measure = factory.newMeasure(header);
157
measure.setClef(getClef());
158
measure.setKeySignature(getKeySignature());
159
for(int i = 0; i < countBeats(); i ++){
160
TGBeat beat = (TGBeat)this.beats.get(i);
161
measure.addBeat(beat.clone(factory));