along with LilyPond. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "engraver.hh"
-
-#include "context.hh"
-#include "directional-element-interface.hh"
-#include "international.hh"
-#include "note-column.hh"
-#include "slur.hh"
-#include "slur-proto-engraver.hh"
-#include "spanner.hh"
-#include "stream-event.hh"
-#include "warn.hh"
+#include "slur-engraver.hh"
#include "translator.icc"
-class Phrasing_slur_engraver : public Slur_proto_engraver
+class Phrasing_slur_engraver : public Slur_engraver
{
-protected:
- DECLARE_TRANSLATOR_LISTENER (phrasing_slur);
- DECLARE_TRANSLATOR_LISTENER (note);
- DECLARE_ACKNOWLEDGER (slur);
+ virtual SCM event_symbol () const;
+ virtual bool double_property () const;
+ virtual SCM grob_symbol () const;
+ virtual const char* object_name () const;
+ virtual void set_melisma (bool);
public:
- SCM event_symbol ();
TRANSLATOR_DECLARATIONS (Phrasing_slur_engraver);
- TRANSLATOR_INHERIT (Slur_proto_engraver);
+ TRANSLATOR_INHERIT (Slur_engraver);
};
-Phrasing_slur_engraver::Phrasing_slur_engraver () :
- Slur_proto_engraver (0, "PhrasingSlur", "phrasing slur", "phrasing-slur-event")
+SCM
+Phrasing_slur_engraver::event_symbol () const
+{
+ return ly_symbol2scm ("phrasing-slur-event");
+}
+
+bool
+Phrasing_slur_engraver::double_property () const
{
+ return false;
}
SCM
-Phrasing_slur_engraver::event_symbol ()
+Phrasing_slur_engraver::grob_symbol () const
{
- // Need a string constant for memoization
- return ly_symbol2scm ("phrasing-slur-event");
+ return ly_symbol2scm ("PhrasingSlur");
}
-void
-Phrasing_slur_engraver::listen_phrasing_slur (Stream_event *ev)
+const char *
+Phrasing_slur_engraver::object_name () const
{
- Slur_proto_engraver::listen_slur (ev);
+ return "phrasing slur";
}
-void
-Phrasing_slur_engraver::listen_note (Stream_event *ev)
+Phrasing_slur_engraver::Phrasing_slur_engraver (Context *c)
+ : Slur_engraver (c)
{
- Slur_proto_engraver::listen_note (ev);
}
void
-Phrasing_slur_engraver::acknowledge_slur (Grob_info info)
+Phrasing_slur_engraver::set_melisma (bool)
{
- acknowledge_extra_object (info);
}
-
void
Phrasing_slur_engraver::boot ()
{
- ADD_LISTENER (Phrasing_slur_engraver, phrasing_slur);
+ ADD_LISTENER_FOR (Phrasing_slur_engraver, slur, phrasing_slur);
ADD_LISTENER (Phrasing_slur_engraver, note);
- ADD_ACKNOWLEDGER (Phrasing_slur_engraver, inline_accidental);
- ADD_ACKNOWLEDGER (Phrasing_slur_engraver, fingering)
+ ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, inline_accidental);
+ ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, fingering);
ADD_ACKNOWLEDGER (Phrasing_slur_engraver, note_column);
- ADD_ACKNOWLEDGER (Phrasing_slur_engraver, slur);
+ ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, slur);
ADD_ACKNOWLEDGER (Phrasing_slur_engraver, script);
- ADD_ACKNOWLEDGER (Phrasing_slur_engraver, dots);
- ADD_ACKNOWLEDGER (Phrasing_slur_engraver, text_script);
- ADD_END_ACKNOWLEDGER (Phrasing_slur_engraver, tie);
- ADD_ACKNOWLEDGER (Phrasing_slur_engraver, tuplet_number);
+ ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, dots);
+ ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, text_script);
+ ADD_END_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, tie);
+ ADD_ACKNOWLEDGER_FOR (Phrasing_slur_engraver, extra_object, tuplet_number);
}
ADD_TRANSLATOR (Phrasing_slur_engraver,