]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.35
authorfred <fred>
Sun, 24 Mar 2002 19:33:31 +0000 (19:33 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:33:31 +0000 (19:33 +0000)
src/complexwalker.cc

index f85abe8f212091469e9ec713a487ea91021cdbb3..e3bcade138846f7afa1b5961d4d5439237fefe76 100644 (file)
@@ -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<Voice_registers*>