/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2002--2012 Juergen Reuter <reuter@ipd.uka.de>,
+ Copyright (C) 2002--2015 Juergen Reuter <reuter@ipd.uka.de>,
Pal Benko <benkop@freestart.hu>
LilyPond is free software: you can redistribute it and/or modify
virtual Spanner *create_ligature_spanner ();
virtual void build_ligature (Spanner *ligature,
vector<Grob_info> const &primitives);
- DECLARE_TRANSLATOR_LISTENER (ligature);
public:
TRANSLATOR_DECLARATIONS (Mensural_ligature_engraver);
+ TRANSLATOR_INHERIT (Coherent_ligature_engraver);
private:
void transform_heads (vector<Grob_info> const &primitives);
Real &min_length);
};
-IMPLEMENT_TRANSLATOR_LISTENER (Mensural_ligature_engraver, ligature);
-void
-Mensural_ligature_engraver::listen_ligature (Stream_event *ev)
-{
- Ligature_engraver::listen_ligature (ev);
-}
-
Mensural_ligature_engraver::Mensural_ligature_engraver ()
{
brew_ligature_primitive_proc
continue;
}
- int pitch = unsmob_pitch (nr->get_property ("pitch"))->steps ();
+ int pitch = unsmob<Pitch> (nr->get_property ("pitch"))->steps ();
int prim = 0;
if (at_beginning)
}
// b. descendens longa or brevis
else if (i < s - 1
- && (unsmob_pitch (primitives[i + 1].event_cause ()
+ && (unsmob<Pitch> (primitives[i + 1].event_cause ()
->get_property ("pitch"))->steps () < pitch)
&& duration_log > -3)
{
/*
breve: check whether descending
*/
- int const next_pitch = unsmob_pitch
+ int const next_pitch = unsmob<Pitch>
(next_info.event_cause ()->get_property ("pitch"))->steps ();
if (next_pitch < pitch)
/*
ligature->set_property ("minimum-length", scm_from_double (min_length));
}
-ADD_ACKNOWLEDGER (Mensural_ligature_engraver, rest);
-ADD_ACKNOWLEDGER (Mensural_ligature_engraver, ligature_head);
+
+void
+Mensural_ligature_engraver::boot ()
+{
+ ADD_LISTENER (Mensural_ligature_engraver, ligature);
+ ADD_ACKNOWLEDGER (Mensural_ligature_engraver, rest);
+ ADD_ACKNOWLEDGER (Mensural_ligature_engraver, ligature_head);
+}
ADD_TRANSLATOR (Mensural_ligature_engraver,
/* doc */