X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fnote-heads-engraver.cc;h=7c82106623933eecfe502f34006149dc012b6661;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=1b46789e76d28346d49c79182b8072973333863b;hpb=f4abbfff5f0d985a457e15586dbcc3ae473b0dee;p=lilypond.git diff --git a/lily/note-heads-engraver.cc b/lily/note-heads-engraver.cc index 1b46789e76..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--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,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 = Pitch::unsmob (ev->get_property ("pitch")); + Pitch *pit = unsmob (ev->get_property ("pitch")); #if 0 /* TODO: should have a mechanism to switch off these warnings. */ @@ -100,8 +100,8 @@ Note_heads_engraver::process_music () { SCM scm_tonic = get_property ("tonic"); Pitch tonic; - if (Pitch::unsmob (scm_tonic)) - tonic = *Pitch::unsmob (scm_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.",