/*
This file is part of LilyPond, the GNU music typesetter.
- Copyright (C) 2006--2011 Han-Wen Nienhuys <hanwen@lilypond.org>
+ Copyright (C) 2006--2015 Han-Wen Nienhuys <hanwen@lilypond.org>
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 (Balloon_engraver);
- DECLARE_TRANSLATOR_LISTENER (annotate_output);
- DECLARE_ACKNOWLEDGER (grob);
+ void listen_annotate_output (Stream_event *);
+ void acknowledge_grob (Grob_info);
vector<Stream_event *> events_;
void stop_translation_timestep ();
void balloonify (Grob *, Stream_event *);
};
-IMPLEMENT_TRANSLATOR_LISTENER (Balloon_engraver, annotate_output);
void
Balloon_engraver::listen_annotate_output (Stream_event *ev)
{
SCM arts = cause ? cause->get_property ("articulations") : SCM_EOL;
for (SCM s = arts; scm_is_pair (s); s = scm_cdr (s))
{
- Stream_event *e = unsmob_stream_event (scm_car (s));
+ Stream_event *e = unsmob<Stream_event> (scm_car (s));
if (e->in_event_class ("annotate-output-event"))
{
balloonify (info.grob (), e);
}
}
-ADD_ACKNOWLEDGER (Balloon_engraver, grob);
+
+void
+Balloon_engraver::boot ()
+{
+ ADD_LISTENER (Balloon_engraver, annotate_output);
+ ADD_ACKNOWLEDGER (Balloon_engraver, grob);
+}
ADD_TRANSLATOR (Balloon_engraver,
/* doc */