protected:
void stop_translation_timestep ();
void process_music ();
- DECLARE_TRANSLATOR_LISTENER (note);
+ void listen_note (Stream_event *);
private:
vector<Stream_event *> note_evs_;
};
-Drum_note_performer::Drum_note_performer ()
+Drum_note_performer::Drum_note_performer (Context *c)
+ : Performer (c)
{
}
&& to_boolean (scm_hash_table_p (tab)))
defn = scm_hashq_ref (tab, sym, SCM_EOL);
- if (Pitch *pit = Pitch::unsmob (defn))
+ if (Pitch *pit = unsmob<Pitch> (defn))
{
SCM articulations = n->get_property ("articulations");
Stream_event *tie_event = 0;
int velocity = 0;
for (SCM s = articulations; scm_is_pair (s); s = scm_cdr (s))
{
- Stream_event *ev = Stream_event::unsmob (scm_car (s));
+ Stream_event *ev = unsmob<Stream_event> (scm_car (s));
if (!ev)
continue;
note_evs_.clear ();
}
-IMPLEMENT_TRANSLATOR_LISTENER (Drum_note_performer, note);
void
Drum_note_performer::listen_note (Stream_event *ev)
{
note_evs_.push_back (ev);
}
+void
+Drum_note_performer::boot ()
+{
+ ADD_LISTENER (Drum_note_performer, note);
+}
+
ADD_TRANSLATOR (Drum_note_performer,
/* doc */
"Play drum notes.",