]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/auto-beam-engraver.cc
Run `make grand-replace'.
[lilypond.git] / lily / auto-beam-engraver.cc
index d2cef6ae1693ecb2bd9bf8a928958b9978a7fb4a..f86edaecc88eceddb74e17dea010458a24fa826f 100644 (file)
@@ -3,7 +3,7 @@
 
   source file of the GNU LilyPond music typesetter
 
-  (c) 1999--2007 Jan Nieuwenhuizen <janneke@gnu.org>
+  (c) 1999--2008 Jan Nieuwenhuizen <janneke@gnu.org>
 */
 
 #include "bar-line.hh"
@@ -27,7 +27,6 @@ class Auto_beam_engraver : public Engraver
 
 protected:
   void stop_translation_timestep ();
-  void start_translation_timestep ();
   void process_music ();
   virtual void finalize ();
   virtual void derived_mark () const;
@@ -106,6 +105,16 @@ Auto_beam_engraver::check_bar_property ()
 void
 Auto_beam_engraver::process_music ()
 {
+  /*
+    don't beam over skips
+  */
+  if (stems_)
+    {
+      Moment now = now_mom ();
+      if (extend_mom_ < now)
+       end_beam ();
+    }
+
   if (scm_is_string (get_property ("whichBar")))
     {
       consider_end (shortest_mom_);
@@ -185,7 +194,7 @@ Auto_beam_engraver::create_beam ()
       return 0;
 
   /*
-    Can't use make_spanner_from_properties() because we have to use
+    Can't use make_spanner_from_properties () because we have to use
     beam_settings_.
   */
   Spanner *beam = new Spanner (beam_settings_);
@@ -273,26 +282,12 @@ Auto_beam_engraver::typeset_beam ()
     }
 }
 
-void
-Auto_beam_engraver::start_translation_timestep ()
-{
-  process_acknowledged_count_ = 0;
-  /*
-    don't beam over skips
-  */
-  if (stems_)
-    {
-      Moment now = now_mom ();
-      if (extend_mom_ < now)
-       end_beam ();
-    }
-  forbid_ = 0;
-}
-
 void
 Auto_beam_engraver::stop_translation_timestep ()
 {
   typeset_beam ();
+  process_acknowledged_count_ = 0;
+  forbid_ = 0;
 }
 
 void
@@ -390,10 +385,11 @@ Auto_beam_engraver::acknowledge_stem (Grob_info info)
     return;
 
   grouping_->add_stem (now - beam_start_moment_ + beam_start_location_,
-                      durlog - 2);
+                      durlog - 2,
+                      Stem::is_invisible (stem));
   stems_->push_back (stem);
   last_add_mom_ = now;
-  extend_mom_ = max (extend_mom_, now) + get_event_length (ev);
+  extend_mom_ = max (extend_mom_, now) + get_event_length (ev, now);
 }
 
 void
@@ -428,12 +424,16 @@ ADD_ACKNOWLEDGER (Auto_beam_engraver, bar_line);
 ADD_ACKNOWLEDGER (Auto_beam_engraver, beam);
 ADD_ACKNOWLEDGER (Auto_beam_engraver, rest);
 ADD_TRANSLATOR (Auto_beam_engraver,
-               /* doc */ "Generate beams based on measure characteristics and observed "
-               "Stems.  Uses beatLength, measureLength and measurePosition to decide "
-               "when to start and stop a beam.  Overriding beaming is done through "
-               "@ref{Stem_engraver} properties @code{stemLeftBeamCount} and "
-               "@code{stemRightBeamCount}. ",
-               /* create */ "Beam",
+               /* doc */
+               "Generate beams based on measure characteristics and observed"
+               " Stems.  Uses @code{beatLength}, @code{measureLength}, and"
+               " @code{measurePosition} to decide when to start and stop a"
+               " beam.  Overriding beaming is done through"
+               " @ref{Stem_engraver} properties @code{stemLeftBeamCount} and"
+               " @code{stemRightBeamCount}.",
+
+               /* create */
+               "Beam ",
 
                /* read */
                "autoBeaming "
@@ -441,4 +441,6 @@ ADD_TRANSLATOR (Auto_beam_engraver,
                "beatLength "
                "subdivideBeams ",
                
-               /* write */ "");
+               /* write */
+               ""
+               );