]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/local-key-item.hh
release: 0.0.67
[lilypond.git] / lily / include / local-key-item.hh
1 /*
2   local-key-item.hh -- part of GNU LilyPond
3
4   (c) 1996,97 Han-Wen Nienhuys
5 */
6
7 #ifndef LOCALKEYITEM_HH
8 #define LOCALKEYITEM_HH
9 #include "item.hh"
10 #include "varray.hh"
11
12 struct Local_acc {
13     int name_i_;
14     int accidental_i_;
15     int octave_i_;
16     static int compare(Local_acc&, Local_acc&);
17 };
18
19 /**
20   Accidentals which can be different for each octave.
21
22   TODO:
23   update item if Items are removed
24  */
25 struct Local_key_item : Item {
26     NAME_MEMBERS();
27     Array<Local_acc> accs;
28     Link_array<Item> support_items_;
29     int c0_position;
30
31     /* *************** */
32     
33     Local_key_item(int c0position);
34     void add_support(Item*);
35     void add(int oct, int pitch, int acc);
36     void add(Melodic_req*);
37 public:
38     virtual void do_pre_processing();    
39     virtual void do_substitute_dependency(Score_elem*,Score_elem*);
40     virtual Molecule* brew_molecule_p()const;
41 };
42 #endif // LOCALKEYITEM_HH
43