-void
-Slur_engraver::process_music ()
-{
- if (events_[STOP])
- {
- if (slurs_.size () == 0)
- events_[STOP]->origin ()->warning (_ ("cannot end slur"));
-
-
- end_slurs_ = slurs_;
- slurs_.clear ();
- }
-
- if (events_[START] && slurs_.empty ())
- {
- Stream_event *ev = events_[START];
-
- bool double_slurs = to_boolean (get_property ("doubleSlurs"));
-
- Grob *slur = make_spanner ("Slur", events_[START]->self_scm ());
- Direction updown = to_dir (ev->get_property ("direction"));
- if (updown && !double_slurs)
- set_grob_direction (slur, updown);
-
- slurs_.push_back (slur);
-
- if (double_slurs)
- {
- set_grob_direction (slur, DOWN);
- slur = make_spanner ("Slur", events_[START]->self_scm ());
- set_grob_direction (slur, UP);
- slurs_.push_back (slur);
- }
- }
- set_melisma (slurs_.size ());
-}
-
-void
-Slur_engraver::stop_translation_timestep ()
-{
- if (Grob *g = unsmob_grob (get_property ("currentCommandColumn")))
- {
- for (vsize i = 0; i < end_slurs_.size (); i++)
- Slur::add_extra_encompass (end_slurs_[i], g);
-
- if (!events_[START])
- for (vsize i = 0; i < slurs_.size (); i++)
- Slur::add_extra_encompass (slurs_[i], g);
- }
-
-
- for (vsize i = 0; i < end_slurs_.size (); i++)
- {
- Spanner * s = dynamic_cast<Spanner*> (end_slurs_[i]);
- if (!s->get_bound (RIGHT))
- s->set_bound (RIGHT, unsmob_grob (get_property ("currentMusicalColumn")));
- announce_end_grob (s, SCM_EOL);
- }
- end_slurs_.clear ();
- events_[START] = events_[STOP] = 0;
-}
-
-ADD_ACKNOWLEDGER (Slur_engraver, accidental);