]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/beaming-info.cc
Basic-notation reorg and misc small fixes.
[lilypond.git] / lily / beaming-info.cc
index 27dcc682654d69316d9bb1a35972635c4ee181cb..417a20372c193de23bda8312f61b27930d7f9a94 100644 (file)
 
 Beaming_info::Beaming_info ()
 {
-  start_mom_ = 0;
-  beams_i_drul_[LEFT] = 0;
-  beams_i_drul_[RIGHT] = 0;
+  start_moment_ = 0;
+  beam_count_drul_[LEFT] = 0;
+  beam_count_drul_[RIGHT] = 0;
 }
 
 Beaming_info::Beaming_info (Moment m, int i)
 {
-  start_mom_ = m;
-  beams_i_drul_[LEFT] = i;
-  beams_i_drul_[RIGHT] = i;
+  start_moment_ = m;
+  beam_count_drul_[LEFT] = i;
+  beam_count_drul_[RIGHT] = i;
 }
 
-const int at_beat = 1 << 15;
+const int at_beat = 1 << 15;   //  WTF is this.
 
 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 = INT_MAX;
-  int minidx = -1;
+  int min_denominator = INT_MAX;
+  int min_index = -1;
   Moment beat_pos;
 
   for (vsize i = 1; i < infos_.size (); i++)
     {
-      beat_pos = infos_[i].start_mom_ / beat_length;
+      beat_pos = infos_[i].start_moment_ / 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].beam_count_drul_[LEFT] == infos_[i - 1].beam_count_drul_[RIGHT]
+         && !subdivide)
        den *= 2;
-      if (den < minden)
+      
+      if (den < min_denominator)
        {
-         minidx = i;
-         minden = den;
+         min_index = i;
+         min_denominator = den;
        }
     }
 
-  return minidx | (minden == 1 && subdivide ? at_beat : 0);
+  return min_index | (min_denominator == 1 && subdivide ? at_beat : 0);
 }
 
 int
 Beaming_info_list::beam_extend_count (Direction d) const
 {
   if (infos_.size () == 1)
-    return infos_[0].beams_i_drul_[d];
+    return infos_[0].beam_count_drul_[d];
 
   Beaming_info thisbeam = boundary (infos_, d, 0);
   Beaming_info next = boundary (infos_, d, 1);
 
-  return min (thisbeam.beams_i_drul_[-d], next.beams_i_drul_[d]);
+  return min (thisbeam.beam_count_drul_[-d], next.beam_count_drul_[d]);
 }
 
 void
@@ -66,17 +69,22 @@ Beaming_info_list::beamify (Moment &beat_length, bool subdivide)
     return;
 
   Drul_array<Beaming_info_list> splits;
+
   int m = best_splitpoint_index (beat_length, subdivide);
-  bool split = subdivide && (m & at_beat); m = m & ~at_beat;
-  splits[LEFT].infos_ = std::vector<Beaming_info> (infos_.begin (),
-                                                  infos_.begin () + m);
-  splits[RIGHT].infos_ = std::vector<Beaming_info> (infos_.begin () + m,
-                                                   infos_.end ());
+  bool split = subdivide && (m & at_beat);
+  m = m & ~at_beat;
+
+  splits[LEFT].infos_ = vector<Beaming_info> (infos_.begin (),
+                                             infos_.begin () + m);
+  splits[RIGHT].infos_ = vector<Beaming_info> (infos_.begin () + m,
+                                              infos_.end ());
 
   Direction d = LEFT;
 
   do
-    splits[d].beamify (beat_length, subdivide);
+    {
+      splits[d].beamify (beat_length, subdivide);
+    }
   while (flip (&d) != LEFT);
 
   int middle_beams = (split ? 1
@@ -86,12 +94,14 @@ Beaming_info_list::beamify (Moment &beat_length, bool subdivide)
   do
     {
       if (splits[d].infos_.size () != 1)
-       boundary (splits[d].infos_, -d, 0).beams_i_drul_[-d] = middle_beams;
+       boundary (splits[d].infos_, -d, 0).beam_count_drul_[-d] = middle_beams;
     }
   while (flip (&d) != LEFT);
 
   infos_ = splits[LEFT].infos_;
-  infos_.insert (infos_.end (), splits[RIGHT].infos_.begin (), splits[RIGHT].infos_.end ());
+  infos_.insert (infos_.end (),
+                splits[RIGHT].infos_.begin (),
+                splits[RIGHT].infos_.end ());
 
   clip_edges ();
 }
@@ -107,7 +117,7 @@ Beaming_info_list::clip_edges ()
 {
   if (infos_.size ())
     {
-      infos_[0].beams_i_drul_[LEFT] = 0;
-      infos_.back ().beams_i_drul_[RIGHT] = 0;
+      infos_[0].beam_count_drul_[LEFT] = 0;
+      infos_.back ().beam_count_drul_[RIGHT] = 0;
     }
 }