2 ligature-engraver.hh -- declare Ligature_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 2002--2007 Juergen Reuter <reuter@ipd.uka.de>
9 #ifndef LIGATURE_ENGRAVER_HH
10 #define LIGATURE_ENGRAVER_HH
12 #include "engraver.hh"
15 class Ligature_engraver
: public Engraver
19 void stop_translation_timestep ();
20 virtual void finalize ();
22 DECLARE_ACKNOWLEDGER (rest
);
23 DECLARE_ACKNOWLEDGER (note_head
);
24 virtual void listen_ligature (Stream_event
*ev
);
25 void process_music ();
26 virtual Spanner
*create_ligature_spanner () = 0;
27 virtual void typeset_ligature (Spanner
*ligature
,
28 vector
<Grob_info
> primitives
) = 0;
29 virtual Spanner
*current_ligature ();
30 SCM brew_ligature_primitive_proc
;
33 // no TRANSLATOR_DECLARATIONS (Ligature_engraver) needed since this
37 Drul_array
<Stream_event
*> events_drul_
;
40 vector
<Grob_info
> primitives_
;
42 Spanner
*finished_ligature_
;
43 vector
<Grob_info
> finished_primitives_
;
45 Stream_event
*prev_start_event_
;
47 // moment where ligature started.
48 Moment ligature_start_mom_
;
53 #endif // LIGATURE_ENGRAVER_HH