X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Ffolded-repeat-iterator.cc;h=79bfcb2fc797aba35c884da3950c06c9f6f2b299;hb=cc18fd6f82df460cc31695c4c31f47f45b7e434e;hp=62459136ebfe962fb6009b00eb109ec304ba2280;hpb=5d1ddaf889233f8e5c32a118f9e843e1becca2d2;p=lilypond.git diff --git a/lily/folded-repeat-iterator.cc b/lily/folded-repeat-iterator.cc index 62459136eb..79bfcb2fc7 100644 --- a/lily/folded-repeat-iterator.cc +++ b/lily/folded-repeat-iterator.cc @@ -1,18 +1,18 @@ -/* - folded-repeat-iterator.cc -- implement Folded_repeat_iterator - +/* + folded-repeat-iterator.cc -- implement Folded_repeat_iterator + source file of the GNU LilyPond music typesetter - - (c) 1999--2005 Han-Wen Nienhuys - - */ + + (c) 1999--2006 Han-Wen Nienhuys +*/ #include "folded-repeat-iterator.hh" +#include "context.hh" #include "input.hh" +#include "international.hh" #include "repeated-music.hh" #include "simultaneous-music-iterator.hh" -#include "context.hh" Folded_repeat_iterator::Folded_repeat_iterator () { @@ -36,9 +36,7 @@ Moment Folded_repeat_iterator::pending_moment () const { if (main_iter_) - { - return main_iter_->pending_moment (); - } + return main_iter_->pending_moment (); else return main_length_mom_ + alternative_iter_->pending_moment (); } @@ -46,7 +44,7 @@ Folded_repeat_iterator::pending_moment () const void Folded_repeat_iterator::construct_children () { - Music *mus = get_music (); + Music *mus = get_music (); main_iter_ = unsmob_iterator (get_iterator (Repeated_music::body (mus))); if (!main_iter_->ok ()) { @@ -58,13 +56,6 @@ Folded_repeat_iterator::construct_children () void Folded_repeat_iterator::process (Moment m) { - if (!m.to_bool () ) - { - bool success = try_music (get_music ()); - if (!success) - get_music ()->origin ()->warning (_ ("no one to print a repeat brace")); - } - if (main_iter_) { main_iter_->process (m); @@ -73,10 +64,8 @@ Folded_repeat_iterator::process (Moment m) } if (!main_iter_ && !alternative_iter_) - { - enter_alternative (); - } - + enter_alternative (); + if (alternative_iter_) { alternative_iter_->process (m - main_length_mom_); @@ -95,43 +84,31 @@ Folded_repeat_iterator::leave_body () main_iter_->quit (); main_iter_ = 0; - main_length_mom_ += Repeated_music::body (mus)->get_length (); + main_length_mom_ += Repeated_music::body (mus)->get_length (); } void Folded_repeat_iterator::enter_alternative () { - Music *mus = get_music (); + Music *mus = get_music (); if (scm_is_pair (Repeated_music::alternatives (mus))) { /* ugh. - */ - Simultaneous_music_iterator * s = new Simultaneous_music_iterator; + */ + Simultaneous_music_iterator *s = new Simultaneous_music_iterator; s->create_separate_contexts_ = true; - s->init_translator (mus, get_outlet ()); - + s->init_context (mus, get_outlet ()); + alternative_iter_ = s; alternative_iter_->construct_children (); - scm_gc_unprotect_object (s->self_scm ()); + s->unprotect (); } } - -Music_iterator* -Folded_repeat_iterator::try_music_in_children (Music * m) const -{ - if (main_iter_) - { - return main_iter_->try_music (m); - } - if (alternative_iter_) - return alternative_iter_->try_music (m); - return 0; -} void -Folded_repeat_iterator::derived_mark ()const +Folded_repeat_iterator::derived_mark () const { if (main_iter_) scm_gc_mark (main_iter_->self_scm ()); @@ -140,7 +117,7 @@ Folded_repeat_iterator::derived_mark ()const } void -Folded_repeat_iterator::derived_substitute (Context *f, Context *t) +Folded_repeat_iterator::derived_substitute (Context *f, Context *t) { if (main_iter_) main_iter_->substitute_outlet (f, t);