]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/local-key-item.hh
release: 0.1.11
[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   TODO
26   
27   figure out private/public
28   
29  */
30 class Local_key_item : public Item {
31 public:
32     DECLARE_MY_RUNTIME_TYPEINFO;
33     Array<Local_acc> accs;
34     Link_array<Item> support_items_;
35     int c0_position;
36
37
38     
39     Local_key_item (int c0position);
40     void add_support (Item*);
41     void add (int oct, int pitch, int acc);
42     void add (Melodic_req*);
43 protected:
44     virtual void do_pre_processing();    
45     virtual void do_substitute_dependency (Score_elem*,Score_elem*);
46     virtual Molecule* brew_molecule_p() const;
47 };
48 #endif // LOCALKEYITEM_HH
49