/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1998--2015 Han-Wen Nienhuys <hanwen@xs4all.nl>
LilyPond is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
void process_music ();
};
-IMPLEMENT_TRANSLATOR_LISTENER (Tuplet_engraver, tuplet_span);
void
Tuplet_engraver::listen_tuplet_span (Stream_event *ev)
{
tuplets_.pop_back ();
}
else if (!to_boolean (get_property ("skipTypesetting")))
- ev->origin ()->warning (_ ("No tuplet to end"));
+ ev->origin ()->debug_output (_ ("No tuplet to end"));
}
else
ev->origin ()->programming_error ("direction tuplet-span-event_ invalid.");
if (stopped_tuplets_[i].full_length_)
{
Item *col
- = unsmob_item (stopped_tuplets_[i].full_length_note_
+ = unsmob<Item> (stopped_tuplets_[i].full_length_note_
? get_property ("currentMusicalColumn")
: get_property ("currentCommandColumn"));
stopped_tuplets_[i].bracket_->get_bound (LEFT));
}
else
- programming_error ("stopped tuplet bracket has neither left nor right bound");
+ {
+ warning ("omitting tuplet bracket with neither left nor right bound");
+ continue;
+ }
}
// todo: scrap last_tuplets_, use stopped_tuplets_ only.
// clear stopped_tuplets_ at start_translation_timestep
if (to_boolean (get_property ("tupletFullLength")))
for (vsize i = 0; i < last_tuplets_.size (); i++)
{
- Item *col = unsmob_item (get_property ("currentCommandColumn"));
+ Item *col = unsmob<Item> (get_property ("currentCommandColumn"));
last_tuplets_[i]->set_bound (RIGHT, col);
}
}
{
}
-ADD_ACKNOWLEDGER (Tuplet_engraver, note_column);
-ADD_ACKNOWLEDGER (Tuplet_engraver, script);
-ADD_ACKNOWLEDGER (Tuplet_engraver, finger);
-ADD_ACKNOWLEDGER (Tuplet_engraver, string_number);
+void
+Tuplet_engraver::boot ()
+{
+ ADD_LISTENER (Tuplet_engraver, tuplet_span);
+ ADD_ACKNOWLEDGER (Tuplet_engraver, note_column);
+ ADD_ACKNOWLEDGER (Tuplet_engraver, script);
+ ADD_ACKNOWLEDGER (Tuplet_engraver, finger);
+ ADD_ACKNOWLEDGER (Tuplet_engraver, string_number);
+}
+
ADD_TRANSLATOR (Tuplet_engraver,
/* doc */
"Catch tuplet events and generate appropriate bracket.",