X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgregorian-ligature-engraver.cc;h=31263e9a128c4b26204a492a91043e0a46fb63ca;hb=9f3572d98bb948c9689cd1f75401a029451fa001;hp=e6b3c9b534ed67737ce708abf47f70f419afad42;hpb=04265f11d1f21416ccebd2dcaa1d903dc781b36e;p=lilypond.git diff --git a/lily/gregorian-ligature-engraver.cc b/lily/gregorian-ligature-engraver.cc index e6b3c9b534..31263e9a12 100644 --- a/lily/gregorian-ligature-engraver.cc +++ b/lily/gregorian-ligature-engraver.cc @@ -14,12 +14,8 @@ #include "pitch.hh" #include "spanner.hh" #include "staff-symbol-referencer.hh" -#include "stream-event.hh" #include "warn.hh" -/* ASSIGN_EVENT_ONCE */ -#include "translator.icc" - /* * This abstract class is the common superclass for all ligature * engravers for Gregorian chant notation. It cares for the musical @@ -36,10 +32,16 @@ Gregorian_ligature_engraver::Gregorian_ligature_engraver () pes_or_flexa_req_ = 0; } -void -Gregorian_ligature_engraver::listen_pes_or_flexa (Stream_event *ev) +bool +Gregorian_ligature_engraver::try_music (Music *m) { - ASSIGN_EVENT_ONCE (pes_or_flexa_req_, ev); + if (m->is_mus_type ("pes-or-flexa-event")) + { + pes_or_flexa_req_ = m; + return true; + } + else + return Ligature_engraver::try_music (m); } void fix_prefix (char *name, int mask, @@ -202,9 +204,9 @@ provide_context_info (vector primitives) for (vsize i = 0; i < primitives.size (); i++) { Grob *primitive = primitives[i].grob (); - Stream_event *event_cause = primitives[i].event_cause (); + Music *music_cause = primitives[i].music_cause (); int context_info = 0; - int pitch = unsmob_pitch (event_cause->get_property ("pitch"))->steps (); + int pitch = unsmob_pitch (music_cause->get_property ("pitch"))->steps (); int prefix_set = scm_to_int (primitive->get_property ("prefix-set")); if (prefix_set & PES_OR_FLEXA)