]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/engraver-group.cc
release: 1.1.51
[lilypond.git] / lily / engraver-group.cc
index bd6873d0d227ef63a0bea59b627520f09fe6009d..4636dcad3cfcae96160fa3bb7658085a352342dd 100644 (file)
@@ -3,22 +3,21 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "proto.hh"
-#include "plist.hh"
-#include "engraver-group.hh"
+#include "engraver-group-engraver.hh"
 #include "engraver.hh"
 #include "debug.hh"
 #include "p-score.hh"
-#include "score-elem.hh"
+#include "score-element.hh"
+
 
-IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator_group);
 ADD_THIS_TRANSLATOR(Engraver_group_engraver);
 
 void
-Engraver_group_engraver::announce_element (Score_elem_info info)
+Engraver_group_engraver::announce_element (Score_element_info info)
 {
   announce_info_arr_.push (info);
   Engraver::announce_element (info);
@@ -30,11 +29,9 @@ Engraver_group_engraver::do_announces()
   Link_array<Translator_group> groups = group_l_arr ();
   for (int i=0; i < groups.size(); i++) 
     {
-      Engraver * eng = groups[i]->engraver_l ();
-      if (eng)
+      Engraver_group_engraver * group = dynamic_cast<Engraver_group_engraver*> (groups[i]);
+      if (group)
        {
-         Engraver_group_engraver * group =
-           (Engraver_group_engraver*) eng;
          group->do_announces();
        }
     }
@@ -46,21 +43,21 @@ Engraver_group_engraver::do_announces()
     {
       for (int j =0; j < announce_info_arr_.size(); j++)
        {
-         Score_elem_info info = announce_info_arr_[j];
+         Score_element_info info = announce_info_arr_[j];
          
          if (!info.req_l_)
            info.req_l_ = &dummy_req;
          for (int i=0; i < nongroups.size(); i++) 
            {   // Is this good enough?
-             Engraver * eng = nongroups[i]->engraver_l ();
-             if (eng && eng!= info.origin_grav_l_arr_[0])
+             Engraver * eng = dynamic_cast<Engraver*> (nongroups[i]);
+             if (eng && eng!= info.origin_trans_l_arr_[0])
                eng->acknowledge_element (info);
            }
        }
       announce_info_arr_.clear ();
       for (int i=0; i < nongroups.size(); i++)
        {
-         Engraver * eng = nongroups[i]->engraver_l ();
+         Engraver * eng = dynamic_cast<Engraver*> (nongroups[i]);
          if (eng)
            eng->process_acknowledged ();
        }
@@ -77,7 +74,7 @@ Engraver_group_engraver::get_staff_info() const
   Link_array<Translator> simple_translators = nongroup_l_arr (); 
   for (int i=0; i < simple_translators.size(); i++)
     {
-    Engraver * eng = simple_translators[i]->engraver_l ();
+    Engraver * eng = dynamic_cast<Engraver*> (simple_translators[i]);
     if (eng)
       eng->fill_staff_info (inf);
     }
@@ -86,10 +83,3 @@ Engraver_group_engraver::get_staff_info() const
 
 
 
-Engraver_group_engraver::~Engraver_group_engraver ()
-{
-}
-
-Engraver_group_engraver::Engraver_group_engraver ()
-{
-}