protected:
void stop_translation_timestep ();
void process_music ();
- DECLARE_TRANSLATOR_LISTENER (lyric);
+ void listen_lyric (Stream_event *);
public:
TRANSLATOR_DECLARATIONS (Lyric_engraver);
Context *get_voice_context ();
};
-Lyric_engraver::Lyric_engraver ()
+Lyric_engraver::Lyric_engraver (Context *c)
+ : Engraver (c)
{
text_ = 0;
last_text_ = 0;
event_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Lyric_engraver, lyric);
void
Lyric_engraver::listen_lyric (Stream_event *ev)
{
// here. Not with this mechanism.
if ((*end_mom == end_from_now)
&& dynamic_cast<Item *> (g)
- && Note_head::has_interface (g))
+ && has_interface<Note_head> (g))
{
return g;
}
event_ = 0;
}
+void
+Lyric_engraver::boot ()
+{
+ ADD_LISTENER (Lyric_engraver, lyric);
+}
+
ADD_TRANSLATOR (Lyric_engraver,
/* doc */
"Engrave text for lyrics.",