X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fchord-name-engraver.cc;h=3d989ccfb14de07ee33cf981f0e5e67ed338a3cb;hb=5d84bfad4626892bcffd05adcced53c8a2329047;hp=bec242fdc7119d9d8d23bd53bedb78dfcfd0073e;hpb=f127e14af04f474d20406ca0e0f76f05061ee103;p=lilypond.git diff --git a/lily/chord-name-engraver.cc b/lily/chord-name-engraver.cc index bec242fdc7..3d989ccfb1 100644 --- a/lily/chord-name-engraver.cc +++ b/lily/chord-name-engraver.cc @@ -32,8 +32,6 @@ #include "translator.icc" -using std::vector; - class Chord_name_engraver : public Engraver { TRANSLATOR_DECLARATIONS (Chord_name_engraver); @@ -41,8 +39,8 @@ protected: void stop_translation_timestep (); void process_music (); virtual void finalize (); - DECLARE_TRANSLATOR_LISTENER (note); - DECLARE_TRANSLATOR_LISTENER (rest); + void listen_note (Stream_event *); + void listen_rest (Stream_event *); private: vector notes_; @@ -54,7 +52,8 @@ Chord_name_engraver::finalize () { } -Chord_name_engraver::Chord_name_engraver () +Chord_name_engraver::Chord_name_engraver (Context *c) + : Engraver (c) { rest_event_ = 0; } @@ -145,14 +144,12 @@ Chord_name_engraver::process_music () context ()->set_property ("lastChord", markup); } -IMPLEMENT_TRANSLATOR_LISTENER (Chord_name_engraver, note); void Chord_name_engraver::listen_note (Stream_event *ev) { notes_.push_back (ev); } -IMPLEMENT_TRANSLATOR_LISTENER (Chord_name_engraver, rest); void Chord_name_engraver::listen_rest (Stream_event *ev) { @@ -170,6 +167,13 @@ Chord_name_engraver::stop_translation_timestep () The READs description is not strictly accurate: which properties are read depend on the chord naming function active. */ +void +Chord_name_engraver::boot () +{ + ADD_LISTENER (Chord_name_engraver, note); + ADD_LISTENER (Chord_name_engraver, rest); +} + ADD_TRANSLATOR (Chord_name_engraver, /* doc */ "Catch note and rest events and generate the appropriate chordname.",