]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.35
authorfred <fred>
Sun, 24 Mar 2002 19:33:28 +0000 (19:33 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:33:28 +0000 (19:33 +0000)
hdr/request.hh
src/barreg.cc
src/keyreg.cc
src/meterreg.cc

index bf94d1a02e8fc561776464f37ca5ed068fca95e1..63929a923bc20869720e3b5860fb7b765920cc44 100644 (file)
@@ -56,7 +56,7 @@ struct Request {
     virtual Spacing_req * spacing() { return 0; }
     virtual Blank_req * blank() { return 0; }
     virtual Musical_req *musical() { return 0; }
-    virtual Nonmusical_req * nonmus() { return 0; }
+    virtual Command_req * command() { return 0; }
 protected:
     virtual void do_print()const ;
 };
index 9a10f913b5f0c8e438c11e5fcf9f62f4c05c1aa2..f0b32fd3df53cbfd66ad50232bec9d022705c184 100644 (file)
@@ -10,7 +10,7 @@
 #include "bar.hh"
 #include "commandrequest.hh"
 #include "complexwalker.hh"
-#include "sccol.hh"
+#include "scorecolumn.hh"
 
 
 Bar_register::Bar_register(Complex_walker*w)
@@ -22,11 +22,11 @@ Bar_register::Bar_register(Complex_walker*w)
 bool
 Bar_register::try_request(Request*r_l)
 {
-    if (!r_l->nonmus()->bar()) 
+    if (!r_l->command()->bar()) 
        return false;
 
     assert(!bar_req_l_);
-    bar_req_l_ = r_l->nonmus()->bar();
+    bar_req_l_ = r_l->command()->bar();
 
     return true;
 }
index 963ebaf649c914e653dc355dfae35374c6af75da..197a8f6b319a994aac915c7c606da90ae3a2dc01 100644 (file)
@@ -13,7 +13,7 @@
 #include "keyitem.hh"
 #include "complexwalker.hh"
 #include "commandrequest.hh"
-#include "stcol.hh"
+#include "staffcolumn.hh"
 #include "localkeyreg.hh"
 #include "musicalrequest.hh"
 
@@ -27,15 +27,25 @@ Key_register::Key_register(Complex_walker*w)
 bool
 Key_register::try_request(Request * req_l)
 {
-    if (!req_l->nonmus()->keychange())
+    if (!req_l->command()->keychange())
        return false;
     assert(!keyreq_l_);                // todo
-    keyreq_l_ = req_l->nonmus()->keychange();
+    keyreq_l_ = req_l->command()->keychange();
     read_req(keyreq_l_);
-    walk_l_->local_key_reg_p_->local_key_.reset(key_); // ugh
     return true;
 }
 
+void
+Key_register::acknowledge_element(Staff_elem_info info)
+{
+    Command_req * r_l = info.req_l_->command() ;
+    if (r_l && r_l->clefchange() && !kit_p_) {
+        kit_p_ = new Key_item(walk_l_->c0_position_i());
+        kit_p_->read(*this);
+        announce_element(Staff_elem_info(kit_p_, keyreq_l_, this));
+    }
+}
+
 void
 Key_register::process_request()
 {
@@ -46,7 +56,7 @@ Key_register::process_request()
        default_key_b_ = true;
     }
 
-     if (default_key_b_ || keyreq_l_) {
+     if ( default_key_b_ || keyreq_l_) {
         kit_p_ = new Key_item(walk_l_->c0_position_i());
         kit_p_->read(*this);
         announce_element(Staff_elem_info(kit_p_, keyreq_l_, this));
@@ -57,7 +67,7 @@ void
 Key_register::do_pre_move_process()
 {
     if (kit_p_) {
-       if (default_key_b_)
+       if (default_key_b_) 
            typeset_breakable_item(0,0,kit_p_);
        else 
            typeset_breakable_item(
@@ -85,6 +95,4 @@ Key_register::do_post_move_process()
     keyreq_l_ = 0;
     default_key_b_ = false;
     kit_p_ = 0;
-    if (!walk_l_->time_.whole_in_measure_)
-       walk_l_->local_key_reg_p_->local_key_.reset(key_); // ugh
 }
index e7d8b8e97320b96d4078f716e236a23401c14c60..3aab0fb29149c00a1c8190e007f3ddd03cfbc37b 100644 (file)
@@ -19,11 +19,11 @@ Meter_register::Meter_register(Complex_walker*w)
 bool
 Meter_register::try_request(Request*r_l)
 {
-    if (!r_l->nonmus()->meterchange()) 
+    if (!r_l->command()->meterchange()) 
        return false;
 
     assert(!meter_req_l_);
-    meter_req_l_ = r_l->nonmus()->meterchange();
+    meter_req_l_ = r_l->command()->meterchange();
 
     return true;
 }