source file of the GNU LilyPond music typesetter
- (c) 1997--2002 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1997--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "warn.hh"
#include "timing-translator.hh"
-#include "command-request.hh"
+
#include "translator-group.hh"
-#include "global-translator.hh"
+#include "global-context.hh"
#include "multi-measure-rest.hh"
void
Timing_translator::stop_translation_timestep ()
{
- Translator *t = this;
- Global_translator *global_l =0;
- do
- {
- t = t->daddy_trans_l_ ;
- global_l = dynamic_cast<Global_translator*> (t);
- }
- while (!global_l);
+ Global_context *global = get_global_context ();
/* allbars == ! skipbars */
SCM sb = get_property ("skipBars");
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_context_->set_property ("timing" , SCM_BOOL_T);
+ daddy_context_->set_property ("currentBarNumber" , gh_int2scm (1));
+
+ daddy_context_->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_context_->set_property ("measurePosition", Moment (Rational (0)).smobbed_copy ());
+ daddy_context_->set_property ("measureLength", Moment (Rational (1)).smobbed_copy ());
+ daddy_context_->set_property ("beatLength", Moment (Rational (1,4)).smobbed_copy ());
}
Rational
void
Timing_translator::start_translation_timestep ()
{
- Translator *t = this;
- Global_translator *global_l =0;
- do
- {
- t = t->daddy_trans_l_ ;
- global_l = dynamic_cast<Global_translator*> (t);
- }
- while (!global_l);
+ Global_context *global =get_global_context ();
- 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;
else
{
measposp = now;
- daddy_trans_l_->set_property ("measurePosition", measposp.smobbed_copy ());
+ daddy_context_->set_property ("measurePosition", measposp.smobbed_copy ());
}
measposp += dt;
b ++;
}
- daddy_trans_l_->set_property ("currentBarNumber", gh_int2scm (b));
- daddy_trans_l_->set_property ("measurePosition", measposp.smobbed_copy ());
+ daddy_context_->set_property ("currentBarNumber", gh_int2scm (b));
+ daddy_context_->set_property ("measurePosition", measposp.smobbed_copy ());
}
-ENTER_DESCRIPTION (Timing_translator, "","","","","" );
+ENTER_DESCRIPTION(Timing_translator,"","","","","","");