package gsingh.learnkirtan.utility;
import gsingh.learnkirtan.keys.LabelManager.Octave;
import java.util.HashMap;
import java.util.Map;
/**
* A class that contains utility methods that don't belong to other classes
*
* @author Gulshan
*
*/
public class Utility {
private static Map<String, Integer> letterMap = new HashMap<String, Integer>();
private static final String[] letters = new String[] { "A", "W", "S", "E",
"D", "F", "T", "G", "Y", "H", "J", "I", "K", "O", "L", "P", ";",
"\'", "]" };
static {
for (int i = 0; i < 18; i++) {
letterMap.put(letters[i], i + 7);
}
}
/**
* Converts the letter from a keyboard mapping to key ID
*
* @param letter
* @return the key ID the letter corresponds to
*/
public static int letterToKeyId(String letter, Octave octave) {
letter = letter.toUpperCase();
Integer key = letterMap.get(letter);
if (key == null) {
throw new IllegalArgumentException("Letter is invalid");
}
if (octave == Octave.LOWER)
key -= 12;
else if (octave == Octave.UPPER)
key += 12;
return key;
}
}