#include "multi-measure-rest.hh"
#include "note-head.hh"
#include "rest.hh"
-#include "stream-event.hh"
-
-#include "translator.icc"
/**
Generate texts for lyric syllables. We only do one lyric at a time.
{
protected:
void stop_translation_timestep ();
+ virtual bool try_music (Music *);
void process_music ();
- DECLARE_TRANSLATOR_LISTENER (lyric);
public:
TRANSLATOR_DECLARATIONS (Lyric_engraver);
private:
- Stream_event *event_;
+ Music *event_;
Item *text_;
Item *last_text_;
event_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Lyric_engraver, lyric);
-void
-Lyric_engraver::listen_lyric (Stream_event *ev)
+bool
+Lyric_engraver::try_music (Music *r)
{
- ASSIGN_EVENT_ONCE (event_, ev);
+ if (!event_)
+ {
+ event_ = r;
+ return true;
+ }
+ return false;
}
void
event_ = 0;
}
+#include "translator.icc"
+
ADD_TRANSLATOR (Lyric_engraver,
/* doc */ "",
/* create */ "LyricText",