#include "stem.hh"
#include "rhythmic-head.hh"
#include "side-position-interface.hh"
-#include "stream-event.hh"
#include "note-column.hh"
#include "translator.icc"
protected:
void process_music ();
void stop_translation_timestep ();
- DECLARE_TRANSLATOR_LISTENER (arpeggio);
+ virtual bool try_music (Music *);
private:
Item *arpeggio_;
- Stream_event *arpeggio_event_;
+ Music *arpeggio_event_;
};
Arpeggio_engraver::Arpeggio_engraver ()
arpeggio_event_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Arpeggio_engraver, arpeggio);
-void Arpeggio_engraver::listen_arpeggio (Stream_event *ev)
+bool
+Arpeggio_engraver::try_music (Music *m)
{
- ASSIGN_EVENT_ONCE (arpeggio_event_, ev);
+ if (!arpeggio_event_)
+ arpeggio_event_ = m;
+ return true;
}
void
Arpeggio_engraver::process_music ()
{
if (arpeggio_event_)
- {
- arpeggio_ = make_item ("Arpeggio", arpeggio_event_->self_scm ());
- }
+ arpeggio_ = make_item ("Arpeggio", arpeggio_event_->self_scm ());
}
void
arpeggio_event_ = 0;
}
-ADD_ACKNOWLEDGER (Arpeggio_engraver, stem);
-ADD_ACKNOWLEDGER (Arpeggio_engraver, rhythmic_head);
-ADD_ACKNOWLEDGER (Arpeggio_engraver, note_column);
+ADD_ACKNOWLEDGER (Arpeggio_engraver, stem)
+ ADD_ACKNOWLEDGER (Arpeggio_engraver, rhythmic_head)
+ ADD_ACKNOWLEDGER (Arpeggio_engraver, note_column)
-ADD_TRANSLATOR (Arpeggio_engraver,
- /* doc */ "Generate an Arpeggio symbol",
- /* create */ "Arpeggio",
- /* accept */ "arpeggio-event",
- /* read */ "",
- /* write */ "");
+ ADD_TRANSLATOR (Arpeggio_engraver,
+ /* doc */ "Generate an Arpeggio symbol",
+ /* create */ "Arpeggio",
+ /* accept */ "arpeggio-event",
+ /* read */ "",
+ /* write */ "");