X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnote-heads-engraver.cc;h=7c82106623933eecfe502f34006149dc012b6661;hb=97a0169312a260933246ab224e4f8b0969871dd5;hp=2e584539d6de149e951a56e6c70da48dd923f17e;hpb=4bb29573149a0ffa1f881c5e38a0fe68e9e76b67;p=lilypond.git diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 2e584539d6..7c82106623 100644 --- a/lily/note-heads-engraver.cc +++ b/lily/note-heads-engraver.cc @@ -1,7 +1,7 @@ /* This file is part of LilyPond, the GNU music typesetter. - Copyright (C) 1997--2011 Han-Wen Nienhuys + Copyright (C) 1997--2015 Han-Wen Nienhuys LilyPond is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -41,16 +41,16 @@ public: TRANSLATOR_DECLARATIONS (Note_heads_engraver); protected: - DECLARE_TRANSLATOR_LISTENER (note); + void listen_note (Stream_event *); void process_music (); void stop_translation_timestep (); }; -Note_heads_engraver::Note_heads_engraver () +Note_heads_engraver::Note_heads_engraver (Context *c) + : Engraver (c) { } -IMPLEMENT_TRANSLATOR_LISTENER (Note_heads_engraver, note); void Note_heads_engraver::listen_note (Stream_event *ev) { @@ -68,7 +68,7 @@ Note_heads_engraver::process_music () Stream_event *ev = note_evs_[i]; Item *note = make_item ("NoteHead", ev->self_scm ()); - Pitch *pit = unsmob_pitch (ev->get_property ("pitch")); + Pitch *pit = unsmob (ev->get_property ("pitch")); #if 0 /* TODO: should have a mechanism to switch off these warnings. */ @@ -99,9 +99,9 @@ Note_heads_engraver::process_music () if (scm_is_vector (shape_vector)) { SCM scm_tonic = get_property ("tonic"); - Pitch tonic (0, 0, 0); - if (unsmob_pitch (scm_tonic)) - tonic = *unsmob_pitch (scm_tonic); + Pitch tonic; + if (unsmob (scm_tonic)) + tonic = *unsmob (scm_tonic); unsigned int delta = (pit->get_notename () - tonic.get_notename () + 7) % 7; @@ -121,6 +121,12 @@ Note_heads_engraver::stop_translation_timestep () note_evs_.clear (); } +void +Note_heads_engraver::boot () +{ + ADD_LISTENER (Note_heads_engraver, note); +} + ADD_TRANSLATOR (Note_heads_engraver, /* doc */ "Generate note heads.",