#include "command-request.hh"
#include "time-description.hh"
#include "engraver-group.hh"
-#include "repeated-music.hh"
+#include "new-repeated-music.hh"
#include "time-description.hh"
#include "volta-spanner.hh"
#include "note-column.hh"
#include "paper-def.hh"
-
+#include "music-list.hh"
ADD_THIS_TRANSLATOR (Repeat_engraver);
-Repeat_engraver::Repeat_engraver ()
-{
-}
-
/*
- urg. Way too complicated. needs redesign.
+ Urg. Hairy. Needs redesign?
*/
bool
Repeat_engraver::do_try_music (Music* m)
{
- if (Repeated_music* r = dynamic_cast<Repeated_music *> (m))
+ if (New_repeated_music* r = dynamic_cast<New_repeated_music *> (m))
{
- r->unfold_b_ = get_property ("unfoldRepeats", 0).to_bool ();
- if (r->unfold_b_)
- return true;
-
- Music_sequence* alt = r->alternative_p_;
- Moment repeat_length_mom = r->repeat_p_->length_mom ();
+ Music_sequence* alt = r->alternatives_p_;
+ Moment repeat_length_mom = r->repeat_body_p_->length_mom ();
Moment stop_mom = now_mom () + repeat_length_mom;
Moment alt_mom = now_mom () + repeat_length_mom;
if (repeat_length_mom)
{
- for (Cons<Music> *i (alt->music_p_list_p_->head_); i && i->next_; i = i->next_)
- {
- stop_mom += i->car_->length_mom ();
- if (dynamic_cast<Simultaneous_music *> (alt))
- break;
- }
+ stop_mom += r->alternatives_length_mom ();
repeated_music_arr_.push (r);
stop_mom_arr_.push (stop_mom);
}
{
Volta_spanner* v = new Volta_spanner;
Scalar prop = get_property ("voltaVisibility", 0);
- v->visible_b_ = prop.to_bool ();
+ if (!prop.to_bool ())
+ v->set_elt_property (transparent_scm_sym, SCM_BOOL_T);
prop = get_property ("voltaSpannerDuration", 0);
if ((i == alternative_music_arr_.size () - 1) || prop.length_i ())
v->last_b_ = true;
- Text_def* t = new Text_def;
- t->text_str_ = alternative_str_arr_[i];
- v->number_p_.set_p (t);
+
+ v->number_str_ = alternative_str_arr_[i];
volta_p_arr_.push (v);
announce_element (Score_element_info (v, alternative_music_arr_[i]));
}
}
}
}
-
-void
-Repeat_engraver::do_post_move_processing ()
-{
-}
-