]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/staff.hh
release: 0.0.67
[lilypond.git] / lily / include / staff.hh
1 /*
2   staff.hh -- declare Staff
3
4   source file of the GNU LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9 #ifndef STAFF_HH
10 #define STAFF_HH
11
12 #include "plist.hh"
13 #include "lily-proto.hh"
14 #include "moment.hh"
15
16 /// A collection of voices.
17 class Staff {
18     Staff(const Staff&src);
19     
20 public:
21     Input_register * ireg_p_;
22     
23     Link_list<Voice*> voice_list_;
24     /// runtime field
25     Link_list<Staff_column*> cols_;
26     Line_of_staff * staff_line_l_;
27
28     Score *score_l_;
29     PScore *pscore_l_;
30     
31     /* *************************************************************** */
32
33     void add(Link_list<Voice*> const&s);
34
35     void add_voice(Voice *v_p);
36     Paper_def*paper()const;
37
38     void OK() const;
39     void print() const;
40
41     /// when does the last *musical* element finish?
42     Moment last() const;
43
44     /// remove unused cols
45     void clean_cols() ;
46     Staff();
47     
48     virtual void set_output(PScore * destination);
49     Staff_walker *get_walker_p();
50     virtual ~Staff();
51     void add_col(Staff_column*);
52 protected:
53
54 };
55 #endif