X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fbeaming-info.cc;h=63f845489b09b96866dc961f66a22edc19050c47;hb=4348b2762d1101d731add0c01bb77a9ce162efec;hp=d66a452814a29523a866835aca1fef38a7d645ef;hpb=7aabfb20c46e0a1de41698ddc6859ccd3a6dea85;p=lilypond.git diff --git a/lily/beaming-info.cc b/lily/beaming-info.cc index d66a452814..63f845489b 100644 --- a/lily/beaming-info.cc +++ b/lily/beaming-info.cc @@ -1,11 +1,10 @@ -/* - beaming-info.cc -- implement Beaming_info, Beaming_info_list - +/* + beaming-info.cc -- implement Beaming_info, Beaming_info_list + source file of the GNU LilyPond music typesetter - - (c) 1999--2003 Han-Wen Nienhuys - - */ + + (c) 1999--2005 Han-Wen Nienhuys +*/ #include "beaming.hh" @@ -13,31 +12,30 @@ Beaming_info::Beaming_info () { start_mom_ = 0; beams_i_drul_[LEFT] = 0; - beams_i_drul_[RIGHT] = 0; + beams_i_drul_[RIGHT] = 0; } Beaming_info::Beaming_info (Moment m, int i) { start_mom_ = m; beams_i_drul_[LEFT] = i; - beams_i_drul_[RIGHT] = i; + 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 +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; - for (int i=1; i < infos_.size (); i++) + for (int i = 1; i < infos_.size (); i++) { beat_pos = infos_[i].start_mom_ / beat_length; int den = beat_pos.den (); - if (infos_[i].beams_i_drul_[LEFT] == infos_[i-1].beams_i_drul_[RIGHT] && !subdivide) + if (infos_[i].beams_i_drul_[LEFT] == infos_[i - 1].beams_i_drul_[RIGHT] && !subdivide) den *= 2; if (den < minden) { @@ -46,7 +44,7 @@ Beaming_info_list::best_splitpoint_index (Moment &beat_length,bool subdivide) co } } - return minidx|(minden==1 && subdivide ? at_beat : 0); + return minidx | (minden == 1 && subdivide ? at_beat : 0); } int @@ -55,47 +53,46 @@ Beaming_info_list::beam_extend_count (Direction d) const if (infos_.size () == 1) return infos_[0].beams_i_drul_[d]; - Beaming_info thisbeam = infos_.boundary (d, 0); - Beaming_info next = infos_.boundary (d, 1); - - return thisbeam.beams_i_drul_[-d] splits; - int m = best_splitpoint_index (beat_length,subdivide); - bool split = subdivide && (m & at_beat); m = m & ~at_beat; - splits[LEFT].infos_ = infos_.slice (0,m); + int m = best_splitpoint_index (beat_length, subdivide); + bool split = subdivide && (m & at_beat); m = m & ~at_beat; + splits[LEFT].infos_ = infos_.slice (0, m); splits[RIGHT].infos_ = infos_.slice (m, infos_.size ()); 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)