X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Frepeat-tie-engraver.cc;h=aebed3fdbab2db162214d758a497a80ab105a51e;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=9c59ac01c9a85131360b31e84da92676dc1df4e1;hpb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;p=lilypond.git diff --git a/lily/repeat-tie-engraver.cc b/lily/repeat-tie-engraver.cc index 9c59ac01c9..aebed3fdba 100644 --- a/lily/repeat-tie-engraver.cc +++ b/lily/repeat-tie-engraver.cc @@ -32,14 +32,15 @@ class Repeat_tie_engraver : public Engraver vector semi_ties_; void stop_translation_timestep (); - DECLARE_ACKNOWLEDGER (note_head); - DECLARE_TRANSLATOR_LISTENER (repeat_tie); + void acknowledge_note_head (Grob_info); + void listen_repeat_tie (Stream_event *); public: TRANSLATOR_DECLARATIONS (Repeat_tie_engraver); }; -Repeat_tie_engraver::Repeat_tie_engraver () +Repeat_tie_engraver::Repeat_tie_engraver (Context *c) + : Engraver (c) { event_ = 0; semi_tie_column_ = 0; @@ -53,7 +54,6 @@ Repeat_tie_engraver::stop_translation_timestep () semi_ties_.clear (); } -IMPLEMENT_TRANSLATOR_LISTENER (Repeat_tie_engraver, repeat_tie); void Repeat_tie_engraver::listen_repeat_tie (Stream_event *ev) { @@ -68,7 +68,7 @@ Repeat_tie_engraver::acknowledge_note_head (Grob_info inf) if (!semi_tie_column_) { - semi_tie_column_ = make_item ("RepeatTieColumn", event_->self_scm ()); + semi_tie_column_ = make_item ("RepeatTieColumn", SCM_EOL); } SCM cause = event_->self_scm (); @@ -80,15 +80,21 @@ Repeat_tie_engraver::acknowledge_note_head (Grob_info inf) semi_tie->set_parent (semi_tie_column_, Y_AXIS); semi_ties_.push_back (semi_tie); - if (is_direction (Stream_event::unsmob (cause)->get_property ("direction"))) + if (is_direction (unsmob (cause)->get_property ("direction"))) { - Direction d = to_dir (Stream_event::unsmob (cause)->get_property ("direction")); + Direction d = to_dir (unsmob (cause)->get_property ("direction")); semi_tie->set_property ("direction", scm_from_int (d)); } } -ADD_ACKNOWLEDGER (Repeat_tie_engraver, note_head); +void +Repeat_tie_engraver::boot () +{ + ADD_LISTENER (Repeat_tie_engraver, repeat_tie); + ADD_ACKNOWLEDGER (Repeat_tie_engraver, note_head); +} + ADD_TRANSLATOR (Repeat_tie_engraver, /* doc */ "Create repeat ties.",