X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fligature-engraver.cc;h=16b2222ab578243a4107e6cc697c6332ad4a73c6;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=822df306ff91d55f83b1d7622b45ebcb9c1998cb;hpb=e0aab46ee287f06765b982c49fd0491ab033fce7;p=lilypond.git diff --git a/lily/ligature-engraver.cc b/lily/ligature-engraver.cc index 822df306ff..16b2222ab5 100644 --- a/lily/ligature-engraver.cc +++ b/lily/ligature-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2002--2006 Juergen Reuter + (c) 2002--2008 Juergen Reuter */ #include "ligature-engraver.hh" @@ -13,8 +13,7 @@ #include "note-head.hh" #include "rest.hh" #include "spanner.hh" -#include "warn.hh" - +#include "stream-event.hh" #include "translator.icc" /* @@ -77,16 +76,11 @@ Ligature_engraver::Ligature_engraver () brew_ligature_primitive_proc = SCM_EOL; } -bool -Ligature_engraver::try_music (Music *m) +void +Ligature_engraver::listen_ligature (Stream_event *ev) { - if (m->is_mus_type ("ligature-event")) - { - Direction d = to_dir (m->get_property ("span-direction")); - events_drul_[d] = m; - return true; - } - return false; + Direction d = to_dir (ev->get_property ("span-direction")); + ASSIGN_EVENT_ONCE (events_drul_[d], ev); } void @@ -96,7 +90,7 @@ Ligature_engraver::process_music () { if (!ligature_) { - events_drul_[STOP]->origin ()->warning (_ ("can't find start of ligature")); + events_drul_[STOP]->origin ()->warning (_ ("cannot find start of ligature")); return; } @@ -193,7 +187,7 @@ Ligature_engraver::acknowledge_note_head (Grob_info info) if (ligature_) { primitives_.push_back (info); - if (info.grob () && (brew_ligature_primitive_proc != SCM_EOL)) + if (info.grob () && brew_ligature_primitive_proc != SCM_EOL) { info.grob ()->set_property ("stencil", brew_ligature_primitive_proc); } @@ -205,7 +199,7 @@ Ligature_engraver::acknowledge_rest (Grob_info info) { if (ligature_) { - info.music_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest")); + info.event_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest")); prev_start_event_->origin ()->warning (_ ("ligature was started here")); // TODO: maybe better should stop ligature here rather than // ignoring the rest?