X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ftiming-translator.cc;h=64be59c4f838c902c1df87c1efe821baee320204;hb=7e72a1e50e94a7f9738d62599de79fe7745f600c;hp=f92b598a41e116ef834ed607bfedc96b8b39f088;hpb=f05cfd7757b31723fe6af2f5c0e2fdbaebea3b85;p=lilypond.git diff --git a/lily/timing-translator.cc b/lily/timing-translator.cc index f92b598a41..64be59c4f8 100644 --- a/lily/timing-translator.cc +++ b/lily/timing-translator.cc @@ -4,12 +4,12 @@ source file of the GNU LilyPond music typesetter - (c) 1997--2002 Han-Wen Nienhuys + (c) 1997--2004 Han-Wen Nienhuys */ -#include "debug.hh" +#include "warn.hh" #include "timing-translator.hh" -#include "command-request.hh" + #include "translator-group.hh" #include "global-translator.hh" #include "multi-measure-rest.hh" @@ -19,13 +19,13 @@ void Timing_translator::stop_translation_timestep () { Translator *t = this; - Global_translator *global_l =0; + Global_translator *global =0; do { - t = t->daddy_trans_l_ ; - global_l = dynamic_cast (t); + t = t->daddy_trans_ ; + global = dynamic_cast (t); } - while (!global_l); + while (!global); /* allbars == ! skipbars */ SCM sb = get_property ("skipBars"); @@ -45,21 +45,26 @@ Timing_translator::stop_translation_timestep () moment. A waste of cpu? */ && !now.grace_part_) - global_l->add_moment_to_process (now + barleft); + global->add_moment_to_process (now + barleft); } } void Timing_translator::initialize () { - daddy_trans_l_->set_property ("timing" , SCM_BOOL_T); - daddy_trans_l_->set_property ("currentBarNumber" , gh_int2scm (1)); - daddy_trans_l_->set_property ("timeSignatureFraction", + /* + move this to engraver-init.ly? + */ + + daddy_trans_->set_property ("timing" , SCM_BOOL_T); + daddy_trans_->set_property ("currentBarNumber" , gh_int2scm (1)); + + daddy_trans_->set_property ("timeSignatureFraction", gh_cons (gh_int2scm (4), gh_int2scm (4))); - daddy_trans_l_->set_property ("measurePosition", Moment (Rational (0)).smobbed_copy ()); - daddy_trans_l_->set_property ("measureLength", Moment (Rational (1)).smobbed_copy ()); - daddy_trans_l_->set_property ("beatLength", Moment (Rational (1,4)).smobbed_copy ()); + daddy_trans_->set_property ("measurePosition", Moment (Rational (0)).smobbed_copy ()); + daddy_trans_->set_property ("measureLength", Moment (Rational (1)).smobbed_copy ()); + daddy_trans_->set_property ("beatLength", Moment (Rational (1,4)).smobbed_copy ()); } Rational @@ -97,21 +102,26 @@ void Timing_translator::start_translation_timestep () { Translator *t = this; - Global_translator *global_l =0; + Global_translator *global =0; do { - t = t->daddy_trans_l_ ; - global_l = dynamic_cast (t); + t = t->daddy_trans_ ; + global = dynamic_cast (t); } - while (!global_l); + while (!global); - Moment now = global_l->now_mom_; - Moment dt = now - global_l -> prev_mom_; + Moment now = global->now_mom_; + Moment dt = now - global -> prev_mom_; if (dt < Moment (0)) { programming_error ("Moving backwards in time"); dt = 0; } + else if (dt.main_part_.is_infinity ()) + { + programming_error ("Moving infinitely to future"); + dt = 0; + } if (!dt.to_bool ()) return; @@ -126,7 +136,7 @@ Timing_translator::start_translation_timestep () else { measposp = now; - daddy_trans_l_->set_property ("measurePosition", measposp.smobbed_copy ()); + daddy_trans_->set_property ("measurePosition", measposp.smobbed_copy ()); } measposp += dt; @@ -148,8 +158,8 @@ Timing_translator::start_translation_timestep () b ++; } - daddy_trans_l_->set_property ("currentBarNumber", gh_int2scm (b)); - daddy_trans_l_->set_property ("measurePosition", measposp.smobbed_copy ()); + daddy_trans_->set_property ("currentBarNumber", gh_int2scm (b)); + daddy_trans_->set_property ("measurePosition", measposp.smobbed_copy ()); } -ENTER_DESCRIPTION (Timing_translator, "","","","","" ); +ENTER_DESCRIPTION(Timing_translator,"","","","","","");