]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/engraver-group.cc
patch::: 1.1.39.jcn1: jcn1
[lilypond.git] / lily / engraver-group.cc
index 2dc0b4131b24b756dbea75a0007be88550f43d2d..104793dca49fb21bad2c5c3ab8d7195d16ed4417 100644 (file)
@@ -3,18 +3,17 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+  (c)  1997--1999 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 
 #include "proto.hh"
-#include "plist.hh"
 #include "engraver-group.hh"
 #include "engraver.hh"
 #include "debug.hh"
 #include "p-score.hh"
 #include "score-element.hh"
 
-IMPLEMENT_IS_TYPE_B2(Engraver_group_engraver,Engraver, Translator_group);
+
 ADD_THIS_TRANSLATOR(Engraver_group_engraver);
 
 void
@@ -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]->access_Engraver  ();
-      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();
        }
     }
@@ -52,7 +49,7 @@ Engraver_group_engraver::do_announces()
            info.req_l_ = &dummy_req;
          for (int i=0; i < nongroups.size(); i++) 
            {   // Is this good enough?
-             Engraver * eng = nongroups[i]->access_Engraver  ();
+             Engraver * eng = dynamic_cast<Engraver*> (nongroups[i]);
              if (eng && eng!= info.origin_grav_l_arr_[0])
                eng->acknowledge_element (info);
            }
@@ -60,7 +57,7 @@ Engraver_group_engraver::do_announces()
       announce_info_arr_.clear ();
       for (int i=0; i < nongroups.size(); i++)
        {
-         Engraver * eng = nongroups[i]->access_Engraver  ();
+         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]->access_Engraver  ();
+    Engraver * eng = dynamic_cast<Engraver*> (simple_translators[i]);
     if (eng)
       eng->fill_staff_info (inf);
     }