summaryrefslogtreecommitdiff
path: root/lily/hyphen-engraver.cc
diff options
context:
space:
mode:
Diffstat (limited to 'lily/hyphen-engraver.cc')
-rw-r--r--lily/hyphen-engraver.cc22
1 files changed, 10 insertions, 12 deletions
diff --git a/lily/hyphen-engraver.cc b/lily/hyphen-engraver.cc
index e4f4f3a991..989c8fb32c 100644
--- a/lily/hyphen-engraver.cc
+++ b/lily/hyphen-engraver.cc
@@ -13,12 +13,15 @@
#include "item.hh"
#include "pointer-group-interface.hh"
#include "spanner.hh"
+#include "stream-event.hh"
#include "warn.hh"
+#include "translator.icc"
+
class Hyphen_engraver : public Engraver
{
- Music *ev_;
- Music *finished_ev_;
+ Stream_event *ev_;
+ Stream_event *finished_ev_;
Spanner *hyphen_;
Spanner *finished_hyphen_;
@@ -29,9 +32,9 @@ public:
protected:
DECLARE_ACKNOWLEDGER (lyric_syllable);
+ DECLARE_TRANSLATOR_LISTENER (hyphen);
virtual void finalize ();
- virtual bool try_music (Music *);
void stop_translation_timestep ();
void process_music ();
@@ -60,14 +63,11 @@ Hyphen_engraver::acknowledge_lyric_syllable (Grob_info i)
finished_hyphen_->set_bound (RIGHT, item);
}
-bool
-Hyphen_engraver::try_music (Music *r)
+IMPLEMENT_TRANSLATOR_LISTENER (Hyphen_engraver, hyphen);
+void
+Hyphen_engraver::listen_hyphen (Stream_event *ev)
{
- if (ev_)
- return false;
-
- ev_ = r;
- return true;
+ ASSIGN_EVENT_ONCE (ev_, ev);
}
void
@@ -144,8 +144,6 @@ Hyphen_engraver::stop_translation_timestep ()
ev_ = 0;
}
-#include "translator.icc"
-
ADD_ACKNOWLEDGER (Hyphen_engraver, lyric_syllable);
ADD_TRANSLATOR (Hyphen_engraver,