]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.1.56
authorfred <fred>
Sun, 24 Mar 2002 20:09:38 +0000 (20:09 +0000)
committerfred <fred>
Sun, 24 Mar 2002 20:09:38 +0000 (20:09 +0000)
VERSION
lily/include/local-key-grav.hh
lily/local-key-grav.cc
mutopia/los-toros-oboe.ly

diff --git a/VERSION b/VERSION
index 5532217ea84aa7deadcfc48916df13bb261ac717..80011142cc0b93c86365d08b09928af9e3e5cc78 100644 (file)
--- a/VERSION
+++ b/VERSION
@@ -1,6 +1,6 @@
 MAJOR_VERSION=0
 MINOR_VERSION=1
-PATCH_LEVEL=55
+PATCH_LEVEL=56
 MY_PATCH_LEVEL=
 
 # now used as shell script in configure too
index 1602b94d9f12902d2a1926838dbab9ce3838a1dd..d7c37829bb1a61e3e2a5e38a8d95ede608329667 100644 (file)
 #include "parray.hh"
 
 struct Local_key_engraver : Engraver {
+    Local_key_item *key_item_p_;
 protected:
   TRANSLATOR_CLONE(Local_key_engraver);
   virtual void do_process_requests();
   virtual void acknowledge_element (Score_elem_info);
   virtual void do_pre_move_processing();
   virtual void do_creation_processing ();
+  virtual void process_acknowledged ();
 public:
+  
   Key local_key_;
   Key const *key_C_;
   Array<Note_req* > mel_l_arr_;
index f136737f90b822734360624a3c26dd88dc1f3d47..ec84f240bfa197a655c743d7a8248ecdafeb489f 100644 (file)
@@ -20,6 +20,7 @@
 Local_key_engraver::Local_key_engraver()
 {
   key_C_ = 0;
+  key_item_p_ =0;
 }
 
 void
@@ -40,10 +41,9 @@ Local_key_engraver::do_creation_processing ()
 }
 
 void
-Local_key_engraver::do_pre_move_processing()
+Local_key_engraver::process_acknowledged ()
 {
-  Local_key_item *key_item_p = 0;
-  if (mel_l_arr_.size()) 
+  if (!key_item_p_ && mel_l_arr_.size()) 
     {
       for (int i=0; i  < mel_l_arr_.size(); i++) 
        {
@@ -58,7 +58,7 @@ Local_key_engraver::do_pre_move_processing()
              local_key_.oct (note_l->octave_i_).acc (note_l->notename_i_)
              == note_l->accidental_i_) 
            continue;
-         if (!key_item_p) 
+         if (!key_item_p_
            {
              int c0_i=0;
 
@@ -66,23 +66,28 @@ Local_key_engraver::do_pre_move_processing()
              if (inf.c0_position_i_l_)
                c0_i = *get_staff_info().c0_position_i_l_;      
                
-             key_item_p = new Local_key_item (c0_i);
-
+             key_item_p_ = new Local_key_item (c0_i);
+             announce_element (Score_elem_info (key_item_p_, 0));            
            }
-         key_item_p->add (note_l);
-         key_item_p->add_support (support_l);
+         key_item_p_->add (note_l);
+         key_item_p_->add_support (support_l);
          local_key_.oct (note_l->octave_i_)
            .set (note_l->notename_i_, note_l->accidental_i_);
        }
        
     }
-  if (key_item_p) 
+}
+
+void
+Local_key_engraver::do_pre_move_processing()
+{
+  if (key_item_p_)
     {
       for (int i=0; i < support_l_arr_.size(); i++)
-       key_item_p->add_support (support_l_arr_[i]);
-       
-      announce_element (Score_elem_info (key_item_p, 0)); // ugh ugh ugh
-      typeset_element (key_item_p);
+       key_item_p_->add_support (support_l_arr_[i]);
+
+      typeset_element (key_item_p_);
+      key_item_p_ =0;
     }
   
   mel_l_arr_.clear();
@@ -91,9 +96,6 @@ Local_key_engraver::do_pre_move_processing()
   forced_l_arr_.clear();       
 }
 
-/*
-  whoah .. this looks hairy!
- */
 void
 Local_key_engraver::acknowledge_element (Score_elem_info info)
 {    
@@ -107,7 +109,7 @@ Local_key_engraver::acknowledge_element (Score_elem_info info)
       support_l_arr_.push (item_l);
     }
   else if (info.req_l_->command()
-          && info.req_l_->command()->keychange ()) 
+          && info.req_l_->command()->keychange () && key_C_
     {
       local_key_ = *key_C_;
     }
index e213b38dfc03b4396e0db26715e036193888a88a..faafa951fbc23405360bf4ef3fa74ffffbb779ff 100644 (file)
@@ -283,6 +283,7 @@ $staff_hoboone = \type Staff = hoboonestaff <
 a4 = \paper{
        \paper_twenty
        linewidth= 165.\mm;
+       gourlay_maxmeasures = 10.0;
        Score = \translator {
                \type Score_engraver;