X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnote-heads-engraver.cc;h=5839a827eb3129045c9e5330d41dacf203ab0d67;hb=17378a326b64ebeaeb6f9454cde414923785a470;hp=5caf42f221838eebbcd28fd7c5bd4d3c957f5a3a;hpb=e7aa6c445f463844dbaa52d38ea4aac2882b5601;p=lilypond.git diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 5caf42f221..5839a827eb 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--2014 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,7 +41,7 @@ public: TRANSLATOR_DECLARATIONS (Note_heads_engraver); protected: - DECLARE_TRANSLATOR_LISTENER (note); + void listen_note (Stream_event *); void process_music (); void stop_translation_timestep (); }; @@ -50,7 +50,6 @@ Note_heads_engraver::Note_heads_engraver () { } -IMPLEMENT_TRANSLATOR_LISTENER (Note_heads_engraver, note); void Note_heads_engraver::listen_note (Stream_event *ev) { @@ -68,7 +67,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 +98,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 +120,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.",