]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/music-iterator.cc
release: 1.0.1
[lilypond.git] / lily / music-iterator.cc
index d05b752df097ee42fe7a80e8ed3bc8ff2488336b..97352020af20712f53b0566f4e7d7d0fe54ae7cd 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1997 Han-Wen Nienhuys <hanwen@stack.nl>
+  (c)  1997--1998 Han-Wen Nienhuys <hanwen@cs.uu.nl>
 */
 #include "debug.hh"
 #include "music-list.hh"
 #include "request-iterator.hh"
 #include "translator-group.hh"
 #include "translation-property.hh"
+#include "change-iterator.hh"
+#include "change-translator.hh"
+
+#include "music-wrapper.hh"
+#include "music-wrapper-iterator.hh"
+
 
 IMPLEMENT_IS_TYPE_B(Music_iterator);
 
@@ -111,6 +117,7 @@ Music_iterator::process_and_next (Moment)
   first_b_ = false;
 }
 
+
 bool
 Music_iterator::ok() const
 {
@@ -130,15 +137,19 @@ Music_iterator::static_get_iterator_p (Music *m,
     p =  new Voice_iterator ((Voice*) m);
   else if (m->is_type_b (Translation_property::static_name ()))
     p = new Property_iterator((Translation_property *) m);
-      
-  if (m -> translator_type_str_)
+  else if (m->is_type_b (Change_translator::static_name ()))
+    p = new Change_iterator((Change_translator*) m);
+  else if (m->is_type_b (Music_wrapper::static_name ()))
+    p = new Music_wrapper_iterator ((Music_wrapper *)m);
+          
+  
+  if (m -> translator_type_str_.length_i ())
     {
       Translator_group* a =report_l->
        find_create_translator_l (m-> translator_type_str_, m->translator_id_str_);
       p->set_translator (a);
     }
 
-
   if (! p->report_to_l())
     p ->set_translator (report_l);
   
@@ -160,3 +171,4 @@ Music_iterator::Music_iterator()
   first_b_ = true;
 }
 
+