beams_i_drul_[RIGHT] = i;
}
-const int infinity_i = INT_MAX; // guh.
-const int at_beat = 1<<15;
+const int at_beat = 1 << 15;
int
Beaming_info_list::best_splitpoint_index (Moment &beat_length, bool subdivide) const
{
- int minden = infinity_i;
+ int minden = INT_MAX;
int minidx = -1;
Moment beat_pos;
Beaming_info thisbeam = infos_.boundary (d, 0);
Beaming_info next = infos_.boundary (d, 1);
- return thisbeam.beams_i_drul_[-d] <? next.beams_i_drul_[d];
+ return min (thisbeam.beams_i_drul_[-d], next.beams_i_drul_[d]);
}
void
Direction d = LEFT;
do
- {
- splits[d].beamify (beat_length, subdivide);
- }
- while (flip (&d) != LEFT);
+ splits[d].beamify (beat_length, subdivide);
+ while (flip (&d) != LEFT)
+ ;
int middle_beams = (split ? 1
- : splits[RIGHT].beam_extend_count (LEFT) <?
- splits[LEFT].beam_extend_count (RIGHT));
+ : min (splits[RIGHT].beam_extend_count (LEFT),
+ splits[LEFT].beam_extend_count (RIGHT)));
do
{
infos_ = splits[LEFT].infos_;
infos_.concat (splits[RIGHT].infos_);
+
+ clip_edges ();
}
void
{
infos_.push (Beaming_info (m, b));
}
+
+void
+Beaming_info_list::clip_edges ()
+{
+ if (infos_.size ())
+ {
+ infos_[0].beams_i_drul_[LEFT] = 0;
+ infos_.top().beams_i_drul_[RIGHT] = 0;
+ }
+}