]> git.donarmstrong.com Git - lilypond.git/commitdiff
*** empty log message ***
authorHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 23 Jul 2005 11:00:00 +0000 (11:00 +0000)
committerHan-Wen Nienhuys <hanwen@xs4all.nl>
Sat, 23 Jul 2005 11:00:00 +0000 (11:00 +0000)
lily/pitch-squash-engraver.cc
lily/rest-collision-engraver.cc
lily/staff-symbol-engraver.cc
lily/stanza-number-align-engraver.cc
lily/stanza-number-engraver.cc
lily/trill-spanner-engraver.cc
lily/tuplet-engraver.cc

index 066c743d7ce2e3fb4a7cb21f9c6b1dbccf1e7b4e..fa00090e9b8f514dae91709a9baaacf1442fae6c 100644 (file)
@@ -14,15 +14,14 @@ class Pitch_squash_engraver : public Engraver
 {
 public:
   TRANSLATOR_DECLARATIONS (Pitch_squash_engraver);
-  virtual void acknowledge_grob (Grob_info);
+  DECLARE_ACKNOWLEDGER(note_head);
 };
 
 void
-Pitch_squash_engraver::acknowledge_grob (Grob_info i)
+Pitch_squash_engraver::acknowledge_note_head (Grob_info i)
 {
   SCM newpos = get_property ("squashedPosition");
-  if (scm_is_number (newpos)
-      && Note_head::has_interface (i.grob ()))
+  if (scm_is_number (newpos))
     {
       i.grob ()->set_property ("staff-position", newpos);
     }
@@ -33,7 +32,7 @@ Pitch_squash_engraver::Pitch_squash_engraver ()
 }
 
 #include "translator.icc"
-
+ADD_ACKNOWLEDGER(Pitch_squash_engraver,note_head);
 ADD_TRANSLATOR (Pitch_squash_engraver,
                /* descr */
                "Set the vertical position of noteheads to "
@@ -44,6 +43,6 @@ ADD_TRANSLATOR (Pitch_squash_engraver,
 
                /* creats*/ "",
                /* accepts */ "",
-               /* acks  */ "note-head-interface",
+               /* acks  */ "",
                /* reads */ "squashedPosition",
                /* write */ "");
index 1f8c1c455590fa1c99c18d2c817be3d1cf1797e5..eca0414667da9919c518f79d0dd3fa9075e4281b 100644 (file)
@@ -17,7 +17,7 @@ class Rest_collision_engraver : public Engraver
   int rest_count_;
   Link_array<Grob> note_columns_;
 protected:
-  virtual void acknowledge_grob (Grob_info);
+  DECLARE_ACKNOWLEDGER(note_column);
   PRECOMPUTED_VIRTUAL void process_acknowledged ();
   PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
 public:
@@ -47,14 +47,11 @@ Rest_collision_engraver::process_acknowledged ()
 }
 
 void
-Rest_collision_engraver::acknowledge_grob (Grob_info i)
+Rest_collision_engraver::acknowledge_note_column (Grob_info i)
 {
-  if (Note_column::has_interface (i.grob ()))
-    {
-      note_columns_.push (i.grob ());
-      if (Note_column::has_rests (i.grob ()))
-       rest_count_++;
-    }
+  note_columns_.push (i.grob ());
+  if (Note_column::has_rests (i.grob ()))
+    rest_count_++;
 }
 
 void
@@ -67,10 +64,11 @@ Rest_collision_engraver::stop_translation_timestep ()
 
 #include "translator.icc"
 
+ADD_ACKNOWLEDGER(Rest_collision_engraver, note_column);
 ADD_TRANSLATOR (Rest_collision_engraver,
                /* descr */ "Handles collisions of rests.",
                /* creats*/ "RestCollision",
                /* accepts */ "",
-               /* acks  */ "note-column-interface",
+               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 0b5cb6640d1b914b48d4d3996c0104fb9e8d691f..8ec2e655c5564803efa717d0ccee649a8c0e9398 100644 (file)
@@ -93,10 +93,12 @@ Staff_symbol_engraver::finalize ()
   stop_spanner ();
 }
 
+/*
+  Todo: staff-symbol-referencer iface.
+ */
 void
 Staff_symbol_engraver::acknowledge_grob (Grob_info s)
 {
-
   /*
     Perhaps should try to take SeparationItem as bound of the staff
     symbol?
index 5024f3423b53971d676cb59de0438cfba4a0a000..2c78cbb722b208e03bcc89a8c1352178d514f82d 100644 (file)
@@ -1,6 +1,5 @@
-
 /*
-  stanza-number-align-engraver.cc -- implement
+  stanza-number-align-engraver.cc -- implement Stanza_number_align_engraver
 
   source file of the GNU LilyPond music typesetter
 
@@ -14,6 +13,8 @@
 #include "pointer-group-interface.hh"
 #include "side-position-interface.hh"
 
+#include "translator.icc"
+
 class Stanza_number_align_engraver : public Engraver
 {
 public:
@@ -22,7 +23,9 @@ public:
 protected:
   Link_array<Grob> lyrics_;
   Link_array<Grob> stanza_numbers_;
-  virtual void acknowledge_grob (Grob_info);
+
+  DECLARE_ACKNOWLEDGER(lyric_syllable);
+  DECLARE_ACKNOWLEDGER(stanza_number);
   PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
 };
 
@@ -31,14 +34,17 @@ Stanza_number_align_engraver::Stanza_number_align_engraver ()
 }
 
 void
-Stanza_number_align_engraver::acknowledge_grob (Grob_info gi)
+Stanza_number_align_engraver::acknowledge_lyric_syllable (Grob_info gi)
 {
   Grob *h = gi.grob ();
+  lyrics_.push (h);
+}
 
-  if (h->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
-    lyrics_.push (h);
-  else if (h->internal_has_interface (ly_symbol2scm ("stanza-number-interface")))
-    stanza_numbers_.push (h);
+void
+Stanza_number_align_engraver::acknowledge_stanza_number (Grob_info gi)
+{
+  Grob *h = gi.grob ();
+  stanza_numbers_.push (h);
 }
 
 void
@@ -52,13 +58,13 @@ Stanza_number_align_engraver::stop_translation_timestep ()
   lyrics_.clear ();
 }
 
-#include "translator.icc"
-
+ADD_ACKNOWLEDGER(Stanza_number_align_engraver,lyric_syllable);
+ADD_ACKNOWLEDGER(Stanza_number_align_engraver,stanza_number);
 ADD_TRANSLATOR (Stanza_number_align_engraver,
                "This engraver ensures that stanza numbers are neatly aligned. ",
                "",
                "",
-               "stanza-number-interface lyric-syllable-interface ",
+               " ",
                "",
                "");
 
index 618add3881caf06e97f47d7313be3727a09edd4e..bacc51b6d96be687a7b1b20d56cd549b8c8e0a57 100644 (file)
@@ -23,7 +23,7 @@ public:
   TRANSLATOR_DECLARATIONS (Stanza_number_engraver);
   PRECOMPUTED_VIRTUAL void process_music ();
   PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
-  virtual void acknowledge_grob (Grob_info);
+  DECLARE_ACKNOWLEDGER(lyric_syllable);
 };
 
 /*
@@ -52,10 +52,9 @@ Stanza_number_engraver::process_music ()
 }
 
 void
-Stanza_number_engraver::acknowledge_grob (Grob_info inf)
+Stanza_number_engraver::acknowledge_lyric_syllable (Grob_info inf)
 {
-  if (text_
-      && inf.grob ()->internal_has_interface (ly_symbol2scm ("lyric-syllable-interface")))
+  if (text_)
     {
       Side_position_interface::add_support (text_, inf.grob ());
     }
@@ -69,10 +68,11 @@ Stanza_number_engraver::stop_translation_timestep ()
 
 #include "translator.icc"
 
+ADD_ACKNOWLEDGER(Stanza_number_engraver,lyric_syllable);
 ADD_TRANSLATOR (Stanza_number_engraver,
                /* descr */ "",
                /* creats*/ "StanzaNumber",
                /* accepts */ "",
-               /* acks  */ "lyric-syllable-interface",
+               /* acks  */ "",
                /* reads */ "stanza",
                /* write */ "");
index b5572185612a3e0b0daf84bf7e99dcd24dc216f8..15e628510a6fac3cb41ae10afda4d73de4d17297 100644 (file)
@@ -25,7 +25,7 @@ public:
   TRANSLATOR_DECLARATIONS (Trill_spanner_engraver);
 protected:
   virtual void finalize ();
-  virtual void acknowledge_grob (Grob_info);
+  DECLARE_ACKNOWLEDGER(note_column);
   virtual bool try_music (Music *);
   PRECOMPUTED_VIRTUAL void stop_translation_timestep ();
   PRECOMPUTED_VIRTUAL void process_music ();
@@ -94,12 +94,12 @@ Trill_spanner_engraver::process_music ()
 }
 
 void
-Trill_spanner_engraver::acknowledge_grob (Grob_info info)
+Trill_spanner_engraver::acknowledge_note_column (Grob_info info)
 {
   Spanner *spans[2] ={span_, finished_};
   for (int i = 0; i < 2; i++)
     {
-      if (spans[i] && Note_column::has_interface (info.grob ()))
+      if (spans[i])
        {
          Side_position_interface::add_support (spans[i], info.grob ());
          add_bound_item (spans[i], dynamic_cast<Item *> (info.grob ()));
@@ -146,11 +146,11 @@ Trill_spanner_engraver::finalize ()
       span_ = 0;
     }
 }
-
+ADD_ACKNOWLEDGER(Trill_spanner_engraver,note_column);
 ADD_TRANSLATOR (Trill_spanner_engraver,
                /* descr */ "Create trill spanner from a Music.",
                /* creats*/ "TrillSpanner",
                /* accepts */ "trill-span-event",
-               /* acks  */ "note-column-interface",
+               /* acks  */ "",
                /* reads */ "",
                /* write */ "");
index 7bec0b218e4632597fd2874ceb00ddeba5275821..57e819c2c8eab822c8e0dcbb7141871c186c4544 100644 (file)
@@ -35,7 +35,7 @@ public:
 protected:
   Array<Tuplet_description> tuplets_;
 
-  virtual void acknowledge_grob (Grob_info);
+  DECLARE_ACKNOWLEDGER(note_column);
   virtual bool try_music (Music *r);
   PRECOMPUTED_VIRTUAL void start_translation_timestep ();
   PRECOMPUTED_VIRTUAL void process_music ();
@@ -87,15 +87,12 @@ Tuplet_engraver::process_music ()
 }
 
 void
-Tuplet_engraver::acknowledge_grob (Grob_info i)
+Tuplet_engraver::acknowledge_note_column (Grob_info i)
 {
-  if (Note_column::has_interface (i.grob ()))
-    {
-      for (int j = 0; j < tuplets_.size (); j++)
-       if (tuplets_[j].spanner_)
-         Tuplet_bracket::add_column (tuplets_[j].spanner_,
-                                     dynamic_cast<Item *> (i.grob ()));
-    }
+  for (int j = 0; j < tuplets_.size (); j++)
+    if (tuplets_[j].spanner_)
+      Tuplet_bracket::add_column (tuplets_[j].spanner_,
+                                 dynamic_cast<Item *> (i.grob ()));
 }
 
 void
@@ -134,11 +131,11 @@ Tuplet_engraver::start_translation_timestep ()
 Tuplet_engraver::Tuplet_engraver ()
 {
 }
-
+ADD_ACKNOWLEDGER(Tuplet_engraver,note_column);
 ADD_TRANSLATOR (Tuplet_engraver,
                /* descr */ "Catch Time_scaled_music and generate appropriate bracket  ",
                /* creats*/ "TupletBracket",
                /* accepts */ "time-scaled-music",
-               /* acks  */ "note-column-interface",
+               /* acks  */ "",
                /* reads */ "tupletNumberFormatFunction tupletSpannerDuration",
                /* write */ "");