X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fligature-engraver.hh;h=f74cf6b6cedfcc2c7ac42a341f45ff442468b6f3;hb=5b4b0d6e9a197e8f9eb085b7c2ad78b8be3e5cfc;hp=5e8efb7eeb77b558e060b94c1d73e31cbc6268ec;hpb=a6ee9dcd388111e842064a8d46ab06c4897a00d2;p=lilypond.git diff --git a/lily/include/ligature-engraver.hh b/lily/include/ligature-engraver.hh index 5e8efb7eeb..f74cf6b6ce 100644 --- a/lily/include/ligature-engraver.hh +++ b/lily/include/ligature-engraver.hh @@ -1,46 +1,53 @@ -/* +/* ligature-engraver.hh -- declare Ligature_engraver - + source file of the GNU LilyPond music typesetter - - (c) 2002 Juergen Reuter - - */ -#ifndef LIGATUREENGRAVER_HH -#define LIGATUREEENGRAVER_HH + + (c) 2002--2008 Juergen Reuter +*/ + +#ifndef LIGATURE_ENGRAVER_HH +#define LIGATURE_ENGRAVER_HH #include "engraver.hh" +#include "moment.hh" class Ligature_engraver : public Engraver { protected: - virtual void stop_translation_timestep (); - virtual void start_translation_timestep (); + Ligature_engraver (); + void stop_translation_timestep (); virtual void finalize (); - virtual void acknowledge_grob (Grob_info); - virtual bool try_music (Music*); - virtual void process_music (); - virtual void try_stop_ligature (); - virtual Spanner *create_ligature_spanner (); - - Spanner *finished_ligature_; - Spanner *ligature_; + DECLARE_ACKNOWLEDGER (rest); + DECLARE_ACKNOWLEDGER (note_head); + virtual void listen_ligature (Stream_event *ev); + void process_music (); + virtual Spanner *create_ligature_spanner () = 0; + virtual void typeset_ligature (Spanner *ligature, + vector primitives) = 0; + virtual Spanner *current_ligature (); SCM brew_ligature_primitive_proc; public: - TRANSLATOR_DECLARATIONS(Ligature_engraver); + // no TRANSLATOR_DECLARATIONS (Ligature_engraver) needed since this + // class is abstract private: - Drul_array reqs_drul_; - - Span_req *prev_start_req_; + Drul_array events_drul_; + + Spanner *ligature_; + vector primitives_; + + Spanner *finished_ligature_; + vector finished_primitives_; + + Stream_event *prev_start_event_; // moment where ligature started. Moment ligature_start_mom_; - Grob *last_bound; - + Grob *last_bound_; }; -#endif // ENGRAVERGROUP_HH +#endif // LIGATURE_ENGRAVER_HH