virtual bool try_music (Music *req);
virtual void stop_translation_timestep ();
virtual void process_music ();
- virtual void start_translation_timestep ();
};
accepted_spanreqs_drul_[STOP] = 0;
}
-void
-Dynamic_engraver::start_translation_timestep ()
-{
- script_ev_ = 0;
- accepted_spanreqs_drul_[START] = 0;
- accepted_spanreqs_drul_[STOP] = 0;
-}
-
bool
Dynamic_engraver::try_music (Music * m)
{
|| m->is_mus_type ("crescendo-event"))
{
Direction d = to_dir (m->get_mus_property ("span-direction"));
+
accepted_spanreqs_drul_[d] = m;
+ if (current_cresc_ev_ && d == START)
+ accepted_spanreqs_drul_[STOP] = m;
return true;
}
return false;
{
if (!line_spanner_)
{
- line_spanner_ = new Spanner (get_property ("DynamicLineSpanner"));
+ line_spanner_ = make_spanner ("DynamicLineSpanner");
Music * rq = accepted_spanreqs_drul_[START];
if (script_ev_)
*/
if (script_ev_)
{
- script_ = new Item (get_property ("DynamicText"));
+ script_ = make_item ("DynamicText");
script_->set_grob_property ("text",
script_ev_->get_mus_property ("text"));
if (Direction d = to_dir (script_ev_->get_mus_property ("direction")))
- Directional_element_interface::set (line_spanner_, d);
+ set_grob_direction (line_spanner_, d);
Axis_group_interface::add_element (line_spanner_, script_);
current_cresc_ev_ = accepted_spanreqs_drul_[START];
if (Direction d = to_dir (current_cresc_ev_->get_mus_property ("direction")))
- Directional_element_interface::set (line_spanner_, d);
+ set_grob_direction (line_spanner_, d);
/*
TODO: Use symbols.
SCM s = get_property ((start_type + "Spanner").to_str0 ());
if (!gh_symbol_p (s) || s == ly_symbol2scm ("hairpin"))
{
- cresc_ = new Spanner (get_property ("Hairpin"));
+ cresc_ = make_spanner ("Hairpin");
cresc_->set_grob_property ("grow-direction",
gh_int2scm ((start_type == "crescendo")
? BIGGER : SMALLER));
*/
else
{
- cresc_ = new Spanner (get_property ("TextSpanner"));
- cresc_->set_grob_property ("type", s);
+ cresc_ = make_spanner ("TextSpanner");
+ cresc_->set_grob_property ("style", s);
daddy_trans_->set_property ((start_type
+ "Spanner").to_str0 (), SCM_EOL);
s = get_property ((start_type + "Text").to_str0 ());
line_spanner_ =0;
typeset_all ();
}
+
+ script_ev_ = 0;
+ accepted_spanreqs_drul_[START] = 0;
+ accepted_spanreqs_drul_[STOP] = 0;
}
void