summaryrefslogtreecommitdiff
path: root/piano/pianoui.c
diff options
context:
space:
mode:
Diffstat (limited to 'piano/pianoui.c')
-rw-r--r--piano/pianoui.c42
1 files changed, 42 insertions, 0 deletions
diff --git a/piano/pianoui.c b/piano/pianoui.c
new file mode 100644
index 0000000..10da0b7
--- /dev/null
+++ b/piano/pianoui.c
@@ -0,0 +1,42 @@
+enum TUNE{
+ LOW=0, MEDIUM=(1<<3), HIGH=(2<<3)
+};
+
+int transkey(unsigned int index)
+{
+ int note, tune;
+
+ note = index%7;
+ index /= 7;
+ switch(index){
+ case 0:
+ tune = HIGH;
+ break;
+ case 1:
+ tune = MEDIUM;
+ break;
+ case 2:
+ tune = LOW;
+ break;
+ default:
+ return -1;
+ }
+ return note|tune;
+}
+
+int get_showcode(unsigned int note, int raise)
+{
+ int idx;
+ if (note<=2){
+ idx = note*2;
+ }
+ else{
+ idx = note*2-1;
+ }
+ idx += raise;
+ if (idx>=12){
+ idx -= 12;
+ }
+ return idx+'a';
+}
+