X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffingering-engraver.cc;h=b5f36ef79b6ed94c5145c5686e8d47fefaead13a;hb=ba3045ce76cd37a4e11fd775fa04ce4b7586ad77;hp=a8c4fcf68085bedfe8c5f78bd7e2306cc6345d8b;hpb=31568c504806f35aac420a394c9eab07abd9faa7;p=lilypond.git diff --git a/lily/fingering-engraver.cc b/lily/fingering-engraver.cc index a8c4fcf680..b5f36ef79b 100644 --- a/lily/fingering-engraver.cc +++ b/lily/fingering-engraver.cc @@ -7,39 +7,52 @@ */ #include "engraver.hh" -#include "side-position-interface.hh" -#include "stem.hh" +#include "pitch.hh" #include "rhythmic-head.hh" #include "self-alignment-interface.hh" -#include "pitch.hh" +#include "side-position-interface.hh" +#include "stem.hh" +#include "stream-event.hh" +#include "item.hh" + +#include "translator.icc" class Fingering_engraver : public Engraver { - vector events_; + vector events_; vector fingerings_; public: TRANSLATOR_DECLARATIONS (Fingering_engraver); protected: - virtual bool try_music (Music *m); void stop_translation_timestep (); void process_music (); + DECLARE_TRANSLATOR_LISTENER (fingering); + DECLARE_TRANSLATOR_LISTENER (stroke_finger); DECLARE_ACKNOWLEDGER (rhythmic_head); DECLARE_ACKNOWLEDGER (stem); private: - void make_script (Direction, Music *, int); + void make_script (Direction, Stream_event *, int); }; -bool -Fingering_engraver::try_music (Music *m) +IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, fingering); +void +Fingering_engraver::listen_fingering (Stream_event *ev) { - if (m->is_mus_type ("fingering-event")) - { - events_.push_back (m); - return true; - } - return false; + events_.push_back (ev); +} + +IMPLEMENT_TRANSLATOR_LISTENER (Fingering_engraver, stroke_finger); +void +Fingering_engraver::listen_stroke_finger (Stream_event *ev) +{ + /* + FIXME: should do something. + + This function is mainly here to shut up a warning + */ + (void)ev; } void @@ -72,7 +85,7 @@ Fingering_engraver::process_music () } void -Fingering_engraver::make_script (Direction d, Music *r, int i) +Fingering_engraver::make_script (Direction d, Stream_event *r, int i) { Item *fingering = make_item ("Fingering", r->self_scm ()); @@ -104,7 +117,7 @@ Fingering_engraver::make_script (Direction d, Music *r, int i) fingering->set_property ("script-priority", scm_from_int (priority)); - if (!is_direction (fingering->get_property_data (ly_symbol2scm ("direction")))) + if (!is_direction (fingering->get_property_data ("direction"))) { if (d) fingering->set_property ("direction", scm_from_int (d)); @@ -112,9 +125,6 @@ Fingering_engraver::make_script (Direction d, Music *r, int i) fingering->set_property ("direction", scm_from_int (RIGHT)); } - SCM dig = r->get_property ("digit"); - fingering->set_property ("text", scm_number_to_string (dig, scm_from_int (10))); - fingerings_.push_back (fingering); } @@ -132,13 +142,13 @@ Fingering_engraver::Fingering_engraver () { } -#include "translator.icc" - ADD_ACKNOWLEDGER (Fingering_engraver, rhythmic_head); ADD_ACKNOWLEDGER (Fingering_engraver, stem); + ADD_TRANSLATOR (Fingering_engraver, - /* doc */ "Create fingering-scripts", - /* create */ "Fingering", - /* accept */ "fingering-event", + /* doc */ + "Create fingering-scripts", + /* create */ + "Fingering", /* read */ "", /* write */ "");