/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 1997--2014 Han-Wen Nienhuys <hanwen@xs4all.nl>
+ Copyright (C) 1997--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
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 = unsmob_pitch (ev->get_property ("pitch"));
+ Pitch *pit = unsmob<Pitch> (ev->get_property ("pitch"));
#if 0 /* TODO: should have a mechanism to switch off these warnings. */
if (scm_is_vector (shape_vector))
{
SCM scm_tonic = get_property ("tonic");
- Pitch tonic (0, 0, 0);
- if (unsmob_pitch (scm_tonic))
- tonic = *unsmob_pitch (scm_tonic);
+ Pitch 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.",