- vector<Stream_event *> start_events_;
- vector<Stream_event *> stop_events_;
- vector<Grob *> slurs_;
- vector<Grob *> end_slurs_;
- vector<Grob_info> objects_to_acknowledge_;
-
- void set_melisma (bool);
-
-protected:
- DECLARE_TRANSLATOR_LISTENER (slur);
- DECLARE_ACKNOWLEDGER (inline_accidental);
- DECLARE_ACKNOWLEDGER (fingering);
- DECLARE_ACKNOWLEDGER (note_column);
- DECLARE_ACKNOWLEDGER (script);
- DECLARE_ACKNOWLEDGER (dots);
- DECLARE_ACKNOWLEDGER (text_script);
- DECLARE_ACKNOWLEDGER (tie);
- DECLARE_ACKNOWLEDGER (tuplet_number);
-
- void acknowledge_extra_object (Grob_info);
- void stop_translation_timestep ();
- void process_music ();
-
- virtual void finalize ();
-
-public:
- TRANSLATOR_DECLARATIONS (Slur_engraver);
-};
-
-Slur_engraver::Slur_engraver ()
+}
+
+void
+Slur_engraver::set_melisma (bool m)
+{
+ context ()->set_property ("slurMelismaBusy", ly_bool2scm (m));
+}
+
+void
+Slur_engraver::boot ()
+{
+ ADD_LISTENER (Slur_engraver, slur);
+ ADD_LISTENER (Slur_engraver, note);
+ ADD_ACKNOWLEDGER_FOR (Slur_engraver, extra_object, inline_accidental);
+ ADD_ACKNOWLEDGER_FOR (Slur_engraver, extra_object, fingering);
+ ADD_ACKNOWLEDGER (Slur_engraver, note_column);
+ ADD_ACKNOWLEDGER (Slur_engraver, script);
+ ADD_ACKNOWLEDGER_FOR (Slur_engraver, extra_object, text_script);
+ ADD_ACKNOWLEDGER_FOR (Slur_engraver, extra_object, dots);
+ ADD_END_ACKNOWLEDGER_FOR (Slur_engraver, extra_object, tie);
+ ADD_ACKNOWLEDGER_FOR (Slur_engraver, extra_object, tuplet_number);
+}
+
+ADD_TRANSLATOR (Slur_engraver,
+ /* doc */
+ "Build slur grobs from slur events.",
+
+ /* create */
+ "Slur ",
+
+ /* read */
+ "slurMelismaBusy "
+ "doubleSlurs ",
+
+ /* write */
+ ""
+ );
+
+void
+Slur_engraver::derived_mark () const