/*
* Created on 29-dic-2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package org.herac.tuxguitar.song.models;
import org.herac.tuxguitar.song.factory.TGFactory;
/**
* @author julian
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public abstract class TGChord {
private int firstFret;
private int[] strings;
private String name;
private TGBeat beat;
public TGChord(int length){
this.strings = new int[length];
for(int i = 0;i < this.strings.length;i++){
this.strings[i] = -1;
}
}
public TGBeat getBeat() {
return this.beat;
}
public void setBeat(TGBeat beat) {
this.beat = beat;
}
public void addFretValue(int string,int fret){
if(string >= 0 && string < this.strings.length){
this.strings[string] = fret;
}
}
public int getFretValue(int string){
if(string >= 0 && string < this.strings.length){
return this.strings[string];
}
return -1;
}
public int getFirstFret() {
return this.firstFret;
}
public void setFirstFret(int firstFret) {
this.firstFret = firstFret;
}
public int[] getStrings() {
return this.strings;
}
public int countStrings(){
return this.strings.length;
}
public int countNotes(){
int count = 0;
for(int i = 0;i < this.strings.length;i++){
if(this.strings[i] >= 0){
count ++;
}
}
return count;
}
public String getName() {
return this.name;
}
public void setName(String name) {
this.name = name;
}
public TGChord clone(TGFactory factory){
TGChord chord = factory.newChord(this.strings.length);
chord.setName(getName());
chord.setFirstFret(getFirstFret());
for(int i = 0;i < chord.strings.length;i++){
chord.strings[i] = this.strings[i];
}
return chord;
}
}