2 spacing-engraver.hh -- declare Spacing_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1999--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #ifndef SPACING_ENGRAVER_HH
11 #define SPACING_ENGRAVER_HH
13 #include "engraver.hh"
18 Score_element_info info_;
24 Rhythmic_tuple (Score_element_info i, Moment m )
29 static int time_compare (Rhythmic_tuple const &, Rhythmic_tuple const &);
33 Acknowledge rhythmic elements, for initializing spacing fields in
36 should be the last one of the toplevel context
38 class Spacing_engraver : public Engraver
40 PQueue<Rhythmic_tuple> playing_durations_;
41 Array<Rhythmic_tuple> now_durations_;
42 Array<Rhythmic_tuple> stopped_durations_;
44 Spacing_spanner * spacing_p_;
46 VIRTUAL_COPY_CONS(Translator);
47 virtual void acknowledge_element (Score_element_info);
48 virtual void do_post_move_processing ();
49 virtual void do_pre_move_processing ();
50 virtual void do_creation_processing ();
51 virtual void do_removal_processing ();
56 #endif /* SPACING_ENGRAVER_HH */