source file of the GNU LilyPond music typesetter
- (c) 2005--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 2005--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
new_events_.clear ();
for (vsize i = 0; i < groups_.size (); i++)
groups_[i].current_event_ = 0;
+
continuation_ = false;
+
+
}
IMPLEMENT_TRANSLATOR_LISTENER (Figured_bass_engraver, rest);
void
Figured_bass_engraver::listen_rest (Stream_event *ev)
{
- new_event_found_ = true;
- ASSIGN_EVENT_ONCE (rest_event_, ev);
+ if (to_boolean (get_property ("ignoreFiguredBassRest")))
+ {
+ new_event_found_ = true;
+
+ /*
+ No ASSIGN_EVENT_ONCE() ; otherwise we get warnings about
+ polyphonic rests.
+ */
+ rest_event_ = ev;
+ }
}
IMPLEMENT_TRANSLATOR_LISTENER (Figured_bass_engraver, bass_figure);
Moment stop = now_mom () + get_event_length (ev);
stop_moment_ = max (stop_moment_, stop);
- SCM fig = ev->get_property ("figure");
- for (vsize i = 0; i < groups_.size (); i++)
+ if (to_boolean (get_property ("useBassFigureExtenders")))
{
- if (!groups_[i].current_event_
- && ly_is_equal (groups_[i].number_, fig))
+ SCM fig = ev->get_property ("figure");
+ for (vsize i = 0; i < groups_.size (); i++)
{
- groups_[i].current_event_ = ev;
- groups_[i].force_no_continuation_
- = to_boolean (ev->get_property ("no-continuation"));
- continuation_ = true;
- return;
+ if (!groups_[i].current_event_
+ && ly_is_equal (groups_[i].number_, fig))
+ {
+ groups_[i].current_event_ = ev;
+ groups_[i].force_no_continuation_
+ = to_boolean (ev->get_property ("no-continuation"));
+ continuation_ = true;
+ return;
+ }
}
- }
-
+ }
new_events_.push_back (ev);
}
void
Figured_bass_engraver::process_music ()
{
+ if (alignment_ && !to_boolean (get_property ("useBassFigureExtenders")))
+ clear_spanners ();
+
if (rest_event_)
{
clear_spanners ();
vector<int> junk_continuations;
for (vsize i = 0; i < groups_.size(); i++)
{
- Figure_group &group = groups_[i];
+ Figure_group &group = groups_[i];
if (group.is_continuation ())
{
"BassFigureContinuation "
"BassFigureLine "
,
- /* accept */
- "bass-figure-event rest-event",
/* read */
"figuredBassAlterationDirection "
"figuredBassFormatter "
"implicitBassFigures "
"useBassFigureExtenders "
+ "ignoreFiguredBassRest "
,
/* write */