]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-iterator.cc
patch::: 1.1.25.jcn1: jcn1
[lilypond.git] / lily / music-iterator.cc
index b19215f51200ada13487995a5f22703123bdbd2d..3d22831fbfa9ecec925e97be98e3b583a0144cb4 100644 (file)
@@ -8,10 +8,10 @@
 #include "debug.hh"
 #include "music-list.hh"
 #include "music-iterator.hh"
-#include "voice-iterator.hh"
 #include "property-iterator.hh"
-#include "chord-iterator.hh"
 #include "request-iterator.hh"
+#include "sequential-music-iterator.hh"
+#include "simultaneous-music-iterator.hh"
 #include "translator-group.hh"
 #include "translation-property.hh"
 #include "change-iterator.hh"
 #include "music-wrapper-iterator.hh"
 #include "compressed-music-iterator.hh"
 #include "compressed-music.hh"
-
-
-
-IMPLEMENT_IS_TYPE_B(Music_iterator);
-
+#include "repeated-music.hh"
+#include "repeated-music-iterator.hh"
 
 void
 Music_iterator::do_print() const
 {
-
 }
 
 void
@@ -38,9 +34,9 @@ Music_iterator::print() const
 #ifndef NPRINT
   if (!check_debug)
     return ;
-  DOUT << name() << "{";
+  DOUT << classname(this) << "{";
   DOUT << "report to " << 
-    report_to_l() << " (" << report_to_l ()->name () << ")\n";
+    report_to_l() << " (" << classname (report_to_l ()) << ")\n";
   if (ok())
     DOUT << "next at " << next_moment() << " ";
   else
@@ -136,20 +132,24 @@ Music_iterator*
 Music_iterator::static_get_iterator_p (Music const *m, Translator_group *report_l)
 {
   Music_iterator * p =0;
-  if (m->is_type_b (Request_chord::static_name()))
+  if (dynamic_cast<Request_chord  const *> (m))
     p = new Request_chord_iterator;
-  else if (m->is_type_b (Simultaneous_music::static_name())) 
+  else if (dynamic_cast<Simultaneous_music  const *> (m)) 
     p =  new Simultaneous_music_iterator;
-  else if (m->is_type_b (Sequential_music::static_name())) 
+  else if (dynamic_cast<Sequential_music  const *> (m)) 
     p =  new Sequential_music_iterator;
-  else if (m->is_type_b (Translation_property::static_name ()))
+  else if (dynamic_cast<Translation_property  const *> (m))
     p = new Property_iterator;
-  else if (m->is_type_b (Change_translator::static_name ()))
+  else if (dynamic_cast<Change_translator  const *> (m))
     p = new Change_iterator;
-  else if (m->is_type_b (Compressed_music::static_name ()))
+  else if (dynamic_cast<Compressed_music  const *> (m))
     p = new Compressed_music_iterator;
-  else if (m->is_type_b (Music_wrapper::static_name ()))
+  else if (dynamic_cast<Music_wrapper  const *> (m))
     p = new Music_wrapper_iterator;
+  else if (dynamic_cast<Repeated_music const *> (m))
+    p = new Repeated_music_iterator;
+  else
+    assert (0);
 
   p->music_l_ = m;
   if (m->translator_type_str_.length_i ())
@@ -166,16 +166,11 @@ Music_iterator::static_get_iterator_p (Music const *m, Translator_group *report_
   return p;
 }
 
-void
-Music_iterator::inherit_info(Music_iterator const *parent)
-{
-}
 
 Music_iterator*
 Music_iterator::get_iterator_p (Music const*m) const
 {
   Music_iterator*p = static_get_iterator_p (m, report_to_l());
-  p->inherit_info (this);
   p->construct_children();
   return p;
 }