source file of the GNU LilyPond music typesetter
- (c) 1999--2004 Han-Wen Nienhuys <hanwen@cs.uu.nl>
+ (c) 1999--2005 Han-Wen Nienhuys <hanwen@cs.uu.nl>
*/
#include "input.hh"
#include "repeated-music.hh"
-#include "music-list.hh"
#include "simultaneous-music-iterator.hh"
#include "context.hh"
void
Folded_repeat_iterator::construct_children ()
{
- Repeated_music * mus = dynamic_cast<Repeated_music*> (get_music ());
- main_iter_ = unsmob_iterator (get_iterator (mus->body ()));
+ Music *mus = get_music ();
+ main_iter_ = unsmob_iterator (get_iterator (Repeated_music::body (mus)));
if (!main_iter_->ok ())
{
leave_body ();
if (!alternative_iter_->ok ())
{
alternative_iter_->quit ();
- alternative_iter_ =0;
+ alternative_iter_ = 0;
}
}
}
void
Folded_repeat_iterator::leave_body ()
{
- Repeated_music * mus = dynamic_cast<Repeated_music *> (get_music ());
+ Music *mus = get_music ();
main_iter_->quit ();
main_iter_ = 0;
- main_length_mom_ += mus->body ()->get_length ();
+ main_length_mom_ += Repeated_music::body (mus)->get_length ();
}
void
Folded_repeat_iterator::enter_alternative ()
{
- Repeated_music * mus = dynamic_cast<Repeated_music *> (get_music ());
- if (mus->alternatives ())
+ Music *mus = get_music ();
+ if (scm_is_pair (Repeated_music::alternatives (mus)))
{
/*
ugh.
Folded_repeat_iterator::derived_substitute (Context *f, Context *t)
{
if (main_iter_)
- main_iter_->substitute_outlet (f,t);
+ main_iter_->substitute_outlet (f, t);
if (alternative_iter_)
- alternative_iter_->substitute_outlet (f,t);
+ alternative_iter_->substitute_outlet (f, t);
}
IMPLEMENT_CTOR_CALLBACK (Folded_repeat_iterator);