]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beam-engraver.cc
* scm/define-music-types.scm (music-descriptions): remove
[lilypond.git] / lily / beam-engraver.cc
index fbd212efa116331d95144e0847fa19c116022616..42d0a8db418b3f0e0c548a0b628c0a668d03890b 100644 (file)
@@ -284,6 +284,8 @@ class Grace_beam_engraver : public Beam_engraver
 public:
   TRANSLATOR_DECLARATIONS (Grace_beam_engraver);
 
+  DECLARE_TRANSLATOR_LISTENER (beam);
+  
 protected:
   virtual bool valid_start_point ();
   virtual bool valid_end_point ();
@@ -307,6 +309,22 @@ Grace_beam_engraver::valid_end_point ()
   return beam_ && valid_start_point ();
 }
 
+/*
+  Ugh, C&P code.
+ */
+IMPLEMENT_TRANSLATOR_LISTENER (Grace_beam_engraver, beam);
+void
+Grace_beam_engraver::listen_beam (Stream_event *ev)
+{
+  Direction d = to_dir (ev->get_property ("span-direction"));
+
+  if (d == START && valid_start_point ())
+    start_ev_ = ev;
+  else if (d == STOP && valid_end_point ())
+    now_stop_ev_ = ev;
+}
+
+
 ADD_ACKNOWLEDGER (Grace_beam_engraver, stem);
 ADD_ACKNOWLEDGER (Grace_beam_engraver, rest);