X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbeam-engraver.cc;h=f252eea5e2a1037c715ac72ef3aaf700bea8a0c0;hb=90e4d7057f3857da049dfda3d130017d4719bd6b;hp=277d1b0a0eae6a6de6dfcd9ff46f3a8ef9f26d22;hpb=7c36dbb1834c7c68e4b94777241de3ea02971aca;p=lilypond.git diff --git a/lily/beam-engraver.cc b/lily/beam-engraver.cc index 277d1b0a0e..f252eea5e2 100644 --- a/lily/beam-engraver.cc +++ b/lily/beam-engraver.cc @@ -40,6 +40,7 @@ class Beam_engraver : public Engraver public: void acknowledge_stem (Grob_info); void acknowledge_rest (Grob_info); + void listen_beam (Stream_event *); protected: Stream_event *start_ev_; @@ -77,7 +78,6 @@ protected: virtual bool valid_start_point (); virtual bool valid_end_point (); - void listen_beam (Stream_event *); public: TRANSLATOR_DECLARATIONS (Beam_engraver); }; @@ -100,7 +100,8 @@ Beam_engraver::valid_end_point () return valid_start_point (); } -Beam_engraver::Beam_engraver () +Beam_engraver::Beam_engraver (Context *c) + : Engraver (c) { beam_ = 0; finished_beam_ = 0; @@ -343,14 +344,14 @@ class Grace_beam_engraver : public Beam_engraver public: TRANSLATOR_DECLARATIONS (Grace_beam_engraver); TRANSLATOR_INHERIT (Beam_engraver); - void listen_beam (Stream_event *); protected: virtual bool valid_start_point (); virtual bool valid_end_point (); }; -Grace_beam_engraver::Grace_beam_engraver () +Grace_beam_engraver::Grace_beam_engraver (Context *c) + : Beam_engraver (c) { } @@ -368,27 +369,12 @@ Grace_beam_engraver::valid_end_point () return beam_ && valid_start_point (); } -/* - Ugh, C&P code. - */ -void -Grace_beam_engraver::listen_beam (Stream_event *ev) -{ - Direction d = to_dir (ev->get_property ("span-direction")); - - if (d == START && valid_start_point ()) - start_ev_ = ev; - else if (d == STOP && valid_end_point ()) - stop_ev_ = ev; -} - - void Grace_beam_engraver::boot () { ADD_LISTENER (Grace_beam_engraver, beam); - ADD_ACKNOWLEDGER (Beam_engraver, stem); - ADD_ACKNOWLEDGER (Beam_engraver, rest); + ADD_ACKNOWLEDGER (Grace_beam_engraver, stem); + ADD_ACKNOWLEDGER (Grace_beam_engraver, rest); } ADD_TRANSLATOR (Grace_beam_engraver,