-
-void
-Slur_engraver::acknowledge_script (Grob_info info)
-{
- if (!info.grob ()->internal_has_interface (ly_symbol2scm ("dynamic-interface")))
- acknowledge_extra_object (info);
-}
-
-void
-Slur_engraver::acknowledge_text_script (Grob_info info)
-{
- acknowledge_extra_object (info);
-}
-
-void
-Slur_engraver::acknowledge_tie (Grob_info info)
-{
- acknowledge_extra_object (info);
-}
-
-void
-Slur_engraver::finalize ()
-{
- if (slurs_.size ())
- slurs_[0]->warning (_ ("unterminated slur"));
-}
-
-void
-Slur_engraver::process_music ()
-{
- if (events_[STOP])
- {
- if (slurs_.size () == 0)
- events_[STOP]->origin ()->warning (_ ("can't 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 ()
-{
- for (vsize i = 0; i < end_slurs_.size (); i++)
- announce_end_grob (end_slurs_[i], SCM_EOL);
- end_slurs_.clear ();
- events_[START] = events_[STOP] = 0;
-}
-
-ADD_ACKNOWLEDGER (Slur_engraver, accidental);
-ADD_ACKNOWLEDGER (Slur_engraver, dynamic_line_spanner);