-void
-Phrasing_slur_engraver::finalize ()
-{
- for (vsize i = 0; i < slurs_.size (); i++)
- {
- slurs_[i]->warning (_ ("unterminated phrasing slur"));
- slurs_[i]->suicide ();
- }
-}
-
-void
-Phrasing_slur_engraver::process_music ()
-{
- for (vsize i = 0; i < stop_events_.size (); i++)
- {
- Stream_event *ev = stop_events_[i];
- string id = robust_scm2string (ev->get_property ("spanner-id"), "");
-
- // Find the slur that is ended with this event (by checking the spanner-id)
- bool ended = false;
- for (vsize j = slurs_.size (); j--;)
- {
- if (id == robust_scm2string (slurs_[j]->get_property ("spanner-id"), ""))
- {
- ended = true;
- end_slurs_.push_back (slurs_[j]);
- slurs_.erase (slurs_.begin () + j);
- }
- }
- if (!ended)
- ev->origin ()->warning (_ ("cannot end phrasing slur"));
- }
-
- for (vsize i = 0; i < start_events_.size (); i++)
- {
- Stream_event *ev = start_events_[i];
- string id = robust_scm2string (ev->get_property ("spanner-id"), "");
- bool have_slur = false;
- // Check if we already have a slur with the same spanner-id.
- // In that case, don't create a new slur, but print a warning
- for (vsize i = 0; i < slurs_.size (); i++)
- have_slur = have_slur || (id == robust_scm2string (slurs_[i]->get_property ("spanner-id"), ""));
-
- if (have_slur)
- ev->origin ()->warning(_ ("already have phrasing slur"));
- else
- {
- Grob *slur = make_spanner ("PhrasingSlur", ev->self_scm ());
- Direction updown = to_dir (ev->get_property ("direction"));
- slur->set_property ("spanner-id", ly_string2scm (id));
- if (updown)
- set_grob_direction (slur, updown);
- slurs_.push_back (slur);
- }
- }
-}
-
-void
-Phrasing_slur_engraver::stop_translation_timestep ()
-{
- end_slurs_.clear ();
- start_events_.clear ();
- stop_events_.clear ();
-}
-
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, accidental);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, fingering)
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, note_column);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, slur);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, script);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, text_script);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tie);
-ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tuplet_number);
-