- body_length_ = Repeated_music::body_get_length (m);
- int count = Repeated_music::repeat_count (m);
-
- Moment now = now_mom ();
- start_mom_ = now;
- stop_mom_ = start_mom_ + Moment (count) * body_length_;
- next_moment_ = start_mom_ + body_length_;
-
- Moment meas_len (robust_scm2moment (get_property ("measureLength"), Moment (1)));
- if (meas_len == body_length_)
- repeat_sign_type_ = MEASURE;
- else if (Moment (2)* meas_len == body_length_)
- {
- repeat_sign_type_ = DOUBLE_MEASURE;
- next_moment_ += meas_len;
- }
- else
- {
- warning (_ ("Don't know how to handle a percent repeat of this length."));
- return false;
- }
-
- repeat_ = m;
-
- Global_context *global = get_global_context ();
- for (int i = 0; i < count; i++)
- {
- global->add_moment_to_process (next_moment_ + Moment (i) * body_length_);
-
- /*
- bars between % too.
- */
- if (repeat_sign_type_ == DOUBLE_MEASURE)
- global->add_moment_to_process (next_moment_ + meas_len + Moment (i) * body_length_);
-
- }
-
- return true;