TRANSLATOR_DECLARATIONS (Note_heads_engraver);
protected:
- DECLARE_TRANSLATOR_LISTENER (note);
+ void listen_note (Stream_event *);
void process_music ();
void stop_translation_timestep ();
};
-Note_heads_engraver::Note_heads_engraver ()
+Note_heads_engraver::Note_heads_engraver (Context *c)
+ : Engraver (c)
{
}
-IMPLEMENT_TRANSLATOR_LISTENER (Note_heads_engraver, note);
void
Note_heads_engraver::listen_note (Stream_event *ev)
{
Stream_event *ev = note_evs_[i];
Item *note = make_item ("NoteHead", ev->self_scm ());
- Pitch *pit = Pitch::unsmob (ev->get_property ("pitch"));
+ Pitch *pit = unsmob<Pitch> (ev->get_property ("pitch"));
#if 0 /* TODO: should have a mechanism to switch off these warnings. */
{
SCM scm_tonic = get_property ("tonic");
Pitch tonic;
- if (Pitch::is_smob (scm_tonic))
- tonic = *Pitch::unsmob (scm_tonic);
+ if (unsmob<Pitch> (scm_tonic))
+ tonic = *unsmob<Pitch> (scm_tonic);
unsigned int delta = (pit->get_notename () - tonic.get_notename () + 7) % 7;
note_evs_.clear ();
}
+void
+Note_heads_engraver::boot ()
+{
+ ADD_LISTENER (Note_heads_engraver, note);
+}
+
ADD_TRANSLATOR (Note_heads_engraver,
/* doc */
"Generate note heads.",