public:
TRANSLATOR_DECLARATIONS (Vaticana_ligature_engraver);
-
+ TRANSLATOR_INHERIT (Gregorian_ligature_engraver);
protected:
virtual Spanner *create_ligature_spanner ();
virtual void transform_heads (Spanner *ligature,
vector<Grob_info> const &primitives);
- DECLARE_TRANSLATOR_LISTENER (pes_or_flexa);
- DECLARE_TRANSLATOR_LISTENER (ligature);
};
-IMPLEMENT_TRANSLATOR_LISTENER (Vaticana_ligature_engraver, pes_or_flexa);
-void
-Vaticana_ligature_engraver::listen_pes_or_flexa (Stream_event *ev)
-{
- Gregorian_ligature_engraver::listen_pes_or_flexa (ev);
-}
-
-IMPLEMENT_TRANSLATOR_LISTENER (Vaticana_ligature_engraver, ligature);
-void
-Vaticana_ligature_engraver::listen_ligature (Stream_event *ev)
-{
- Ligature_engraver::listen_ligature (ev);
-}
-
-Vaticana_ligature_engraver::Vaticana_ligature_engraver ()
+Vaticana_ligature_engraver::Vaticana_ligature_engraver (Context *c)
+ : Gregorian_ligature_engraver (c)
{
brew_ligature_primitive_proc
= Vaticana_ligature::brew_ligature_primitive_proc;
// bitmask based O (1) test); where n=<number of primitives in the
// ligature> (which is typically small (n<10), though).
Stream_event *new_cause = primitive.event_cause ();
- int new_pitch = Pitch::unsmob (new_cause->get_property ("pitch"))->steps ();
+ int new_pitch = unsmob<Pitch> (new_cause->get_property ("pitch"))->steps ();
for (vsize i = 0; i < augmented_primitives_.size (); i++)
{
Stream_event *cause = augmented_primitives_[i].event_cause ();
- int pitch = Pitch::unsmob (cause->get_property ("pitch"))->steps ();
+ int pitch = unsmob<Pitch> (cause->get_property ("pitch"))->steps ();
if (pitch == new_pitch)
{
primitive.grob ()->
#endif
}
-ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, rest);
-ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, ligature_head);
+void
+Vaticana_ligature_engraver::boot ()
+{
+ ADD_LISTENER (Vaticana_ligature_engraver, pes_or_flexa);
+ ADD_LISTENER (Vaticana_ligature_engraver, ligature);
+ ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, rest);
+ ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, ligature_head);
+}
+
ADD_TRANSLATOR (Vaticana_ligature_engraver,
/* doc */
"Handle ligatures by glueing special ligature heads"