2 voice-regs.cc -- implement Voice_registers
4 source file of the LilyPond music typesetter
6 (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
10 #include "command-request.hh"
11 #include "musical-request.hh"
12 #include "voice-regs.hh"
13 #include "register.hh"
14 #include "slur-reg.hh"
16 #include "walk-regs.hh"
19 Voice_registers::Voice_registers(Voice *v_p)
22 add(new Notehead_register);
23 add(new Slur_register);
27 Voice_registers::acknowledge_element(Staff_elem_info i)
29 if (i.voice_l_ != voice_l_)
31 Register_group_register::acknowledge_element(i);
35 Voice_registers::try_request(Request*r_l)
37 if (r_l->voice_l() !=voice_l_)
40 Command_req *c=r_l->command();
41 if (c&&c->terminate()) {
42 daddy_reg_l_->terminate_register(this);
43 return true; // scary. We're deleted now..
44 } else if (c&&c->groupchange()) {
46 ((Walker_registers*)daddy_reg_l_->daddy_reg_l_)-> // scary.
47 change_group(c->groupchange(), this,
48 (Voice_group_registers*)daddy_reg_l_); // UGR!
52 return Register_group_register::try_request(r_l);
56 Voice_registers::acceptable_request_b(Request*r)
58 // return (r->rest() || r->note() || r->slur() || r->groupchange());
59 return r->groupchange()
60 || Register_group_register::acceptable_request_b(r);
63 Voice_registers::do_print() const
65 mtor << "Voice= " << voice_l_<<'\n';
66 Register_group_register::do_print();