source file of the GNU LilyPond music typesetter
- (c) 1998 Jan Nieuwenhuizen <janneke@gnu.org>
+ (c) 1998--1999 Jan Nieuwenhuizen <janneke@gnu.org>
*/
repeat_iter_p_ = 0;
alternative_iter_p_ = 0;
here_mom_ = 0;
-#if 0
- unfold_i_ = repeated_music_l ()->unfold_b_ ?
- repeated_music_l ()->repeats_i_ - 1 : 0;
-#endif
unfold_i_ = -1;
}
void
Repeated_music_iterator::construct_children ()
{
-#if 0
- unfold_i_ = repeated_music_l ()->unfold_b_ ?
- repeated_music_l ()->repeats_i_ - 1 : 0;
-#endif
- repeat_iter_p_ = get_iterator_p (repeated_music_l ()->repeat_p_);
+ repeat_iter_p_ = get_iterator_p (dynamic_cast<Repeated_music const*> (music_l_)->repeat_p_);
}
void
{
if (first_b_)
{
- bool success = report_to_l ()->try_music (repeated_music_l ());
+ bool success = report_to_l ()->try_music (dynamic_cast<Repeated_music const*> (music_l_));
if (!success)
music_l_->warning ( _("No one to print a volta bracket"));
}
Moment
Repeated_music_iterator::next_moment () const
{
+
if (repeat_iter_p_)
return repeat_iter_p_->next_moment () + here_mom_;
else if (alternative_iter_p_)
return alternative_iter_p_->next_moment () + here_mom_;
- // huh?
-// return repeated_music_l ()->repeat_p_->length_mom ()
-// * Moment (repeated_music_l ()->repeats_i_)
-// + repeated_music_l ()->alternative_p_->length_mom () + here_mom_;
- return repeated_music_l ()->alternative_p_->length_mom () + here_mom_;
+
+ Repeated_music const*r = dynamic_cast<Repeated_music const*>(music_l_);
+ return r->alternative_p_->length_mom () + here_mom_;
}
+/*
+ FIXME
+ */
bool
Repeated_music_iterator::ok () const
{
return ok ();
}
-Repeated_music*
-Repeated_music_iterator::repeated_music_l () const
-{
- return (Repeated_music*)Music_iterator::music_l_;
-}
void
Repeated_music_iterator::start_next_element ()
{
- if (repeat_iter_p_)
+ Repeated_music const*rep =dynamic_cast<Repeated_music const*> (music_l_);
+
+
+ if (repeat_iter_p_)
{
assert (!repeat_iter_p_->ok ());
assert (!alternative_iter_p_);
delete repeat_iter_p_;
repeat_iter_p_ = 0;
alternative_iter_p_ = dynamic_cast<Music_list_iterator*>
- (get_iterator_p ((Music*)repeated_music_l ()->alternative_p_));
- here_mom_ += repeated_music_l ()->repeat_p_->length_mom ();
+ (get_iterator_p ((Music*)rep->alternative_p_));
+ here_mom_ += rep->repeat_p_->length_mom ();
}
else if (alternative_iter_p_)
{
delete alternative_iter_p_;
alternative_iter_p_ = 0;
if (unfold_i_ < 0)
- unfold_i_ = repeated_music_l ()->unfold_b_ ?
- repeated_music_l ()->repeats_i_ - 1 : 0;
+ unfold_i_ = rep->unfold_b_ ?
+ rep->repeats_i_ - 1 : 0;
if (unfold_i_)
{
unfold_i_--;
- repeat_iter_p_ = get_iterator_p (repeated_music_l ()->repeat_p_);
+ repeat_iter_p_ = get_iterator_p (rep->repeat_p_);
// urg, assume same length alternatives for now...
-// here_mom_ += repeated_music_l ()->alternative_p_->music_p_list_p_->top ()->length_mom ();
+// here_mom_ += rep->alternative_p_->music_p_list_p_->top ()->length_mom ();
/*
URG
this is *wrong* but at least it doesn't dump core
how to intercept this...
*/
- here_mom_ += repeated_music_l ()->alternative_p_->length_mom ();
+ here_mom_ += rep->alternative_p_->length_mom ();
}
}
}