]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/melisma-engraver.cc
*** empty log message ***
[lilypond.git] / lily / melisma-engraver.cc
index 3a89ad968fbc62b65cd4b0ae4789155e3a404229..adc6d218fdcb53e7432d3e304ed4e4a4f7fd9deb 100644 (file)
@@ -3,12 +3,14 @@
   
   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");