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 org.herac.tuxguitar.song.factory.TGFactory;
14
* TODO To change the template for this generated type comment go to
15
* Window - Preferences - Java - Code Style - Code Templates
17
public abstract class TGMeasureHeader {
18
public static final int TRIPLET_FEEL_NONE = 1;
19
public static final int TRIPLET_FEEL_EIGHTH = 2;
20
public static final int TRIPLET_FEEL_SIXTEENTH = 3;
24
private TGTimeSignature timeSignature;
25
private TGTempo tempo;
26
private TGMarker marker;
27
private boolean repeatOpen;
28
private int repeatAlternative;
29
private int repeatClose;
30
private int tripletFeel;
33
public TGMeasureHeader(TGFactory factory){
35
this.start = TGDuration.QUARTER_TIME;
36
this.timeSignature = factory.newTimeSignature();
37
this.tempo = factory.newTempo();
39
this.tripletFeel = TRIPLET_FEEL_NONE;
40
this.repeatOpen = false;
42
this.repeatAlternative = 0;
46
public int getNumber() {
50
public void setNumber(int number) {
55
public int getRepeatClose() {
56
return this.repeatClose;
59
public void setRepeatClose(int repeatClose) {
60
this.repeatClose = repeatClose;
63
public int getRepeatAlternative() {
64
return this.repeatAlternative;
68
* bitwise value 1 TO 8.
69
* (1 << AlternativeNumber)
71
public void setRepeatAlternative(int repeatAlternative) {
72
this.repeatAlternative = repeatAlternative;
75
public boolean isRepeatOpen() {
76
return this.repeatOpen;
79
public void setRepeatOpen(boolean repeatOpen) {
80
this.repeatOpen = repeatOpen;
83
public long getStart() {
87
public void setStart(long start) {
91
public int getTripletFeel() {
92
return this.tripletFeel;
95
public void setTripletFeel(int tripletFeel) {
96
this.tripletFeel = tripletFeel;
99
public TGTempo getTempo() {
103
public void setTempo(TGTempo tempo) {
107
public TGTimeSignature getTimeSignature() {
108
return this.timeSignature;
111
public void setTimeSignature(TGTimeSignature timeSignature) {
112
this.timeSignature = timeSignature;
115
public TGMarker getMarker() {
119
public void setMarker(TGMarker marker) {
120
this.marker = marker;
123
public boolean hasMarker(){
124
return (getMarker() != null);
127
private void checkMarker(){
129
this.marker.setMeasure(getNumber());
133
public long getLength(){
134
return getTimeSignature().getNumerator() * getTimeSignature().getDenominator().getTime();
137
public TGSong getSong() {
141
public void setSong(TGSong song) {
145
public void makeEqual(TGMeasureHeader measure){
146
this.start = measure.getStart();
147
this.timeSignature = measure.getTimeSignature();
148
this.tempo = measure.getTempo();
149
this.marker = measure.getMarker();
150
this.repeatOpen = measure.isRepeatOpen();
151
this.repeatClose = measure.getRepeatClose();
152
this.repeatAlternative = measure.getRepeatAlternative();
156
public TGMeasureHeader clone(TGFactory factory){
157
TGMeasureHeader header = factory.newHeader();
158
header.setNumber(getNumber());
159
header.setStart(getStart());
160
header.setRepeatOpen(isRepeatOpen());
161
header.setRepeatAlternative(getRepeatAlternative());
162
header.setRepeatClose(getRepeatClose());
163
header.setTripletFeel(getTripletFeel());
164
getTimeSignature().copy(header.getTimeSignature());
165
getTempo().copy(header.getTempo());
166
header.setMarker(hasMarker()?(TGMarker)getMarker().clone(factory):null);