diff options
Diffstat (limited to 'piano/pianoui.c')
-rw-r--r-- | piano/pianoui.c | 42 |
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';
+}
+
|