]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/extender-engraver.cc
Make pure-height on accidentals ignore tied accidentals after breaks.
[lilypond.git] / lily / extender-engraver.cc
index d3b2e90972facbdee6b1579468aedafb9900d345..efea867822abf2b12ebab55865b6d5a5b266a2e1 100644 (file)
 #include "lyric-extender.hh"
 #include "note-head.hh"
 #include "pointer-group-interface.hh"
+#include "stream-event.hh"
 #include "warn.hh"
+#include "spanner.hh"
+
+#include "translator.icc"
 
 void completize_extender (Spanner *sp);
 
 class Extender_engraver : public Engraver
 {
-  Music *ev_;
+  Stream_event *ev_;
   Spanner *extender_;
   Spanner *pending_extender_;
 
@@ -29,9 +33,9 @@ public:
   TRANSLATOR_DECLARATIONS (Extender_engraver);
 
 protected:
+  DECLARE_TRANSLATOR_LISTENER (extender);
   DECLARE_ACKNOWLEDGER (lyric_syllable);
   virtual void finalize ();
-  virtual bool try_music (Music *);
   void stop_translation_timestep ();
   void process_music ();
 };
@@ -43,15 +47,11 @@ Extender_engraver::Extender_engraver ()
   ev_ = 0;
 }
 
-bool
-Extender_engraver::try_music (Music *r)
+IMPLEMENT_TRANSLATOR_LISTENER (Extender_engraver, extender);
+void
+Extender_engraver::listen_extender (Stream_event *ev)
 {
-  if (!ev_)
-    {
-      ev_ = r;
-      return true;
-    }
-  return false;
+  ASSIGN_EVENT_ONCE (ev_, ev);
 }
 
 void
@@ -142,12 +142,9 @@ Extender_engraver::finalize ()
     }
 }
 
-#include "translator.icc"
-
 ADD_ACKNOWLEDGER (Extender_engraver, lyric_syllable);
 ADD_TRANSLATOR (Extender_engraver,
                /* doc */ "Create lyric extenders",
                /* create */ "LyricExtender",
-               /* accept */ "extender-event",
                /* read */ "",
                /* write */ "");