#include "score.h"
+typedef struct score_note
+{
+ score_staff_t *staff;
+ pitch_t pitch;
+ score_duration_t duration;
+
+ struct {
+ double r;
+ double g;
+ double b;
+ } color;
+} score_note_t;
+
struct score_staff
{
score_clef_t clef;
score_staff_add_note (nearest_staff, pitch, duration);
}
-void
-score_remove_note (score_note_t *note)
-{
- score_staff_t *staff = note->staff;
- int i;
-
- for (i = 0; i < staff->num_notes; i++)
- if (staff->notes[i] == note)
- break;
-
- if (i == staff->num_notes)
- return;
-
- if (i < staff->num_notes - 1)
- {
- memmove (staff->notes + i,
- staff->notes + i + 1,
- (staff->num_notes - 1 - i) * sizeof (score_note_t *));
- }
-
- staff->num_notes -= 1;
-
- if (staff->num_notes == 0) {
- staff->upper_ledger_lines = 0;
- staff->lower_ledger_lines = 0;
- }
-}
-
void
score_staff_remove_notes (score_staff_t *staff)
{
for (i = 0; i < score->num_staves; i++)
score_staff_remove_notes (score->staves[i]);
}
-
-void
-score_set_note_color_rgb (score_note_t *note,
- double r,
- double g,
- double b)
-{
- note->color.r = r;
- note->color.g = g;
- note->color.b = b;
-}
-
-score_note_t *
-score_staff_find_note (score_staff_t *staff,
- pitch_t pitch,
- score_duration_t duration)
-{
- int i;
- score_note_t *note;
-
- for (i = 0; i < staff->num_notes; i++) {
- note = staff->notes[i];
- if (note->pitch == pitch && note->duration == duration)
- return note;
- }
-
- return NULL;
-}