X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgregorian-ligature-engraver.cc;h=82c84ffc4c634403265c7c965264d9d3bf22bd75;hb=6c68e65859bae109509e1c464fdfca6de4b5ddd1;hp=4098070e0685f7cc59a6b389e7aaddfdb66a4557;hpb=4b975f3177880e16e759f67be4517f67109c2633;p=lilypond.git diff --git a/lily/gregorian-ligature-engraver.cc b/lily/gregorian-ligature-engraver.cc index 4098070e06..82c84ffc4c 100644 --- a/lily/gregorian-ligature-engraver.cc +++ b/lily/gregorian-ligature-engraver.cc @@ -3,17 +3,18 @@ source file of the GNU LilyPond music typesetter - (c) 2003--2005 Juergen Reuter + (c) 2003--2006 Juergen Reuter */ #include "gregorian-ligature-engraver.hh" #include "gregorian-ligature.hh" -#include "warn.hh" -#include "staff-symbol-referencer.hh" -#include "spanner.hh" +#include "international.hh" #include "paper-column.hh" #include "pitch.hh" +#include "spanner.hh" +#include "staff-symbol-referencer.hh" +#include "warn.hh" /* * This abstract class is the common superclass for all ligature @@ -83,10 +84,10 @@ void fix_prefix_set (int *current_set, int min_set, int max_set, Grob *primitive fix_prefix ("pes_or_flexa", LINEA, current_set, min_set, max_set, primitive); } -void check_and_fix_all_prefixes (Array primitives) +void check_and_fix_all_prefixes (std::vector primitives) { /* Check for illegal head modifier combinations */ - for (int i = 0; i < primitives.size (); i++) + for (vsize i = 0; i < primitives.size (); i++) { Grob *primitive = primitives[i].grob (); @@ -194,13 +195,13 @@ void check_and_fix_all_prefixes (Array primitives) * Marks those heads that participate in a pes or flexa. */ void -provide_context_info (Array primitives) +provide_context_info (std::vector primitives) { Grob *prev_primitive = 0; int prev_prefix_set = 0; int prev_context_info = 0; int prev_pitch = 0; - for (int i = 0; i < primitives.size (); i++) + for (vsize i = 0; i < primitives.size (); i++) { Grob *primitive = primitives[i].grob (); Music *music_cause = primitives[i].music_cause (); @@ -210,9 +211,7 @@ provide_context_info (Array primitives) if (prefix_set & PES_OR_FLEXA) if (!i) // ligature may not start with 2nd head of pes or flexa - { - primitive->warning (_ ( "can't apply `\\~' on first head of ligature")); - } + primitive->warning (_ ("can't apply `\\~' on first head of ligature")); else if (pitch > prev_pitch) // pes { prev_context_info |= PES_LOWER; @@ -224,13 +223,9 @@ provide_context_info (Array primitives) context_info |= FLEXA_RIGHT; } else // (pitch == prev_pitch) - { - primitive->warning (_ ("can't apply `\\~' on heads with identical pitch")); - } + primitive->warning (_ ("can't apply `\\~' on heads with identical pitch")); if (prev_prefix_set & DEMINUTUM) - { - context_info |= AFTER_DEMINUTUM; - } + context_info |= AFTER_DEMINUTUM; if (prev_primitive) prev_primitive->set_property ("context-info", @@ -245,17 +240,9 @@ provide_context_info (Array primitives) scm_from_int (prev_context_info)); } -void -Gregorian_ligature_engraver::transform_heads (Spanner *, Array) -{ - programming_error ("Gregorian_ligature_engraver::transform_heads (): " - "this is an abstract method that should not be called, " - "but overridden by a subclass"); -} - void Gregorian_ligature_engraver::build_ligature (Spanner *ligature, - Array primitives) + std::vector primitives) { // apply style-independent checking and transformation check_and_fix_all_prefixes (primitives); @@ -273,13 +260,5 @@ Gregorian_ligature_engraver::stop_translation_timestep () pes_or_flexa_req_ = 0; } -#include "translator.icc" - -ADD_ACKNOWLEDGER(Gregorian_ligature_engraver, rest); -ADD_ACKNOWLEDGER(Gregorian_ligature_engraver, note_head); -ADD_TRANSLATOR (Gregorian_ligature_engraver, - /* descr */ "This is an abstract class. Subclasses such as Vaticana_ligature_engraver handle ligatures by glueing special ligature heads together.", - /* creats*/ "", - /* accepts */ "ligature-event", - /* reads */ "", - /* write */ ""); +// no ADD_ACKNOWLEDGER / ADD_ACKNOWLEDGER / ADD_TRANSLATOR macro calls +// since this class is abstract