#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_;
protected:
DECLARE_ACKNOWLEDGER (lyric_syllable);
+ DECLARE_TRANSLATOR_LISTENER (hyphen);
virtual void finalize ();
- virtual bool try_music (Music *);
void stop_translation_timestep ();
void process_music ();
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
ev_ = 0;
}
-#include "translator.icc"
-
ADD_ACKNOWLEDGER (Hyphen_engraver, lyric_syllable);
ADD_TRANSLATOR (Hyphen_engraver,
/* doc */ "Create lyric hyphens and "
"distance constraints between words.",
/* create */ "LyricHyphen LyricSpace",
- /* accept */ "hyphen-event",
/* read */ "",
/* write */ "");