X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fmetronome-engraver.cc;h=6cd2bfde25e73ff844e875ba6fc6b12519a2bc08;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=279f8f721cef5e99618f8792f0933de2e46c1638;hpb=e0af94bb8939bc6f4998db6294010baa77139092;p=lilypond.git diff --git a/lily/metronome-engraver.cc b/lily/metronome-engraver.cc index 279f8f721c..6cd2bfde25 100644 --- a/lily/metronome-engraver.cc +++ b/lily/metronome-engraver.cc @@ -46,14 +46,15 @@ protected: void stop_translation_timestep (); void process_music (); - DECLARE_ACKNOWLEDGER (break_aligned); - DECLARE_ACKNOWLEDGER (break_alignment); - DECLARE_ACKNOWLEDGER (grob); + void acknowledge_break_aligned (Grob_info); + void acknowledge_break_alignment (Grob_info); + void acknowledge_grob (Grob_info); - DECLARE_TRANSLATOR_LISTENER (tempo_change); + void listen_tempo_change (Stream_event *); }; -Metronome_mark_engraver::Metronome_mark_engraver () +Metronome_mark_engraver::Metronome_mark_engraver (Context *c) + : Engraver (c) { text_ = 0; support_ = 0; @@ -61,7 +62,6 @@ Metronome_mark_engraver::Metronome_mark_engraver () tempo_ev_ = 0; } -IMPLEMENT_TRANSLATOR_LISTENER (Metronome_mark_engraver, tempo_change); void Metronome_mark_engraver::listen_tempo_change (Stream_event *ev) { @@ -138,9 +138,9 @@ Metronome_mark_engraver::stop_translation_timestep () first notational element of the measure if no time signature is present in that measure). */ - if (Grob *mc = Grob::unsmob (get_property ("currentMusicalColumn"))) + if (Grob *mc = unsmob (get_property ("currentMusicalColumn"))) text_->set_parent (mc, X_AXIS); - else if (Grob *cc = Grob::unsmob (get_property ("currentCommandColumn"))) + else if (Grob *cc = unsmob (get_property ("currentCommandColumn"))) text_->set_parent (cc, X_AXIS); } text_->set_object ("side-support-elements", @@ -168,9 +168,15 @@ Metronome_mark_engraver::process_music () } } -ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_aligned); -ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_alignment); -ADD_ACKNOWLEDGER (Metronome_mark_engraver, grob); + +void +Metronome_mark_engraver::boot () +{ + ADD_LISTENER (Metronome_mark_engraver, tempo_change); + ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_aligned); + ADD_ACKNOWLEDGER (Metronome_mark_engraver, break_alignment); + ADD_ACKNOWLEDGER (Metronome_mark_engraver, grob); +} ADD_TRANSLATOR (Metronome_mark_engraver, /* doc */