]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/ties-engraver.hh
release: 1.1.7
[lilypond.git] / lily / include / ties-engraver.hh
1 /*
2   tie-engraver.hh -- declare Ties_engraver
3
4   source file of the GNU LilyPond music typesetter
5
6   (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
7 */
8
9
10 #ifndef Ties_GRAV_HH
11 #define Ties_GRAV_HH
12
13 #include "engraver.hh"
14
15 struct Head_melodic_tuple {
16   Melodic_req *mel_l_ ;
17   Note_head *head_l_;
18
19   Head_melodic_tuple ();
20   Head_melodic_tuple (Note_head*, Melodic_req*);
21   static int compare (Head_melodic_tuple const &, Head_melodic_tuple const &);
22 };
23
24 class Ties_engraver : public Engraver {
25   Link_array<Tie> end_tie_p_arr_;
26   Link_array<Tie> tie_p_arr_;
27
28   Tie_req *req_l_;
29   Tie_req *end_req_l_;
30   Array<Head_melodic_tuple> head_mel_tuple_arr_;
31   Array<Head_melodic_tuple> left_head_mel_tuple_arr_;  
32   int processed_ack_pass_i_;
33   
34   Link_array<Melodic_req *> end_melodic_req_l_arr_;
35   Link_array<Melodic_req *> melodic_req_l_arr_;
36     
37 protected:
38   virtual void do_removal_processing ();
39   virtual void acknowledge_element (Score_element_info);
40   virtual bool do_try_music (Music*);
41   virtual void do_process_requests();
42   virtual void process_acknowledged ();
43   virtual void do_post_move_processing();
44   virtual void do_pre_move_processing();
45 public:
46   VIRTUAL_COPY_CONS(Translator);
47   Ties_engraver();
48   
49 };
50
51 #endif // Ties_GRAV_HH