X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fvaticana-ligature-engraver.cc;h=df3a3d4ec4050e94f8f5c3dbf595ea08f734bb9c;hb=1d63a3985005a45af468e5c9656de3d17fbb4ee3;hp=53bec433d7c196be7b7fb5a9728ac273cd6e8685;hpb=0387f04497978e37b335a8b99eec905499d6ad0f;p=lilypond.git diff --git a/lily/vaticana-ligature-engraver.cc b/lily/vaticana-ligature-engraver.cc index 53bec433d7..df3a3d4ec4 100644 --- a/lily/vaticana-ligature-engraver.cc +++ b/lily/vaticana-ligature-engraver.cc @@ -1,9 +1,20 @@ /* - vaticana-ligature-engraver.cc -- implement Vaticana_ligature_engraver + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter + Copyright (C) 2003--2011 Juergen Reuter - (c) 2003--2008 Juergen Reuter + 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 . */ #include "gregorian-ligature-engraver.hh" @@ -194,8 +205,8 @@ Vaticana_ligature_engraver::align_heads (vector primitives, { if (!primitives.size ()) { - programming_error ("Vaticana_ligature: " - "empty ligature [ignored]"); + programming_error ("Vaticana_ligature:" + " empty ligature [ignored]"); return 0.0; } @@ -319,8 +330,8 @@ Vaticana_ligature_engraver::align_heads (vector primitives, { if (!prev_primitive) { - primitive->programming_error ("vaticana ligature: add-join: " - "missing previous primitive"); + primitive->programming_error ("Vaticana ligature: add-join:" + " missing previous primitive"); } else { @@ -386,8 +397,9 @@ Vaticana_ligature_engraver::check_for_prefix_loss (Item *primitive) if (prefix_set & ~PES_OR_FLEXA) { string prefs = Gregorian_ligature::prefixes_to_str (primitive); - primitive->warning (_f ("ignored prefix (es) `%s' of this head according " - "to restrictions of the selected ligature style", + primitive->warning (_f ("ignored prefix(es) `%s' of this head" + " according to restrictions of the selected" + " ligature style", prefs.c_str ())); } } @@ -451,9 +463,9 @@ Vaticana_ligature_engraver::check_for_ambiguous_dot_pitch (Grob_info primitive) if (pitch == new_pitch) { primitive.grob ()-> - warning ("Ambiguous use of dots in ligature: there are " - "multiple dotted notes with the same pitch. " - "The ligature should be split."); + warning ("Ambiguous use of dots in ligature: there are" + " multiple dotted notes with the same pitch." + " The ligature should be split."); return; // supress multiple identical warnings } } @@ -509,10 +521,10 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, } else if (augmented_primitives_.size () > 0) { - primitive->warning ("This ligature has a dotted head followed by " - "a non-dotted head. The ligature should be " - "split after the last dotted head before " - "this head."); + primitive->warning ("This ligature has a dotted head followed by" + " a non-dotted head. The ligature should be" + " split after the last dotted head before" + " this head."); } if (is_stacked_head (prefix_set, context_info)) @@ -550,66 +562,70 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, else glyph_name = "vaticana.inclinatum"; else if (prefix_set & DEMINUTUM) - if (i == 0) - { - // initio debilis - glyph_name = "vaticana.reverse.plica"; - } - else if (prev_delta_pitch > 0) - { - // epiphonus - if (! (prev_context_info & FLEXA_RIGHT)) - /* correct head of previous primitive */ + { + if (i == 0) + { + // initio debilis + glyph_name = "vaticana.reverse.plica"; + } + else if (prev_delta_pitch > 0) + { + // epiphonus + if (! (prev_context_info & FLEXA_RIGHT)) + { + /* correct head of previous primitive */ + if (prev_delta_pitch > 1) + prev_glyph_name = "vaticana.epiphonus"; + else + prev_glyph_name = "vaticana.vepiphonus"; + } if (prev_delta_pitch > 1) - prev_glyph_name = "vaticana.epiphonus"; + glyph_name = "vaticana.plica"; else - prev_glyph_name = "vaticana.vepiphonus"; - if (prev_delta_pitch > 1) - glyph_name = "vaticana.plica"; - else - glyph_name = "vaticana.vplica"; - } - else if (prev_delta_pitch < 0) - { - // cephalicus - if (! (prev_context_info & FLEXA_RIGHT)) - /* correct head of previous primitive */ - { - if (i > 1) - { - /* cephalicus head with fixed size cauda */ - prev_glyph_name = "vaticana.inner.cephalicus"; - } - else - { - /* cephalicus head without cauda */ - prev_glyph_name = "vaticana.cephalicus"; - } - - /* - * Flexa has no variable size cauda if its left head is - * stacked on the right head. This is true for - * cephalicus. Hence, remove the cauda. - * - * Urgh: for the current implementation, this rule only - * applies for cephalicus; but it is a fundamental rule. - * Therefore, the following line of code should be - * placed somewhere else. - */ - prev_primitive->set_property ("add-cauda", - ly_bool2scm (false)); - } - if (prev_delta_pitch < - 1) - glyph_name = "vaticana.reverse.plica"; - else - glyph_name = "vaticana.reverse.vplica"; - } - else // (prev_delta_pitch == 0) - { - primitive->programming_error ("Vaticana_ligature:" - " deminutum head must have different" - " pitch -> ignoring grob"); - } + glyph_name = "vaticana.vplica"; + } + else if (prev_delta_pitch < 0) + { + // cephalicus + if (! (prev_context_info & FLEXA_RIGHT)) + /* correct head of previous primitive */ + { + if (i > 1) + { + /* cephalicus head with fixed size cauda */ + prev_glyph_name = "vaticana.inner.cephalicus"; + } + else + { + /* cephalicus head without cauda */ + prev_glyph_name = "vaticana.cephalicus"; + } + + /* + * Flexa has no variable size cauda if its left head is + * stacked on the right head. This is true for + * cephalicus. Hence, remove the cauda. + * + * Urgh: for the current implementation, this rule only + * applies for cephalicus; but it is a fundamental rule. + * Therefore, the following line of code should be + * placed somewhere else. + */ + prev_primitive->set_property ("add-cauda", + ly_bool2scm (false)); + } + if (prev_delta_pitch < - 1) + glyph_name = "vaticana.reverse.plica"; + else + glyph_name = "vaticana.reverse.vplica"; + } + else // (prev_delta_pitch == 0) + { + primitive->programming_error ("Vaticana_ligature:" + " deminutum head must have different" + " pitch -> ignoring grob"); + } + } else if (prefix_set & (CAVUM | LINEA)) if ((prefix_set & CAVUM) && (prefix_set & LINEA)) glyph_name = "vaticana.linea.punctum.cavum"; @@ -676,10 +692,12 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, if ((context_info & PES_UPPER) && (context_info & STACKED_HEAD)) { if (prev_glyph_name == "vaticana.punctum") - if (prev_delta_pitch > 1) - prev_glyph_name = "vaticana.lpes"; - else - prev_glyph_name = "vaticana.vlpes"; + { + if (prev_delta_pitch > 1) + prev_glyph_name = "vaticana.lpes"; + else + prev_glyph_name = "vaticana.vlpes"; + } } } @@ -715,8 +733,8 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, voices/staves also may want to set this property. */ Item *first_primitive = dynamic_cast (primitives[0].grob ()); Paper_column *paper_column = first_primitive->get_column (); - paper_column->warning (_f ("Vaticana_ligature_engraver: " - "setting `spacing-increment = %f': ptr =%ul", + paper_column->warning (_f ("Vaticana_ligature_engraver:" + " setting `spacing-increment = %f': ptr =%ul", ligature_width, paper_column)); paper_column-> set_property ("forced-spacing", scm_from_double (ligature_width)); @@ -727,7 +745,8 @@ ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, rest); ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, note_head); ADD_TRANSLATOR (Vaticana_ligature_engraver, /* doc */ - "Handle ligatures by glueing special ligature heads together.", + "Handle ligatures by glueing special ligature heads" + " together.", /* create */ "VaticanaLigature "