X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffretboard-engraver.cc;h=28b4bd1931f208e544ee219ee2eb7a65556d10ab;hb=9468b77cb2ae93b992bfb9105016f3393d206b47;hp=7f99713d9e470cc7d4f971844e8d663e7be5fce3;hpb=cb0b407e567feca71cbc5f9479a06b266c69a26c;p=lilypond.git diff --git a/lily/fretboard-engraver.cc b/lily/fretboard-engraver.cc index 7f99713d9e..28b4bd1931 100644 --- a/lily/fretboard-engraver.cc +++ b/lily/fretboard-engraver.cc @@ -19,6 +19,7 @@ #include #include +using namespace std; #include "articulations.hh" #include "context.hh" @@ -30,8 +31,6 @@ #include "translator.icc" -using std::vector; - /** make (guitar-like) tablature note */ @@ -49,9 +48,9 @@ protected: void stop_translation_timestep (); void process_music (); virtual void derived_mark () const; - DECLARE_TRANSLATOR_LISTENER (note); - DECLARE_TRANSLATOR_LISTENER (string_number); - DECLARE_TRANSLATOR_LISTENER (fingering); + void listen_note (Stream_event *); + void listen_string_number (Stream_event *); + void listen_fingering (Stream_event *); private: SCM last_placements_; @@ -63,27 +62,25 @@ Fretboard_engraver::derived_mark () const scm_gc_mark (last_placements_); } -Fretboard_engraver::Fretboard_engraver () +Fretboard_engraver::Fretboard_engraver (Context *c) + : Engraver (c) { fret_board_ = 0; last_placements_ = SCM_BOOL_F; } -IMPLEMENT_TRANSLATOR_LISTENER (Fretboard_engraver, note); void Fretboard_engraver::listen_note (Stream_event *ev) { note_events_.push_back (ev); } -IMPLEMENT_TRANSLATOR_LISTENER (Fretboard_engraver, string_number); void Fretboard_engraver::listen_string_number (Stream_event *ev) { tabstring_events_.push_back (ev); } -IMPLEMENT_TRANSLATOR_LISTENER (Fretboard_engraver, fingering); void Fretboard_engraver::listen_fingering (Stream_event *ev) { @@ -129,6 +126,14 @@ Fretboard_engraver::stop_translation_timestep () fingering_events_.clear (); } +void +Fretboard_engraver::boot () +{ + ADD_LISTENER (Fretboard_engraver, note); + ADD_LISTENER (Fretboard_engraver, string_number); + ADD_LISTENER (Fretboard_engraver, fingering); +} + ADD_TRANSLATOR (Fretboard_engraver, /* doc */ "Generate fret diagram from one or more events of type"