]> git.donarmstrong.com Git - lilypond.git/commitdiff
lilypond-0.0.74pre
authorfred <fred>
Sun, 24 Mar 2002 19:47:23 +0000 (19:47 +0000)
committerfred <fred>
Sun, 24 Mar 2002 19:47:23 +0000 (19:47 +0000)
init/table16.ini
lily/music-iterator.cc
lily/rest-column.cc

index 6d202aa4200422517b19924f7910fcff5a4aec48..d09a275b7231dd962c19067b6f926539ac5264fc 100644 (file)
@@ -111,6 +111,9 @@ table_sixteen=
             "1"        "\wholerest"            0.0\pt  6.0\pt  0.0\pt  2.0\pt
             "2"        "\halfrest"             0.0\pt  6.0\pt  -2.0\pt 0.0\pt
             "2o"       "\outsidehalfrest"              0.0\pt  6.0\pt  -2.0\pt 0.0\pt
+            "4o"       "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
+            "8o"       "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
+            "16o"      "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
             "4"        "\quartrest"            -5.0\pt 2.0\pt  -5.0\pt 5.0\pt
             "8"        "\eighthrest"           0.0\pt  5.0\pt  0.0\pt  8.0\pt
             "16"       "\sixteenthrest"                0.0\pt  6.0\pt  0.0\pt  12.0\pt
index c7d6509b97b2a2c7897b541f176a5ef6098eeb19..38cfd02349f56266dc6f92b483a2f5883bb6875e 100644 (file)
@@ -26,7 +26,7 @@ Music_iterator::print() const
 {
 #ifndef NPRINT
     mtor << name() << "{";
-    mtor << "report to " << report_to_l_ << " (" << report_to_l_->name() << ")\n";
+    mtor << "report to " << report_to_l() << " (" << report_to_l()->name() << ")\n";
     mtor << "next at " << next_moment() << " ";
     do_print();
     mtor << "}\n";
@@ -36,27 +36,48 @@ Music_iterator::print() const
 Translator*
 Music_iterator::get_req_translator_l()
 {
-    assert(report_to_l_);
-    if (report_to_l_->is_bottom_engraver_b() )
-       return report_to_l_;
+    assert(report_to_l());
+    if (report_to_l()->is_bottom_engraver_b() )
+       return report_to_l();
 
-    set_translator( report_to_l_->get_default_interpreter() );
-    return report_to_l_;
+    set_translator( report_to_l()->get_default_interpreter() );
+    return report_to_l();
 }
 
 void
-Music_iterator::set_translator(Translator*reg)
-{    
-    if (report_to_l_==reg)
-       return;
+Music_iterator::push_translator(Translator*t)
+{
+    if (t) {
+       report_to_l_arr_.push(t);
+       t->iterator_count_ ++;
+    }
+}
+
+void
+Music_iterator::pop_translator()
+{
+    if (report_to_l()) {
+       report_to_l()->iterator_count_ --;
+       report_to_l_arr_.pop();
+    }
+}
 
-    if (report_to_l_)
-       report_to_l_->iterator_count_ --;
+Translator* 
+Music_iterator::report_to_l()const
+{
+    if (! report_to_l_arr_.size() )
+       return 0;
+    return report_to_l_arr_.top();
+}
 
-    report_to_l_ = reg;
-    if (report_to_l_)
-       report_to_l_->iterator_count_ ++;
+
+void
+Music_iterator::set_translator(Translator*reg)
+{   
+    if (report_to_l()==reg)
+       return;
+    pop_translator();
+    push_translator(reg);
 }
 
 void
@@ -115,7 +136,7 @@ Music_iterator::static_get_iterator_p(Music *m,
            
        } 
      } 
-     if (! p->report_to_l_ )
+     if (! p->report_to_l() )
         p ->set_translator(report_l);
     
     return p;
@@ -124,7 +145,7 @@ Music_iterator::static_get_iterator_p(Music *m,
 Music_iterator*
 Music_iterator::get_iterator_p(Music*m)const
 {
-    Music_iterator*p = static_get_iterator_p(m,report_to_l_);
+    Music_iterator*p = static_get_iterator_p(m,report_to_l());
     p->daddy_iter_l_ = (Music_iterator*)this;
     p->construct_children();
     return p;
@@ -133,7 +154,6 @@ Music_iterator::get_iterator_p(Music*m)const
 Music_iterator::Music_iterator()
 {
     daddy_iter_l_ =0;
-    report_to_l_ = 0;
     first_b_ = true;
 }
 
@@ -151,7 +171,7 @@ Chord_iterator::construct_children()
     for(iter(chord_C_->music_p_list_.top(), i); i.ok(); j++, i++) {
        
        Music_iterator * mi =  get_iterator_p( i.ptr());
-       set_translator(mi->report_to_l_->ancestor_l( chord_C_->multi_level_i_ ));
+       set_translator(mi->report_to_l()->ancestor_l( chord_C_->multi_level_i_ ));
        if ( mi->ok() )
            children_p_list_.bottom().add( mi );
        else 
@@ -227,8 +247,8 @@ Voice_iterator::construct_children()
 {
     if (ok()) {
        iter_p_ = Music_iterator::get_iterator_p( ptr() );      
-       if (iter_p_->report_to_l_->depth_i() > report_to_l_->depth_i())
-           set_translator(iter_p_->report_to_l_);
+       if (iter_p_->report_to_l()->depth_i() > report_to_l()->depth_i())
+           set_translator(iter_p_->report_to_l());
     }
 }
 
@@ -300,7 +320,7 @@ void
 Request_iterator::process_and_next(Moment m)
 {
     if ( first_b_ ) {
-       bool gotcha = daddy_iter_l_->report_to_l_->try_request(req_l_);
+       bool gotcha = daddy_iter_l_->report_to_l()->try_request(req_l_);
        if (!gotcha)
            req_l_->warning("Junking request: " + String(req_l_->name()));
        first_b_ = false;
@@ -346,12 +366,15 @@ void
 Change_iterator::process_and_next(Moment mom)
 {
 #if 0
+    if ( id[0] == '-') {
+       
+    
     Engraver_group_engraver *group_l =
-       report_to_l_->find_get_grav_l(change_l_->type_str_, 
-                                        change_l_->id_str_);
+       report_to_l()->find_get_translator_l(change_l_->type_str_, 
+                                            change_l_->id_str_);
 
-    report_to_l_->daddy_grav_l_->remove_engraver_p(report_to_l_);
-    group_l->add(report_to_l_);
+    report_to_l()->daddy_grav_l_->remove_engraver_p(report_to_l());
+    group_l->add(report_to_l());
 #endif
     Music_iterator::process_and_next(mom);
 }
index 219b83307b5246129e98f8365a1469eedd30a713..a58e73846f9424379187f62180ca187e64b24867 100644 (file)
@@ -56,12 +56,14 @@ Rest_column::do_substitute_dependency(Score_elem*o,Score_elem*n)
                                (n)? (Note_head*)n->item() : 0);
 }
 
-/*
-  Are you sure. Horizontal_vertical_group_item::translate_y could handle this
+
+/**
+  translate the rest symbols
  */
 void
-Rest_column::translate_y(Real dy_f)
+Rest_column::translate_heads(int dy_i)
 {
     for (int i=0; i < head_l_arr_.size(); i++)
-       head_l_arr_[i]->translate_y(dy_f);
+       head_l_arr_[i]->position_i_ += dy_i;
 }
+