]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/mensural-ligature-engraver.cc
* scm/define-music-types.scm (music-descriptions): remove
[lilypond.git] / lily / mensural-ligature-engraver.cc
index f6fafa12278b2ab38fc5d74d280ecd0b500ec6bd..c1c5bcad6d3a9e8cd2bce49618635fa6576816d2 100644 (file)
 #include "rhythmic-head.hh"
 #include "spanner.hh"
 #include "staff-symbol-referencer.hh"
+#include "stream-event.hh"
 #include "warn.hh"
 
+#include "translator.icc"
+
 /*
  * TODO: accidentals are aligned with the first note;
  * they must appear ahead.
@@ -46,17 +49,25 @@ class Mensural_ligature_engraver : public Coherent_ligature_engraver
 
 protected:
   virtual Spanner *create_ligature_spanner ();
-  virtual void build_ligature (Spanner *ligature, std::vector<Grob_info> primitives);
-
+  virtual void build_ligature (Spanner *ligature, vector<Grob_info> primitives);
+  DECLARE_TRANSLATOR_LISTENER (ligature);
+  
 public:
   TRANSLATOR_DECLARATIONS (Mensural_ligature_engraver);
 
 private:
-  void transform_heads (std::vector<Grob_info> primitives);
-  void propagate_properties (Spanner *ligature, std::vector<Grob_info> primitives);
-  void fold_up_primitives (std::vector<Grob_info> primitives);
+  void transform_heads (vector<Grob_info> primitives);
+  void propagate_properties (Spanner *ligature, vector<Grob_info> primitives);
+  void fold_up_primitives (vector<Grob_info> primitives);
 };
 
+IMPLEMENT_TRANSLATOR_LISTENER (Mensural_ligature_engraver, ligature);
+void
+Mensural_ligature_engraver::listen_ligature (Stream_event *ev)
+{
+  Ligature_engraver::listen_ligature (ev);
+}
+
 Mensural_ligature_engraver::Mensural_ligature_engraver ()
 {
   brew_ligature_primitive_proc = 
@@ -70,7 +81,7 @@ Mensural_ligature_engraver::create_ligature_spanner ()
 }
 
 void
-Mensural_ligature_engraver::transform_heads (std::vector<Grob_info> primitives)
+Mensural_ligature_engraver::transform_heads (vector<Grob_info> primitives)
 {
   if (primitives.size () < 2)
     {
@@ -296,7 +307,7 @@ Mensural_ligature_engraver::transform_heads (std::vector<Grob_info> primitives)
  */
 void
 Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
-                                                 std::vector<Grob_info> primitives)
+                                                 vector<Grob_info> primitives)
 {
   Real thickness
     = robust_scm2double (ligature->get_property ("thickness"), 1.4);
@@ -352,7 +363,7 @@ Mensural_ligature_engraver::propagate_properties (Spanner *ligature,
 }
 
 void
-Mensural_ligature_engraver::fold_up_primitives (std::vector<Grob_info> primitives)
+Mensural_ligature_engraver::fold_up_primitives (vector<Grob_info> primitives)
 {
   Item *first = 0;
   Real distance = 0;
@@ -375,15 +386,13 @@ Mensural_ligature_engraver::fold_up_primitives (std::vector<Grob_info> primitive
 
 void
 Mensural_ligature_engraver::build_ligature (Spanner *ligature,
-                                           std::vector<Grob_info> primitives)
+                                           vector<Grob_info> primitives)
 {
   transform_heads (primitives);
   propagate_properties (ligature, primitives);
   fold_up_primitives (primitives);
 }
 
-#include "translator.icc"
-
 ADD_ACKNOWLEDGER (Mensural_ligature_engraver, rest);
 ADD_ACKNOWLEDGER (Mensural_ligature_engraver, note_head);
 ADD_TRANSLATOR (Mensural_ligature_engraver,