]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/staff-regs.hh
release: 0.0.50
[lilypond.git] / lily / include / staff-regs.hh
1 /*
2   staff-regs.hh -- declare Staff_registers
3
4   source file of the LilyPond music typesetter
5
6   (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
7 */
8
9
10 #ifndef STAFF_REGS_HH
11 #define STAFF_REGS_HH
12
13 #include "register-group.hh"
14
15 /**
16   Registers which manage a Staff (one 5-line linestaff)
17  */
18 class Staff_registers : public Register_group_register {
19     int c0_position_i_;    
20     Input_register const *ireg_C_;
21     int base_position_i_;
22     Array<Voice_group_registers*> group_l_arr_;
23     Staff_symbol * staff_sym_l_;
24 protected:
25     virtual bool try_request(Request * r);
26     virtual Staff_info get_staff_info();
27     virtual bool acceptable_request_b(Request*) const ;
28     virtual void acknowledge_element(Staff_elem_info);
29 public:
30     
31     /* *************** */
32     NAME_MEMBERS(Staff_registers);
33     void change_group(Group_change_req * greq_l,
34                       Voice_registers *voice_regs_l,
35                       Voice_group_registers * old_group);
36     Voice_group_registers * get_group(String id);
37     void terminate_register(Request_register * reg);
38     Staff_registers(Input_register const*);
39 };
40
41 #endif // STAFF_REGS_HH