#include "international.hh"
#include "rhythmic-head.hh"
#include "spanner.hh"
-#include "stream-event.hh"
#include "warn.hh"
-#include "translator.icc"
-
/**
Create line-spanner grobs for glissandi lines that connect note
heads.
TRANSLATOR_DECLARATIONS (Glissando_engraver);
protected:
- DECLARE_TRANSLATOR_LISTENER (glissando);
DECLARE_ACKNOWLEDGER (rhythmic_head);
virtual void finalize ();
+ virtual bool try_music (Music *);
void stop_translation_timestep ();
void process_music ();
private:
Spanner *line_;
Spanner *last_line_;
- Stream_event *event_;
+ Music *event_;
};
Glissando_engraver::Glissando_engraver ()
event_ = 0;
}
-IMPLEMENT_TRANSLATOR_LISTENER (Glissando_engraver, glissando);
-void
-Glissando_engraver::listen_glissando (Stream_event *ev)
+bool
+Glissando_engraver::try_music (Music *m)
{
- ASSIGN_EVENT_ONCE (event_, ev);
+ if (!event_)
+ {
+ event_ = m;
+ return true;
+ }
+ return false;
}
void
}
}
+#include "translator.icc"
+
ADD_ACKNOWLEDGER (Glissando_engraver, rhythmic_head);
ADD_TRANSLATOR (Glissando_engraver,
/* doc */ "Engrave a glissandi",