]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/breathing-sign-engraver.cc
Run `make grand-replace'.
[lilypond.git] / lily / breathing-sign-engraver.cc
index 32ba194d033a37da4d4bfb951155fd9753071249..0850067b6946434328ad6975cbd9c8bce9f1eb9f 100644 (file)
@@ -1,7 +1,7 @@
 /*
   breathing_sign-engraver.cc -- implement Breathing_sign_engraver
 
-  (c) 1999--2005 Michael Krause
+  (c) 1999--2008 Michael Krause
 
   written for the GNU LilyPond music typesetter
 
   . Spacing is not yet completely pretty
 */
 
-#include "staff-symbol-referencer.hh"
 #include "breathing-sign.hh"
-#include "engraver-group-engraver.hh"
+#include "engraver.hh"
 #include "item.hh"
+#include "stream-event.hh"
+
+#include "translator.icc"
 
 class Breathing_sign_engraver : public Engraver
 {
@@ -23,35 +25,34 @@ public:
   TRANSLATOR_DECLARATIONS (Breathing_sign_engraver);
 
 protected:
-  virtual bool try_music (Music *req);
-  PRECOMPUTED_VIRTUAL void process_acknowledged ();
-  PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
+  void process_music ();
+  void stop_translation_timestep ();
 
+  DECLARE_TRANSLATOR_LISTENER (breathing);
 private:
-  Music *breathing_sign_req_;
+  Stream_event *breathing_sign_event_;
   Grob *breathing_sign_;
 };
 
 Breathing_sign_engraver::Breathing_sign_engraver ()
 {
   breathing_sign_ = 0;
-  breathing_sign_req_ = 0;
+  breathing_sign_event_ = 0;
 }
 
-bool
-Breathing_sign_engraver::try_music (Music *r)
+IMPLEMENT_TRANSLATOR_LISTENER (Breathing_sign_engraver, breathing);
+void
+Breathing_sign_engraver::listen_breathing (Stream_event *ev)
 {
-  breathing_sign_req_ = r;
-  return true;
+  ASSIGN_EVENT_ONCE (breathing_sign_event_, ev);
 }
 
 void
-Breathing_sign_engraver::process_acknowledged ()
+Breathing_sign_engraver::process_music ()
 {
-  if (breathing_sign_req_ && ! breathing_sign_)
+  if (breathing_sign_event_)
     {
-      breathing_sign_ = make_item ("BreathingSign", breathing_sign_req_->self_scm ());
-      breathing_sign_req_ = 0;
+      breathing_sign_ = make_item ("BreathingSign", breathing_sign_event_->self_scm ());
     }
 }
 
@@ -59,15 +60,19 @@ void
 Breathing_sign_engraver::stop_translation_timestep ()
 {
   breathing_sign_ = 0;
-  breathing_sign_req_ = 0;
+  breathing_sign_event_ = 0;
 }
 
-#include "translator.icc"
-
 ADD_TRANSLATOR (Breathing_sign_engraver,
-               /* descr */ "",
-               /* creats*/ "BreathingSign",
-               /* accepts */ "breathing-event",
-               /* acks  */ "",
-               /* reads */ "",
-               /* write */ "");
+               /* doc */
+               "Create a breathing sign.",
+
+               /* create */
+               "BreathingSign ",
+
+               /* read */
+               "",
+
+               /* write */
+               ""
+               );