From 9db4b1f80d7da41cc364e65ac7495cd1604785a1 Mon Sep 17 00:00:00 2001 From: fred Date: Sun, 24 Mar 2002 19:33:31 +0000 Subject: [PATCH] lilypond-0.0.35 --- src/complexwalker.cc | 72 +++++++++++--------------------------------- 1 file changed, 17 insertions(+), 55 deletions(-) diff --git a/src/complexwalker.cc b/src/complexwalker.cc index f85abe8f21..e3bcade138 100644 --- a/src/complexwalker.cc +++ b/src/complexwalker.cc @@ -9,19 +9,17 @@ #include "associter.hh" #include "script.hh" #include "musicalrequest.hh" +#include "staffcolumn.hh" #include "voice.hh" #include "pscore.hh" #include "complexstaff.hh" #include "debug.hh" -#include "voicegroup.hh" +#include "voicegroupregs.hh" +#include "voiceregs.hh" #include "complexwalker.hh" #include "misc.hh" #include "commandrequest.hh" -#include "clefreg.hh" -#include "localkeyreg.hh" -#include "keyreg.hh" -#include "meterreg.hh" -#include "barreg.hh" +#include "walkregs.hh" void @@ -37,21 +35,17 @@ Complex_walker::do_announces() Request dummy_req; for (int i = 0; i < announce_info_arr_.size(); i++){ Staff_elem_info info = announce_info_arr_[i]; + if (!info.req_l_) info.req_l_ = &dummy_req; - + + walk_regs_p_->acknowledge_element(info); for (iter_top(voice_reg_list_,j); j.ok(); j++) { j->acknowledge_element(info); } for (iter_top ( group_reg_list_, j); j.ok(); j++) { j->acknowledge_element(info); } - bar_reg_p_->acknowledge_element(info); - clef_reg_p_->acknowledge_element(info); - key_reg_p_->acknowledge_element(info); - meter_reg_p_->acknowledge_element(info); - - local_key_reg_p_->acknowledge_element(info); } } @@ -127,7 +121,7 @@ Complex_walker::do_change_group(Voice * v, String group_id_str) } bool -Complex_walker::try_command_request(Nonmusical_req *req_l) +Complex_walker::try_command_request(Command_req *req_l) { bool b=false; Voice *voice_l = (Voice*)req_l->elt_l_->voice_l_; // ugh @@ -138,13 +132,7 @@ Complex_walker::try_command_request(Nonmusical_req *req_l) Voice_group_registers* reg_l = get_voice_group(voice_l); b |= reg_l->try_request(req_l); } else { - if (!b) - b |= bar_reg_p_->try_request(req_l); - b |= clef_reg_p_->try_request(req_l); - if (!b) - b |= key_reg_p_->try_request(req_l); - if (!b) - b |= meter_reg_p_->try_request(req_l); + b |= walk_regs_p_->try_request(req_l); } return b; } @@ -155,12 +143,12 @@ Complex_walker::try_request(Request*req) bool b=false; Voice *voice_l = (Voice*)req->elt_l_->voice_l_; // ahh. This sux - if (req->nonmus()) { - b = try_command_request(req->nonmus()); - } else if (Voice_registers::acceptable_request(req)) { + if (req->command()) { + b = try_command_request(req->command()); + } else if (Voice_registers::acceptable_request_b(req)) { Voice_registers *vregs_l = get_voice_reg(voice_l); b = vregs_l->try_request(req); - } else if (Voice_group_registers::acceptable_request(req)){ + } else if (Voice_group_registers::acceptable_request_b(req)){ Voice_group_registers* reg_l = get_voice_group(voice_l); b = reg_l->try_request(req); } @@ -190,18 +178,12 @@ Complex_walker::process_requests() void Complex_walker::regs_process_requests() { + walk_regs_p_->process_requests(); for (iter_top(voice_reg_list_, j); j.ok(); j++) { j->process_requests(); } for (iter_top(group_reg_list_, j); j.ok(); j++) j->process_requests(); - - - bar_reg_p_->process_request(); - clef_reg_p_->process_request(); - key_reg_p_->process_request(); - meter_reg_p_->process_request(); - local_key_reg_p_->process_request(); } void @@ -218,23 +200,13 @@ Complex_walker::typeset_element(Staff_elem *elem_p) Complex_walker::Complex_walker(Complex_staff*s) : Staff_walker(s, s->pstaff_l_->pscore_l_) { - local_key_reg_p_= new Local_key_register(this); - clef_reg_p_= new Clef_register(this); - key_reg_p_ = new Key_register(this); - bar_reg_p_ = new Bar_register(this); - meter_reg_p_ = new Meter_register(this); - + walk_regs_p_ = new Walker_registers(this); do_post_move(); } Complex_walker::~Complex_walker() { - delete local_key_reg_p_; - delete clef_reg_p_; - delete meter_reg_p_; - delete bar_reg_p_; - delete key_reg_p_; } int @@ -259,16 +231,12 @@ Complex_walker::staff() void Complex_walker::do_pre_move() { + walk_regs_p_->pre_move_processing(); for (iter_top(voice_reg_list_,i); i.ok(); i++) { i->pre_move_processing(); } for (iter_top (group_reg_list_, j); j.ok(); j++) j->pre_move_processing(); - local_key_reg_p_->pre_move_processing(); - bar_reg_p_->pre_move_processing(); - clef_reg_p_->pre_move_processing(); - key_reg_p_->pre_move_processing(); - meter_reg_p_->pre_move_processing(); ptr()->typeset_breakable_items(prebreak_item_p_arr_, nobreak_item_p_arr_, @@ -278,19 +246,13 @@ Complex_walker::do_pre_move() void Complex_walker::do_post_move() { + walk_regs_p_->post_move_processing(); for (iter_top(voice_reg_list_,i); i.ok(); i++) { i->post_move_processing(); } announce_info_arr_.set_size(0); for (iter_top (group_reg_list_, j); j.ok(); j++) j->post_move_processing(); - - local_key_reg_p_->post_move_processing(); - bar_reg_p_->post_move_processing(); - clef_reg_p_->post_move_processing(); - key_reg_p_->post_move_processing(); - meter_reg_p_->post_move_processing(); - } Array -- 2.39.5