package org.herac.tuxguitar.song.models.effects; import org.herac.tuxguitar.song.factory.TGFactory; public abstract class TGEffectHarmonic { public static final String KEY_NATURAL = "N.H"; public static final String KEY_ARTIFICIAL = "A.H"; public static final String KEY_TAPPED = "T.H"; public static final String KEY_PINCH = "P.H"; public static final String KEY_SEMI = "S.H"; public static final int TYPE_NATURAL = 1; public static final int TYPE_ARTIFICIAL = 2; public static final int TYPE_TAPPED = 3; public static final int TYPE_PINCH = 4; public static final int TYPE_SEMI = 5; public static final int MIN_ARTIFICIAL_OFFSET = -24; public static final int MAX_ARTIFICIAL_OFFSET = 24; public static final int MAX_TAPPED_OFFSET = 24; public static final int NATURAL_FREQUENCIES[][] = { {12, 12}, //AH12 (+12 frets) {9 , 28}, //AH9 (+28 frets) {5 , 24}, //AH5 (+24 frets) {7 , 19}, //AH7 (+19 frets) {4 , 28}, //AH4 (+28 frets) {3 , 31} //AH3 (+31 frets) }; private int type; private int data; public TGEffectHarmonic(){ this.type = 0; this.data = 0; } public int getData() { return this.data; } public void setData(int data) { this.data = data; } public int getType() { return this.type; } public void setType(int type) { this.type = type; } public boolean isNatural(){ return (this.type == TYPE_NATURAL); } public boolean isArtificial(){ return (this.type == TYPE_ARTIFICIAL); } public boolean isTapped(){ return (this.type == TYPE_TAPPED); } public boolean isPinch(){ return (this.type == TYPE_PINCH); } public boolean isSemi(){ return (this.type == TYPE_SEMI); } public TGEffectHarmonic clone(TGFactory factory){ TGEffectHarmonic effect = factory.newEffectHarmonic(); effect.setType(getType()); effect.setData(getData()); return effect; } }