X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fpercent-repeat-engraver.cc;h=1914d1f52f3f5d617a110535ae192d1b4fe0d90d;hb=6e9040684ec18353e138194d7a1d557acf791748;hp=8b5c04f5300624cd6ff7db8b9dfb3b3a505eedbc;hpb=c659cb200486c2f908703696a1b2873e78c8160a;p=lilypond.git diff --git a/lily/percent-repeat-engraver.cc b/lily/percent-repeat-engraver.cc index 8b5c04f530..1914d1f52f 100644 --- a/lily/percent-repeat-engraver.cc +++ b/lily/percent-repeat-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2000--2004 Han-Wen Nienhuys + (c) 2000--2005 Han-Wen Nienhuys */ @@ -34,7 +34,7 @@ class Percent_repeat_engraver : public Engraver public: TRANSLATOR_DECLARATIONS (Percent_repeat_engraver); protected: - Repeated_music * repeat_; + Music *repeat_; /// moment (global time) where beam started. Moment start_mom_; @@ -66,7 +66,7 @@ Percent_repeat_engraver::Percent_repeat_engraver () { perc_ = 0; finished_perc_ = 0; - repeat_ =0; + repeat_ = 0; double_percent_ = 0; } @@ -74,14 +74,13 @@ Percent_repeat_engraver::Percent_repeat_engraver () bool Percent_repeat_engraver::try_music (Music * m) { - Repeated_music * rp = dynamic_cast (m); - if (rp - && rp->get_property ("iterator-ctor") + if (m->is_mus_type ("repeated-music") + && m->get_property ("iterator-ctor") == Percent_repeat_iterator::constructor_proc && !repeat_) { - body_length_ = rp->body_get_length (); - int count = rp->repeat_count (); + body_length_ = Repeated_music::body_get_length (m); + int count = Repeated_music::repeat_count (m); Moment now = now_mom (); start_mom_ = now; @@ -102,7 +101,7 @@ Percent_repeat_engraver::try_music (Music * m) return false; } - repeat_ = rp; + repeat_ = m; Global_context *global = get_global_context (); @@ -134,7 +133,7 @@ Percent_repeat_engraver::process_music () finished_perc_ = perc_; typeset_perc (); perc_ = make_spanner ("PercentRepeat", repeat_->self_scm ()); - SCM col =get_property ("currentCommandColumn"); + SCM col = get_property ("currentCommandColumn"); perc_->set_bound (LEFT, unsmob_grob (col)); } else if (repeat_sign_type_ == DOUBLE_MEASURE) @@ -168,7 +167,7 @@ Percent_repeat_engraver::typeset_perc () { if (finished_perc_) { - SCM col =get_property ("currentCommandColumn"); + SCM col = get_property ("currentCommandColumn"); finished_perc_->set_bound (RIGHT, unsmob_grob (col)); finished_perc_ = 0; } @@ -205,7 +204,7 @@ Percent_repeat_engraver::stop_translation_timestep () -ENTER_DESCRIPTION (Percent_repeat_engraver, +ADD_TRANSLATOR (Percent_repeat_engraver, /* descr */ "Make whole bar and double bar repeats.", /* creats*/ "PercentRepeat DoublePercentRepeat", /* accepts */ "repeated-music",