Simultaneous_music_iterator::Simultaneous_music_iterator ()
{
+ separate_contexts_b_ = false;
}
Simultaneous_music_iterator::~Simultaneous_music_iterator ()
Simultaneous_music_iterator::construct_children()
{
int j = 0;
- Simultaneous_music const *sim = dynamic_cast<Simultaneous_music const*> (music_l_);
- for (PCursor<Music*> i (sim->music_p_list_p_->top());
- i.ok(); j++, i++)
+ Music_sequence const *sim = dynamic_cast<Music_sequence const*> (music_l_);
+
+ for (Cons<Music> *i = sim->music_p_list_p_->head_; i; i = i->next_, j++)
{
- Music_iterator * mi = get_iterator_p (i.ptr());
+ Music_iterator * mi = static_get_iterator_p (i->car_);
+
+ /* if separate_contexts_b_ is set, create a new context with the
+ number number as name */
+
+ Translator_group * t = (j && separate_contexts_b_)
+ ? report_to_l ()->find_create_translator_l (report_to_l()->type_str_,
+ to_str (j))
+ : report_to_l ();
+
+ mi->init_translator (i->car_, t);
+ mi->construct_children ();
+
if (mi->ok())
{
- if (sim->translator_type_str_.empty_b ())
- set_translator (mi->report_to_l()->ancestor_l (0)); // huh?
children_p_list_.append (new Killing_cons<Music_iterator> (mi,0));
}
else
}
}
-
void
Simultaneous_music_iterator::do_print() const
{