]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/tie-performer.cc
Imported Upstream version 2.16.0
[lilypond.git] / lily / tie-performer.cc
index 5d237c1de3de1e3c345613518c840c6df6ede6d2..9ef199ddffb46063c94cade87a7ad4988add9591 100644 (file)
@@ -1,7 +1,7 @@
 /*
   This file is part of LilyPond, the GNU music typesetter.
 
-  Copyright (C) 1998--2011 Han-Wen Nienhuys <hanwen@xs4all.nl>
+  Copyright (C) 1998--2012 Han-Wen Nienhuys <hanwen@xs4all.nl>
 
   LilyPond is free software: you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
@@ -39,7 +39,6 @@ struct Head_audio_event_tuple
   }
 };
 
-
 class Tie_performer : public Performer
 {
   Stream_event *event_;
@@ -90,31 +89,30 @@ Tie_performer::acknowledge_audio_element (Audio_element_info inf)
       else
         now_heads_.push_back (inf_mom);
 
-      // Find a previous note that ties to the current note. If it exists, 
+      // Find a previous note that ties to the current note. If it exists,
       // remove it from the heads_to_tie vector and create the tie
       list<Head_audio_event_tuple>::iterator it;
       bool found = false;
       Stream_event *right_mus = inf.event_;
-        for (it = heads_to_tie_.begin ();
-             !found && (it != heads_to_tie_.end());
-             it++)
-       {
-         Audio_element_info et = (*it).head_;
-         Audio_note *th = dynamic_cast<Audio_note *> (et.elem_);
-         Stream_event *left_mus = et.event_;
-
-         if (th && right_mus && left_mus
-             && ly_is_equal (right_mus->get_property ("pitch"),
-                             left_mus->get_property ("pitch")))
-           {
-             found = true;
-             // (*it).moment_ already stores the end of the tied note!
-             Moment skip = now_mom() - (*it).end_moment_;
-             an->tie_to (th, skip);
-             // this invalidates the iterator, we are leaving the loop anyway
-             heads_to_tie_.erase (it);
-           }
-       }
+      for (it = heads_to_tie_.begin ();
+           !found && (it != heads_to_tie_.end ());
+           it++)
+        {
+          Audio_element_info et = (*it).head_;
+          Audio_note *th = dynamic_cast<Audio_note *> (et.elem_);
+          Stream_event *left_mus = et.event_;
+
+          if (th && right_mus && left_mus
+              && ly_is_equal (right_mus->get_property ("pitch"),
+                              left_mus->get_property ("pitch")))
+            {
+              found = true;
+              // (*it).moment_ already stores the end of the tied note!
+              Moment skip = now_mom () - (*it).end_moment_;
+              an->tie_to (th, skip);
+              it = heads_to_tie_.erase (it);
+            }
+        }
     }
 }
 
@@ -122,7 +120,7 @@ void
 Tie_performer::start_translation_timestep ()
 {
   context ()->set_property ("tieMelismaBusy",
-                           ly_bool2scm (heads_to_tie_.size ()));
+                            ly_bool2scm (heads_to_tie_.size ()));
 }
 
 // a predicate implemented as a class, used to delete all tied notes with end
@@ -133,7 +131,8 @@ protected:
   Moment now;
 public:
   end_moment_passed (Moment mom) : now (mom) {}
-  bool operator() (const Head_audio_event_tuple &value) {
+  bool operator () (const Head_audio_event_tuple &value)
+  {
     return (value.end_moment_ <= now);
   }
 };
@@ -161,15 +160,15 @@ Tie_performer::stop_translation_timestep ()
 }
 
 ADD_TRANSLATOR (Tie_performer,
-               /* doc */
-               "Generate ties between note heads of equal pitch.",
+                /* doc */
+                "Generate ties between note heads of equal pitch.",
 
-               /* create */
-               "",
+                /* create */
+                "",
 
-               /* read */
-               "tieWaitForNote",
+                /* read */
+                "tieWaitForNote",
 
-               /* write */
-               "tieMelismaBusy"
-               );
+                /* write */
+                "tieMelismaBusy"
+               );