X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fslur-engraver.cc;h=b88afa21b03dde92b030f19788a2323c54f91e78;hb=14d74ac262744d16fc753ee41042d32860d58633;hp=bad108894a7d94d031eb26b7ec2aaef4b02bd997;hpb=56ad9c71638c9b3e23f75a85a9ba96f19566d400;p=lilypond.git diff --git a/lily/slur-engraver.cc b/lily/slur-engraver.cc index bad108894a..b88afa21b0 100644 --- a/lily/slur-engraver.cc +++ b/lily/slur-engraver.cc @@ -4,9 +4,7 @@ (c) 1997--2004 Han-Wen Nienhuys */ -#include "event.hh" -#include "new-slur.hh" -#include "warn.hh" +#include "slur.hh" #include "note-column.hh" #include "context.hh" #include "directional-element-interface.hh" @@ -42,7 +40,7 @@ public: Slur_engraver::Slur_engraver () { - events_[START] =events_[STOP] = 0; + events_[START] = events_[STOP] = 0; } bool @@ -50,9 +48,6 @@ Slur_engraver::try_music (Music *m) { if (m->is_mus_type ("slur-event")) { - /* - Let's not start more than one slur per moment. - */ Direction d = to_dir (m->get_property ("span-direction")); if (d == START) { @@ -61,9 +56,6 @@ Slur_engraver::try_music (Music *m) } else if (d == STOP) { - if (slurs_.is_empty ()) - return false; - events_[STOP] = m; return true; } @@ -80,13 +72,13 @@ Slur_engraver::set_melisma (bool m) void Slur_engraver::acknowledge_grob (Grob_info info) { - Grob *e =info.grob_; + Grob *e = info.grob_; if (Note_column::has_interface (info.grob_)) { for (int i = slurs_.size (); i--; ) - New_slur::add_column (slurs_[i], e); + Slur::add_column (slurs_[i], e); for (int i = end_slurs_.size (); i-- ; ) - New_slur::add_column (end_slurs_[i], e); + Slur::add_column (end_slurs_[i], e); } else { @@ -95,9 +87,9 @@ Slur_engraver::acknowledge_grob (Grob_info info) || to_boolean (inside)) { for (int i = slurs_.size (); i--; ) - New_slur::add_extra_encompass (slurs_[i], e); + Slur::add_extra_encompass (slurs_[i], e); for (int i = end_slurs_.size (); i--; ) - New_slur::add_extra_encompass (end_slurs_[i], e); + Slur::add_extra_encompass (end_slurs_[i], e); } else if (inside == SCM_BOOL_F) { @@ -107,7 +99,7 @@ Slur_engraver::acknowledge_grob (Grob_info info) if (slur) { - e->add_offset_callback (New_slur::outside_slur_callback_proc, Y_AXIS); + e->add_offset_callback (Slur::outside_slur_callback_proc, Y_AXIS); e->set_property ("slur", slur->self_scm()); } } @@ -126,6 +118,11 @@ Slur_engraver::process_music () { if (events_[STOP]) { + if (slurs_.size() == 0) + { + events_[STOP]->origin()->warning (_ ("No slur to end")); + } + end_slurs_ = slurs_; slurs_.clear (); } @@ -161,10 +158,10 @@ Slur_engraver::stop_translation_timestep () events_[START] = events_[STOP] = 0; } -ENTER_DESCRIPTION (Slur_engraver, +ADD_TRANSLATOR (Slur_engraver, /* descr */ "Build slurs grobs from slur events", /* creats*/ "Slur", /* accepts */ "slur-event", - /* acks */ "note-column-interface accidental-interface fingering-interface script-interface tie-interface", + /* acks */ "note-column-interface accidental-interface fingering-interface script-interface tie-interface text-script-interface", /* reads */ "slurMelismaBusy doubleSlurs", /* write */ "");