]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/ligature-engraver.cc
Whitespace, minor formatting.
[lilypond.git] / lily / ligature-engraver.cc
index 822df306ff91d55f83b1d7622b45ebcb9c1998cb..509ecd2df3755cc4d842450264eff6b81f1d7705 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  ligature-engraver.cc -- implement Ligature_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 2002--2010 Juergen Reuter <reuter@ipd.uka.de>
 
-  (c) 2002--2006 Juergen Reuter <reuter@ipd.uka.de>
+  LilyPond is free software: you can redistribute it and/or modify
+  it under the terms of the GNU General Public License as published by
+  the Free Software Foundation, either version 3 of the License, or
+  (at your option) any later version.
+
+  LilyPond is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+  GNU General Public License for more details.
+
+  You should have received a copy of the GNU General Public License
+  along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
 */
 
 #include "ligature-engraver.hh"
@@ -13,8 +24,7 @@
 #include "note-head.hh"
 #include "rest.hh"
 #include "spanner.hh"
-#include "warn.hh"
-
+#include "stream-event.hh"
 #include "translator.icc"
 
 /*
@@ -77,16 +87,11 @@ Ligature_engraver::Ligature_engraver ()
   brew_ligature_primitive_proc = SCM_EOL;
 }
 
-bool
-Ligature_engraver::try_music (Music *m)
+void
+Ligature_engraver::listen_ligature (Stream_event *ev)
 {
-  if (m->is_mus_type ("ligature-event"))
-    {
-      Direction d = to_dir (m->get_property ("span-direction"));
-      events_drul_[d] = m;
-      return true;
-    }
-  return false;
+  Direction d = to_dir (ev->get_property ("span-direction"));
+  ASSIGN_EVENT_ONCE (events_drul_[d], ev);
 }
 
 void
@@ -96,7 +101,7 @@ Ligature_engraver::process_music ()
     {
       if (!ligature_)
        {
-         events_drul_[STOP]->origin ()->warning (_ ("can't find start of ligature"));
+         events_drul_[STOP]->origin ()->warning (_ ("cannot find start of ligature"));
          return;
        }
 
@@ -150,8 +155,9 @@ Ligature_engraver::stop_translation_timestep ()
     {
       if (!finished_primitives_.size ())
        {
-         finished_ligature_->programming_error ("Ligature_engraver::stop_translation_timestep (): "
-                                                "junking empty ligature");
+         finished_ligature_->programming_error (
+           "Ligature_engraver::stop_translation_timestep ():"
+           " junking empty ligature");
        }
       else
        {
@@ -193,7 +199,7 @@ Ligature_engraver::acknowledge_note_head (Grob_info info)
   if (ligature_)
     {
       primitives_.push_back (info);
-      if (info.grob () && (brew_ligature_primitive_proc != SCM_EOL))
+      if (info.grob () && brew_ligature_primitive_proc != SCM_EOL)
        {
          info.grob ()->set_property ("stencil", brew_ligature_primitive_proc);
        }
@@ -205,7 +211,7 @@ Ligature_engraver::acknowledge_rest (Grob_info info)
 {
   if (ligature_)
     {
-      info.music_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest"));
+      info.event_cause ()->origin ()->warning (_ ("ignoring rest: ligature may not contain rest"));
       prev_start_event_->origin ()->warning (_ ("ligature was started here"));
       // TODO: maybe better should stop ligature here rather than
       // ignoring the rest?