#include "stream-event.hh"
#include "tuplet-bracket.hh"
#include "warn.hh"
+#include "item.hh"
#include "translator.icc"
protected:
vector<Tuplet_description> tuplets_;
+ vector<Tuplet_description> new_tuplets_;
vector<Tuplet_description> stopped_tuplets_;
vector<Spanner*> last_tuplets_;
+
DECLARE_ACKNOWLEDGER (note_column);
DECLARE_TRANSLATOR_LISTENER (tuplet_span);
virtual void finalize ();
{
Tuplet_description d;
d.event_ = ev;
- tuplets_.push_back (d);
+ new_tuplets_.push_back (d);
}
else if (dir == STOP && tuplets_.size ())
{
tuplets_.pop_back ();
}
else
- programming_error (_ ("invalid direction of tuplet-span-event"));
+ programming_error (_f ("direction of %s invalid: %d",
+ "tuplet-span-event", int (dir)));
}
void
{
for (vsize i = 0; i < stopped_tuplets_.size (); i++)
{
- if (stopped_tuplets_[i].bracket_)
+ Spanner *bracket = stopped_tuplets_[i].bracket_;
+ Spanner *number = stopped_tuplets_[i].number_;
+ if (bracket)
{
if (stopped_tuplets_[i].full_length_)
{
? get_property ("currentMusicalColumn")
: get_property ("currentCommandColumn"));
- stopped_tuplets_[i].bracket_->set_bound (RIGHT, col);
- stopped_tuplets_[i].number_->set_bound (RIGHT, col);
+ bracket->set_bound (RIGHT, col);
+ number->set_bound (RIGHT, col);
}
- else if (!stopped_tuplets_[i].bracket_->get_bound (RIGHT))
+ else if (!bracket->get_bound (RIGHT))
{
- stopped_tuplets_[i].bracket_->set_bound (RIGHT,
- stopped_tuplets_[i].bracket_->get_bound (LEFT));
- stopped_tuplets_[i].number_->set_bound (RIGHT,
+ bracket->set_bound (RIGHT,
+ bracket->get_bound (LEFT));
+ number->set_bound (RIGHT,
stopped_tuplets_[i].bracket_->get_bound (LEFT));
}
// todo: scrap last_tuplets_, use stopped_tuplets_ only.
// clear stopped_tuplets_ at start_translation_timestep
- last_tuplets_.push_back (tuplets_[i].bracket_);
- last_tuplets_.push_back (tuplets_[i].number_);
+ last_tuplets_.push_back (bracket);
+ last_tuplets_.push_back (number);
}
}
stopped_tuplets_.clear ();
+ concat (tuplets_, new_tuplets_);
+ new_tuplets_.clear ();
for (vsize j = tuplets_.size (); j > 0; j--)
{
/* i goes from size-1 downto 0, inclusively */