source file of the GNU LilyPond music typesetter
- (c) 1998--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ (c) 1998--2009 Han-Wen Nienhuys <hanwen@xs4all.nl>
*/
#include "beam.hh"
{
/*
discard duplicates.
- */
+ */
if (new_tuplets_[i].stop_moment_ == d.stop_moment_)
return;
}
}
else if (dir == STOP)
{
- if (tuplets_.size ())
- {
- stopped_tuplets_.push_back (tuplets_.back ());
- tuplets_.pop_back ();
- }
- else
- ev->origin ()->warning (_f ("No tuplet to end"));
+ if (tuplets_.size ())
+ {
+ stopped_tuplets_.push_back (tuplets_.back ());
+ tuplets_.pop_back ();
+ }
+ else if (!to_boolean (get_property ("skipTypesetting")))
+ ev->origin ()->warning (_ ("No tuplet to end"));
}
else
ev->origin ()->programming_error ("direction tuplet-span-event_ invalid.");
/*
This may happen if the end of a tuplet is part of a quoted voice.
*/
- Moment now = now_mom();
+ Moment now = now_mom ();
for (vsize i = tuplets_.size (); i --; )
{
if (tuplets_[i].stop_moment_ == now)
}
else if (!bracket->get_bound (RIGHT))
{
- bracket->set_bound (RIGHT,
- bracket->get_bound (LEFT));
- number->set_bound (RIGHT,
- stopped_tuplets_[i].bracket_->get_bound (LEFT));
- }
-
+ if (bracket->get_bound (LEFT))
+ {
+ bracket->set_bound (RIGHT,
+ bracket->get_bound (LEFT));
+ number->set_bound (RIGHT,
+ stopped_tuplets_[i].bracket_->get_bound (LEFT));
+ }
+ else
+ programming_error ("stopped tuplet bracket has left nor right bound.");
+ }
// todo: scrap last_tuplets_, use stopped_tuplets_ only.
// clear stopped_tuplets_ at start_translation_timestep
last_tuplets_.push_back (bracket);
Tuplet_engraver::start_translation_timestep ()
{
last_tuplets_.clear ();
+ /*
+ May seem superfluous, but necessary for skipTypesetting.
+ */
+ new_tuplets_.clear ();
}
void
ADD_ACKNOWLEDGER (Tuplet_engraver, note_column);
ADD_TRANSLATOR (Tuplet_engraver,
- /* doc */ "Catch TupletSpannerEvent and generate appropriate bracket ",
+ /* doc */
+ "Catch tuplet events and generate appropriate bracket.",
+
/* create */
"TupletBracket "
"TupletNumber ",
+
/* read */
"tupletFullLength "
"tupletFullLengthNote ",
- /* write */ "");
+
+ /* write */
+ ""
+ );