source file of the GNU LilyPond music typesetter
- (c) 1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1999--2003 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "engraver.hh"
-#include "musical-request.hh"
+#include "event.hh"
+#include "grob.hh"
+#include "translator-group.hh"
/**
Signal existence of melismas.
class Melisma_engraver:public Engraver
{
public:
- VIRTUAL_COPY_CONS(Translator);
- bool do_try_music (Music *);
+ TRANSLATOR_DECLARATIONS(Melisma_engraver);
+ bool try_music (Music *);
};
-ADD_THIS_TRANSLATOR(Melisma_engraver);
+/*
+ HUH ?
+
+ how's this supposed to work?
+ */
bool
-Melisma_engraver::do_try_music (Music *m )
+Melisma_engraver::try_music (Music *m)
{
- if (dynamic_cast<Melisma_playing_req*>(m))
+ SCM plain (get_property ("melismaBusy"));
+ SCM slur (get_property ("slurMelismaBusy"));
+ SCM tie (get_property ("tieMelismaBusy"));
+ SCM beam (get_property ("beamMelismaBusy"));
+
+ if ((to_boolean (plain))
+ || (to_boolean (slur))
+ || (to_boolean (tie))
+ || (to_boolean (beam)))
+ {
+
+ daddy_trans_->set_property ("melismaEngraverBusy",SCM_BOOL_T);
+ return true;
+ }
+ else
{
- SCM plain (get_property ("melismaBusy", 0));
- SCM slur (get_property ("slurMelismaBusy", 0));
- SCM tie (get_property ("tieMelismaBusy", 0));
- return (to_boolean (plain))
- || (to_boolean (slur))
- || (to_boolean (tie));
+ daddy_trans_->set_property ("melismaEngraverBusy",SCM_BOOL_F);
+ return false;
}
- return false;
}
+
+Melisma_engraver::Melisma_engraver()
+{
+}
+
+ENTER_DESCRIPTION(Melisma_engraver,
+/* descr */ "",
+/* creats*/ "",
+/* accepts */ "melisma-playing-event",
+/* acks */ "",
+/* reads */ "melismaBusy slurMelismaBusy tieMelismaBusy beamMelismaBusy",
+/* write */ "melismaEngraverBusy");