]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/lyric-engraver.cc
*** empty log message ***
[lilypond.git] / lily / lyric-engraver.cc
index 176c9b7166157228e5eb82571d6685a5236bd671..e11f4ec222156d18672805fa1338aabbf36d97c6 100644 (file)
@@ -14,6 +14,9 @@
 #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.
@@ -23,14 +26,14 @@ class Lyric_engraver : public Engraver
 {
 protected:
   void stop_translation_timestep ();
-  virtual bool try_music (Music *);
   void process_music ();
+  DECLARE_TRANSLATOR_LISTENER (lyric);
 
 public:
   TRANSLATOR_DECLARATIONS (Lyric_engraver);
 
 private:
-  Music *event_;
+  Stream_event *event_;
   Item *text_;
   Item *last_text_;
 
@@ -44,15 +47,11 @@ Lyric_engraver::Lyric_engraver ()
   event_ = 0;
 }
 
-bool
-Lyric_engraver::try_music (Music *r)
+IMPLEMENT_TRANSLATOR_LISTENER (Lyric_engraver, lyric);
+void
+Lyric_engraver::listen_lyric (Stream_event *ev)
 {
-  if (!event_)
-    {
-      event_ = r;
-      return true;
-    }
-  return false;
+  ASSIGN_EVENT_ONCE (event_, ev);
 }
 
 void
@@ -157,8 +156,6 @@ Lyric_engraver::stop_translation_timestep ()
   event_ = 0;
 }
 
-#include "translator.icc"
-
 ADD_TRANSLATOR (Lyric_engraver,
                /* doc */ "",
                /* create */ "LyricText",