X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftiming-translator.cc;h=316f31d52363d3a00fac0cd6df8a1e0511a00aa7;hb=9efbad2d9487a05b04423e7e9f062968e8f8eaf4;hp=6ab83a2ea9751912ef571f825c66beaef3cb3a02;hpb=1cf3d59c1559fb9774c4c1c8cae155cfe54a927c;p=lilypond.git diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index 6ab83a2ea9..316f31d523 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -20,8 +20,8 @@ Timing_translator::Timing_translator () bool Timing_translator::do_try_request(Request*r) { - Command_req * c = r->access_Command_req (); - if (!(c && c->access_Timing_req ())) + Command_req * c = dynamic_cast (r); + if (!(c && dynamic_cast (c))) return false; for (int i=0; i < timing_req_l_arr_.size (); i++) { @@ -34,7 +34,7 @@ Timing_translator::do_try_request(Request*r) } } - timing_req_l_arr_.push(c->access_Timing_req ()); + timing_req_l_arr_.push(dynamic_cast (c)); return true; } @@ -44,7 +44,7 @@ Timing_translator::time_signature_req_l() const Time_signature_change_req *m_l=0; for (int i=0; !m_l && i < timing_req_l_arr_.size (); i++) { - m_l=timing_req_l_arr_[i]->access_Time_signature_change_req (); + m_l=dynamic_cast (timing_req_l_arr_[i]); } return m_l; } @@ -55,7 +55,7 @@ Timing_translator::do_process_requests() for (int i=0; i < timing_req_l_arr_.size (); i++) { Timing_req * tr_l = timing_req_l_arr_[i]; - Time_signature_change_req *m_l = tr_l->access_Time_signature_change_req (); + Time_signature_change_req *m_l = dynamic_cast (tr_l); if (m_l) { int b_i= m_l->beats_i_; @@ -69,9 +69,9 @@ Timing_translator::do_process_requests() Rhythmic_grouping (MInterval (0,Moment (b_i, o_i)), b_i); } } - else if (tr_l->access_Partial_measure_req ()) + else if (dynamic_cast (tr_l)) { - Moment m = tr_l->access_Partial_measure_req ()->duration_; + Moment m = dynamic_cast (tr_l)->duration_; String error = time_.try_set_partial_str (m); if (error.length_i ()) { @@ -80,7 +80,7 @@ Timing_translator::do_process_requests() else time_.setpartial (m); } - else if (tr_l->access_Barcheck_req()) + else if (dynamic_cast (tr_l)) { if (time_.whole_in_measure_) { @@ -92,15 +92,15 @@ Timing_translator::do_process_requests() } } - else if (tr_l->access_Cadenza_req ()) + else if (dynamic_cast (tr_l)) { - time_.set_cadenza (tr_l->access_Cadenza_req ()->on_b_); + time_.set_cadenza (dynamic_cast (tr_l)->on_b_); } - else if (tr_l->access_Measure_grouping_req ()) + else if (dynamic_cast (tr_l)) { default_grouping_ = - parse_grouping (tr_l->access_Measure_grouping_req ()->beat_i_arr_, - tr_l->access_Measure_grouping_req ()->elt_length_arr_); + parse_grouping (dynamic_cast (tr_l)->beat_i_arr_, + dynamic_cast (tr_l)->elt_length_arr_); } } @@ -115,7 +115,10 @@ Timing_translator::do_pre_move_processing() daddy_trans_l_->ancestor_l (100)->global_l (); // ugh 100. + /* allbars == ! skipbars */ bool allbars = ! get_property ("SkipBars").to_bool (); + + if (!time_.cadenza_b_ && allbars) global_l->add_moment_to_process (time_.next_bar_moment ()); }