#include "engraver.hh"
#include "spanner.hh"
+#include "translator.icc"
+
struct Tuplet_description
{
Music *music_;
protected:
Array<Tuplet_description> tuplets_;
- virtual void acknowledge_grob (Grob_info);
+ DECLARE_ACKNOWLEDGER(note_column);
virtual bool try_music (Music *r);
- virtual void start_translation_timestep ();
- virtual void process_music ();
+ PRECOMPUTED_VIRTUAL void start_translation_timestep ();
+ PRECOMPUTED_VIRTUAL void process_music ();
};
bool
tuplets_[i].spanner_ = spanner;
SCM proc = get_property ("tupletNumberFormatFunction");
- if (ly_c_procedure_p (proc))
+ if (ly_is_procedure (proc))
{
SCM t = scm_apply_0 (proc, scm_list_1 (tuplets_[i].music_->self_scm ()));
spanner->set_property ("text", t);
}
void
-Tuplet_engraver::acknowledge_grob (Grob_info i)
+Tuplet_engraver::acknowledge_note_column (Grob_info i)
{
- if (Note_column::has_interface (i.grob ()))
- {
- for (int j = 0; j < tuplets_.size (); j++)
- if (tuplets_[j].spanner_)
- Tuplet_bracket::add_column (tuplets_[j].spanner_,
- dynamic_cast<Item *> (i.grob ()));
- }
+ for (int j = 0; j < tuplets_.size (); j++)
+ if (tuplets_[j].spanner_)
+ Tuplet_bracket::add_column (tuplets_[j].spanner_,
+ dynamic_cast<Item *> (i.grob ()));
}
void
Tuplet_engraver::Tuplet_engraver ()
{
}
-
+ADD_ACKNOWLEDGER(Tuplet_engraver,note_column);
ADD_TRANSLATOR (Tuplet_engraver,
/* descr */ "Catch Time_scaled_music and generate appropriate bracket ",
/* creats*/ "TupletBracket",
/* accepts */ "time-scaled-music",
- /* acks */ "note-column-interface",
+ /* acks */ "",
/* reads */ "tupletNumberFormatFunction tupletSpannerDuration",
/* write */ "");