*/
#include "engraver.hh"
+#include "moment.hh"
#include "note-spacing.hh"
#include "paper-column.hh"
#include "pointer-group-interface.hh"
void
Spacing_engraver::listen_spacing_section (Stream_event *ev)
{
- start_section_ = ev;
+ ASSIGN_EVENT_ONCE (start_section_, ev);
}
void
{
assert (!spacing_);
+
spacing_ = make_spanner ("SpacingSpanner", SCM_EOL);
spacing_->set_bound (LEFT,
unsmob_grob (get_property ("currentCommandColumn")));
Paper_column *musical_column
= dynamic_cast<Paper_column *> (unsmob_grob (get_property ("currentMusicalColumn")));
+
+ if (!spacing_)
+ start_spanner ();
+
musical_column->set_object ("spacing", spacing_->self_scm ());
unsmob_grob (get_property ("currentCommandColumn"))
->set_object ("spacing", spacing_->self_scm ());
-
+
SCM proportional = get_property ("proportionalNotationDuration");
if (unsmob_moment (proportional))
{
musical_column->set_property ("shortest-playing-duration", proportional);
musical_column->set_property ("shortest-starter-duration", proportional);
+ musical_column->set_property ("used", SCM_BOOL_T);
return;
}
"bookkeeping of shortest starting and playing notes ",
/* create */ "SpacingSpanner",
- /* accept */
- "spacing-section-event ",
/* read */
"currentMusicalColumn "
"currentCommandColumn "