]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/local-key-engraver.hh
a42051d7cc4834f8af60e9cfad3c1355e12a5910
[lilypond.git] / lily / include / local-key-engraver.hh
1 /*
2   local-key-engraver.hh -- declare Local_key_engraver
3
4   (c)  1997--2000 Han-Wen Nienhuys <hanwen@cs.uu.nl>
5 */
6
7
8 #ifndef LOCALKEYGRAV_HH
9 #define LOCALKEYGRAV_HH
10
11 #include "engraver.hh"
12 #include "key.hh"
13 #include "parray.hh"
14 /**
15    Make accidentals.  Catches note heads, ties and notices key-change
16    events.  Due to interaction with ties (which don't come together
17    with note heads), this needs to be in a context higher than Tie_engraver.
18    (FIXME).
19  */
20 struct Local_key_engraver : Engraver {
21   Local_key_item *key_item_p_;
22 protected:
23   VIRTUAL_COPY_CONS(Translator);
24   virtual void do_process_requests();
25   virtual void acknowledge_element (Score_element_info);
26   virtual void do_pre_move_processing();
27   virtual void do_creation_processing ();
28   virtual void process_acknowledged ();
29   virtual void do_removal_processing ();
30 public:
31   
32   Key local_key_;
33   Key_engraver *key_grav_l_;
34   Array<Note_req* > mel_l_arr_;
35   Array<Item* > support_l_arr_;
36   Link_array<Item  > forced_l_arr_;
37   Link_array<Item > tied_l_arr_;
38   Local_key_engraver();
39   bool self_grace_b_;
40   Grace_align_item * grace_align_l_;
41 };
42
43 #endif // LOCALKEYGRAV_HH