X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;ds=sidebyside;f=scherzo.c;h=b0f2c44ac05d1d96018c12f57874c96eb7bfa8de;hb=d28562d25616842549f30b3d5c402aba20548970;hp=a1a279786b21339eec1d4dc3e597325f32e19e13;hpb=4f246b4a5607782e18131cc4d90ec50ea197258d;p=scherzo diff --git a/scherzo.c b/scherzo.c index a1a2797..b0f2c44 100644 --- a/scherzo.c +++ b/scherzo.c @@ -145,6 +145,7 @@ on_key_press_event (GtkWidget *widget, { scherzo_t *scherzo = user_data; int octave; + score_pitch_name_t pitch_name; score_pitch_t pitch; if (scherzo->challenge.note) @@ -174,31 +175,31 @@ on_key_press_event (GtkWidget *widget, return FALSE; case GDK_KEY_c: case GDK_KEY_C: - pitch = SCORE_PITCH_C; + pitch_name = SCORE_PITCH_NAME_C; break; case GDK_KEY_d: case GDK_KEY_D: - pitch = SCORE_PITCH_D; + pitch_name = SCORE_PITCH_NAME_D; break; case GDK_KEY_e: case GDK_KEY_E: - pitch = SCORE_PITCH_E; + pitch_name = SCORE_PITCH_NAME_E; break; case GDK_KEY_f: case GDK_KEY_F: - pitch = SCORE_PITCH_F; + pitch_name = SCORE_PITCH_NAME_F; break; case GDK_KEY_g: case GDK_KEY_G: - pitch = SCORE_PITCH_G; + pitch_name = SCORE_PITCH_NAME_G; break; case GDK_KEY_a: case GDK_KEY_A: - pitch = SCORE_PITCH_A; + pitch_name = SCORE_PITCH_NAME_A; break; case GDK_KEY_b: case GDK_KEY_B: - pitch = SCORE_PITCH_B; + pitch_name = SCORE_PITCH_NAME_B; break; case GDK_KEY_0: case GDK_KEY_1: @@ -216,6 +217,8 @@ on_key_press_event (GtkWidget *widget, break; } + pitch = SCORE_PITCH (pitch_name, SCORE_PITCH_ACCIDENTAL_NATURAL); + if ((key->keyval >= GDK_KEY_A && key->keyval <= GDK_KEY_G) || (key->keyval >= GDK_KEY_a && key->keyval <= GDK_KEY_g)) { @@ -240,6 +243,7 @@ on_key_release_event (unused (GtkWidget *widget), { scherzo_t *scherzo = user_data; int octave; + score_pitch_name_t pitch_name; score_pitch_t pitch; if (scherzo->challenge.note) @@ -250,37 +254,39 @@ on_key_release_event (unused (GtkWidget *widget), switch (key->keyval) { case GDK_KEY_c: case GDK_KEY_C: - pitch = SCORE_PITCH_C; + pitch_name = SCORE_PITCH_NAME_C; break; case GDK_KEY_d: case GDK_KEY_D: - pitch = SCORE_PITCH_D; + pitch_name = SCORE_PITCH_NAME_D; break; case GDK_KEY_e: case GDK_KEY_E: - pitch = SCORE_PITCH_E; + pitch_name = SCORE_PITCH_NAME_E; break; case GDK_KEY_f: case GDK_KEY_F: - pitch = SCORE_PITCH_F; + pitch_name = SCORE_PITCH_NAME_F; break; case GDK_KEY_g: case GDK_KEY_G: - pitch = SCORE_PITCH_G; + pitch_name = SCORE_PITCH_NAME_G; break; case GDK_KEY_a: case GDK_KEY_A: - pitch = SCORE_PITCH_A; + pitch_name = SCORE_PITCH_NAME_A; break; case GDK_KEY_b: case GDK_KEY_B: - pitch = SCORE_PITCH_B; + pitch_name = SCORE_PITCH_NAME_B; break; case GDK_KEY_space: scherzo_release_pedal (scherzo); break; } + pitch = SCORE_PITCH (pitch_name, SCORE_PITCH_ACCIDENTAL_NATURAL); + if ((key->keyval >= GDK_KEY_A && key->keyval <= GDK_KEY_G) || (key->keyval >= GDK_KEY_a && key->keyval <= GDK_KEY_g)) { @@ -807,25 +813,25 @@ _select_challenge (scherzo_t *scherzo) switch (*s) { case 'C': - pitch = SCORE_PITCH_VALUE(C, NATURAL); + pitch = SCORE_PITCH_C; break; case 'D': - pitch = SCORE_PITCH_VALUE(D, NATURAL); + pitch = SCORE_PITCH_D; break; case 'E': - pitch = SCORE_PITCH_VALUE(E, NATURAL); + pitch = SCORE_PITCH_E; break; case 'F': - pitch = SCORE_PITCH_VALUE(F, NATURAL); + pitch = SCORE_PITCH_F; break; case 'G': - pitch = SCORE_PITCH_VALUE(G, NATURAL); + pitch = SCORE_PITCH_G; break; case 'A': - pitch = SCORE_PITCH_VALUE(A, NATURAL); + pitch = SCORE_PITCH_A; break; case 'B': - pitch = SCORE_PITCH_VALUE(B, NATURAL); + pitch = SCORE_PITCH_B; break; default: fprintf (stderr, "Malformed pitch name: %s (expected 'A' - 'G')\n", s);