]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/melisma-translator.cc
Fix some bugs in the dynamic engraver and PostScript backend
[lilypond.git] / lily / melisma-translator.cc
index 1b01c2d82d67a7e80a7a3fe7dcb98ed69394148d..74b0e10d5e496ef41c9fd4632ccd426b07cb98d7 100644 (file)
@@ -1,43 +1,35 @@
-/*   
-  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--2006 Han-Wen Nienhuys <hanwen@xs4all.nl>
+*/
+
 #include "engraver.hh"
-#include "event.hh"
 #include "grob.hh"
 #include "context.hh"
-
+#include "translator.icc"
 
 /**
    Signal existence of melismas.
- */
+*/
 class Melisma_translator : public Translator
 {
 public:
   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 (get_parent_context ());
-    }
+    return melisma_busy (context ());
   else if (m->is_mus_type ("melisma-span-event"))
     {
       event_ = m;
@@ -55,11 +47,10 @@ Melisma_translator::process_music ()
       SCM sd = event_->get_property ("span-direction");
       Direction d = to_dir (sd);
       if (d == START)
-       get_parent_context ()->set_property ("melismaBusy", SCM_BOOL_T);
+       context ()->set_property ("melismaBusy", SCM_BOOL_T);
       else
-       get_parent_context ()->unset_property (ly_symbol2scm ("melismaBusy"));
+       context ()->unset_property (ly_symbol2scm ("melismaBusy"));
     }
-      
 }
 
 void
@@ -67,16 +58,15 @@ Melisma_translator::start_translation_timestep ()
 {
   event_ = 0;
 }
-  
+
 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 */ "",
+               /* accept */ "melisma-playing-event melisma-span-event",
+               /* read */ "melismaBusy melismaBusyProperties slurMelismaBusy tieMelismaBusy beamMelismaBusy",
+               /* write */ "");