2 ctie-engraver.hh -- declare Tie_engraver
4 source file of the GNU LilyPond music typesetter
6 (c) 1998--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
10 #ifndef CTIE_ENGRAVER_HH
11 #define CTIE_ENGRAVER_HH
14 #include "engraver.hh"
16 struct CHead_melodic_tuple {
20 CHead_melodic_tuple ();
21 CHead_melodic_tuple (Note_head*, Melodic_req*, Moment);
22 static int pitch_compare (CHead_melodic_tuple const &, CHead_melodic_tuple const &);
23 static int time_compare (CHead_melodic_tuple const &, CHead_melodic_tuple const &);
26 inline int compare (CHead_melodic_tuple const &a, CHead_melodic_tuple const &b)
28 return CHead_melodic_tuple::time_compare (a,b);
32 class Tie_engraver : public Engraver
34 PQueue<CHead_melodic_tuple> past_notes_pq_;
36 Array<CHead_melodic_tuple> now_heads_;
37 Array<CHead_melodic_tuple> stopped_heads_;
38 Link_array<Tie> tie_p_arr_;
41 virtual void do_post_move_processing ();
42 virtual void do_pre_move_processing ();
43 virtual void acknowledge_element (Score_element_info);
44 virtual bool do_try_music (Music*);
45 virtual void do_process_requests ();
46 virtual void process_acknowledged ();
49 VIRTUAL_COPY_CONS(Translator);
53 #endif /* CTIE_ENGRAVER_HH */