]> git.donarmstrong.com Git - lilypond.git/blobdiff - lily/include/ligature-engraver.hh
Imported Upstream version 2.19.45
[lilypond.git] / lily / include / ligature-engraver.hh
index 60b341ed996fda2f868a1ac62e74717d9df92274..a46c3fe22a0c393ab83577561d4c6558acf79b23 100644 (file)
@@ -1,9 +1,20 @@
 /*
-  ligature-engraver.hh -- declare Ligature_engraver
+  This file is part of LilyPond, the GNU music typesetter.
 
-  source file of the GNU LilyPond music typesetter
+  Copyright (C) 2002--2015 Juergen Reuter <reuter@ipd.uka.de>
 
-  (c) 2002--2005 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/>.
 */
 
 #ifndef LIGATURE_ENGRAVER_HH
@@ -19,30 +30,31 @@ protected:
   void stop_translation_timestep ();
   virtual void finalize ();
 
-  DECLARE_ACKNOWLEDGER (rest);
-  DECLARE_ACKNOWLEDGER (note_head);
-  virtual bool try_music (Music *);
+  void acknowledge_rest (Grob_info);
+  void acknowledge_ligature_head (Grob_info);
+  void listen_ligature (Stream_event *ev);
   void process_music ();
   virtual Spanner *create_ligature_spanner () = 0;
   virtual void typeset_ligature (Spanner *ligature,
-                                Array<Grob_info> primitives) = 0;
+                                 vector<Grob_info> const &primitives) = 0;
   virtual Spanner *current_ligature ();
   SCM brew_ligature_primitive_proc;
 
 public:
   // no TRANSLATOR_DECLARATIONS (Ligature_engraver) needed since this
   // class is abstract
+  DECLARE_TRANSLATOR_CALLBACKS (Ligature_engraver);
 
 private:
-  Drul_array<Music *> events_drul_;
+  Drul_array<Stream_event *> events_drul_;
 
   Spanner *ligature_;
-  Array<Grob_info> primitives_;
+  vector<Grob_info> primitives_;
 
   Spanner *finished_ligature_;
-  Array<Grob_info> finished_primitives_;
+  vector<Grob_info> finished_primitives_;
 
-  Music *prev_start_event_;
+  Stream_event *prev_start_event_;
 
   // moment where ligature started.
   Moment ligature_start_mom_;