-/*
- melisma-engraver.cc -- implement Melisma_engraver
-
+/*
+ melisma-engraver.cc -- implement Melisma_engraver
+
source file of the GNU LilyPond music typesetter
-
- (c) 1999--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
-
- */
-/*
- duplicated in melisma-performer
- */
+ (c) 1999--2007 Han-Wen Nienhuys <hanwen@xs4all.nl>
+*/
+
#include "engraver.hh"
-#include "event.hh"
#include "grob.hh"
#include "context.hh"
+#include "music.hh"
+#include "translator.icc"
+/* Remove this translator. */
/**
Signal existence of melismas.
- */
+*/
class Melisma_translator : public Translator
{
public:
- TRANSLATOR_DECLARATIONS(Melisma_translator);
+ TRANSLATOR_DECLARATIONS (Melisma_translator);
protected:
virtual bool try_music (Music *);
- virtual void process_music ();
- virtual void start_translation_timestep ();
- Music * event_;
+ void process_music ();
+ void start_translation_timestep ();
+ Music *event_;
};
-
bool
-Melisma_translator::try_music (Music *m)
+Melisma_translator::try_music (Music *m)
{
if (m->is_mus_type ("melisma-playing-event"))
- {
- return melisma_busy (this);
- }
+ return melisma_busy (context ());
else if (m->is_mus_type ("melisma-span-event"))
{
event_ = m;
{
if (event_)
{
- SCM sd = event_->get_mus_property ("span-direction");
+ SCM sd = event_->get_property ("span-direction");
Direction d = to_dir (sd);
if (d == START)
- daddy_context_->set_property ("melismaBusy", SCM_BOOL_T);
+ context ()->set_property ("melismaBusy", SCM_BOOL_T);
else
- daddy_context_->unset_property (ly_symbol2scm ("melismaBusy"));
+ context ()->unset_property (ly_symbol2scm ("melismaBusy"));
}
-
}
void
{
event_ = 0;
}
-
-Melisma_translator::Melisma_translator()
+
+Melisma_translator::Melisma_translator ()
{
event_ = 0;
}
-ENTER_DESCRIPTION(Melisma_translator,
-/* descr */ "This translator collects melisma information about ties, beams, and user settings (@code{melismaBusy}, and signals it to the @code{\addlyrics} code. ",
-/* creats*/ "",
-/* accepts */ "melisma-playing-event melisma-span-event",
-/* acks */ "",
-/* reads */ "melismaBusy melismaBusyProperties slurMelismaBusy tieMelismaBusy beamMelismaBusy",
-/* write */ "");
+ADD_TRANSLATOR (Melisma_translator,
+ /* doc */ "This translator collects melisma information about ties, beams, and user settings (@code{melismaBusy}, and signals it to the @code{\addlyrics} code. ",
+ /* create */ "",
+ /* read */
+ "beamMelismaBusy "
+ "melismaBusy "
+ "melismaBusyProperties "
+ "slurMelismaBusy "
+ "tieMelismaBusy "
+ ,
+
+ /* write */ "");