X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fvaticana-ligature-engraver.cc;h=ca8d042ce27947aff73a61fd58a32e0211b9bd15;hb=d445cda01e4d86896f55fd1cf2ccbaba8cb7917a;hp=2804346e2e632f82efa27d434765478ea6c7ddcc;hpb=a7f82e4dc22fc6219a9fe0f6874f8c91e3f31f24;p=lilypond.git diff --git a/lily/vaticana-ligature-engraver.cc b/lily/vaticana-ligature-engraver.cc index 2804346e2e..ca8d042ce2 100644 --- a/lily/vaticana-ligature-engraver.cc +++ b/lily/vaticana-ligature-engraver.cc @@ -3,7 +3,7 @@ source file of the GNU LilyPond music typesetter - (c) 2003--2005 Juergen Reuter + (c) 2003--2006 Juergen Reuter */ #include "gregorian-ligature-engraver.hh" @@ -47,6 +47,8 @@ protected: Vaticana_ligature_engraver::Vaticana_ligature_engraver () { + brew_ligature_primitive_proc = + Vaticana_ligature::brew_ligature_primitive_proc; } Spanner * @@ -159,7 +161,7 @@ Vaticana_ligature_engraver::align_heads (Array primitives, = dynamic_cast (primitives[0].grob ())->get_column (); Real join_thickness - = thickness * column->get_layout ()->get_dimension (ly_symbol2scm ("linethickness")); + = thickness * column->layout ()->get_dimension (ly_symbol2scm ("linethickness")); /* * Amount of extra space two put between some particular @@ -203,9 +205,7 @@ Vaticana_ligature_engraver::align_heads (Array primitives, { SCM delta_pitch_scm = prev_primitive->get_property ("delta-pitch"); if (delta_pitch_scm != SCM_EOL) - { - delta_pitch = scm_to_int (delta_pitch_scm); - } + delta_pitch = scm_to_int (delta_pitch_scm); else { primitive->programming_error ("Vaticana_ligature:" @@ -234,7 +234,7 @@ Vaticana_ligature_engraver::align_heads (Array primitives, head_width = 0.0; x_offset = join_thickness - Font_interface::get_default_font (primitive)-> - find_by_name ("noteheads." + glyph_name).extent (X_AXIS).length (); + find_by_name ("noteheads.s" + glyph_name).extent (X_AXIS).length (); } else if (!String::compare (glyph_name, "flexa") || !String::compare (glyph_name, "")) @@ -254,7 +254,7 @@ Vaticana_ligature_engraver::align_heads (Array primitives, */ head_width = Font_interface::get_default_font (primitive)-> - find_by_name ("noteheads." + glyph_name).extent (X_AXIS).length (); + find_by_name ("noteheads.s" + glyph_name).extent (X_AXIS).length (); x_offset = 0.0; } @@ -262,7 +262,7 @@ Vaticana_ligature_engraver::align_heads (Array primitives, * Save the head's final x-offset. */ primitive->set_property ("x-offset", - scm_make_real (x_offset)); + scm_from_double (x_offset)); /* * If the head is the 2nd head of a pes or flexa (but not a @@ -369,9 +369,7 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, int delta_pitch; SCM delta_pitch_scm = primitive->get_property ("delta-pitch"); if (delta_pitch_scm != SCM_EOL) - { - delta_pitch = scm_to_int (delta_pitch_scm); - } + delta_pitch = scm_to_int (delta_pitch_scm); else { primitive->programming_error ("Vaticana_ligature:" @@ -389,7 +387,7 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, { context_info |= STACKED_HEAD; primitive->set_property ("context-info", - scm_int2num (context_info)); + scm_from_int (context_info)); } /* @@ -401,29 +399,29 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, String glyph_name; if (prefix_set & VIRGA) { - glyph_name = "svaticana.punctum"; + glyph_name = "vaticana.punctum"; primitive->set_property ("add-stem", ly_bool2scm (true)); } else if (prefix_set & QUILISMA) - glyph_name = "svaticana.quilisma"; + glyph_name = "vaticana.quilisma"; else if (prefix_set & ORISCUS) - glyph_name = "ssolesmes.oriscus"; + glyph_name = "solesmes.oriscus"; else if (prefix_set & STROPHA) if (prefix_set & AUCTUM) - glyph_name = "ssolesmes.stropha.aucta"; - else glyph_name = "ssolesmes.stropha"; + glyph_name = "solesmes.stropha.aucta"; + else glyph_name = "solesmes.stropha"; else if (prefix_set & INCLINATUM) if (prefix_set & AUCTUM) - glyph_name = "ssolesmes.incl.auctum"; + glyph_name = "solesmes.incl.auctum"; else if (prefix_set & DEMINUTUM) - glyph_name = "ssolesmes.incl.parvum"; + glyph_name = "solesmes.incl.parvum"; else - glyph_name = "svaticana.inclinatum"; + glyph_name = "vaticana.inclinatum"; else if (prefix_set & DEMINUTUM) if (i == 0) { // initio debilis - glyph_name = "svaticana.reverse.plica"; + glyph_name = "vaticana.reverse.plica"; } else if (prev_delta_pitch > 0) { @@ -431,15 +429,13 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, if (! (prev_context_info & FLEXA_RIGHT)) /* correct head of previous primitive */ if (prev_delta_pitch > 1) - { - prev_glyph_name = "svaticana.epiphonus"; - glyph_name = "svaticana.plica"; - } + prev_glyph_name = "vaticana.epiphonus"; else - { - prev_glyph_name = "svaticana.vepiphonus"; - glyph_name = "svaticana.vplica"; - } + 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) { @@ -450,12 +446,12 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, if (i > 1) { /* cephalicus head with fixed size cauda */ - prev_glyph_name = "svaticana.inner.cephalicus"; + prev_glyph_name = "vaticana.inner.cephalicus"; } else { /* cephalicus head without cauda */ - prev_glyph_name = "svaticana.cephalicus"; + prev_glyph_name = "vaticana.cephalicus"; } /* @@ -471,14 +467,10 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, prev_primitive->set_property ("add-cauda", ly_bool2scm (false)); } - if (prev_delta_pitch < - 1) - { - glyph_name = "svaticana.reverse.plica"; - } - else - { - glyph_name = "svaticana.reverse.vplica"; - } + if (prev_delta_pitch < - 1) + glyph_name = "vaticana.reverse.plica"; + else + glyph_name = "vaticana.reverse.vplica"; } else // (prev_delta_pitch == 0) { @@ -488,31 +480,31 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, } else if (prefix_set & (CAVUM | LINEA)) if ((prefix_set & CAVUM) && (prefix_set & LINEA)) - glyph_name = "svaticana.linea.punctum.cavum"; + glyph_name = "vaticana.linea.punctum.cavum"; else if (prefix_set & CAVUM) - glyph_name = "svaticana.punctum.cavum"; + glyph_name = "vaticana.punctum.cavum"; else - glyph_name = "svaticana.linea.punctum"; + glyph_name = "vaticana.linea.punctum"; else if (prefix_set & AUCTUM) if (prefix_set & ASCENDENS) - glyph_name = "ssolesmes.auct.asc"; + glyph_name = "solesmes.auct.asc"; else - glyph_name = "ssolesmes.auct.desc"; + glyph_name = "solesmes.auct.desc"; else if ((context_info & STACKED_HEAD) && (context_info & PES_UPPER)) if (prev_delta_pitch > 1) - glyph_name = "svaticana.upes"; + glyph_name = "vaticana.upes"; else - glyph_name = "svaticana.vupes"; + glyph_name = "vaticana.vupes"; else - glyph_name = "svaticana.punctum"; + glyph_name = "vaticana.punctum"; /* * This head needs a cauda, if it starts a flexa, is not the upper * head of a pes, and if it is a punctum. */ if ((context_info & FLEXA_LEFT) && ! (context_info & PES_UPPER)) - if (!String::compare (glyph_name, "svaticana.punctum")) + if (!String::compare (glyph_name, "vaticana.punctum")) primitive->set_property ("add-cauda", ly_bool2scm (true)); /* @@ -527,16 +519,16 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, check_for_prefix_loss (prev_primitive); prev_glyph_name = "flexa"; prev_primitive->set_property ("flexa-height", - scm_int2num (prev_delta_pitch)); + scm_from_int (prev_delta_pitch)); prev_primitive->set_property ("flexa-width", - scm_make_real (flexa_width)); + scm_from_double (flexa_width)); bool add_cauda = !(prev_prefix_set && PES_OR_FLEXA); prev_primitive->set_property ("add-cauda", ly_bool2scm (add_cauda)); check_for_prefix_loss (primitive); glyph_name = ""; primitive->set_property ("flexa-width", - scm_make_real (flexa_width)); + scm_from_double (flexa_width)); } /* @@ -551,11 +543,11 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, { if ((context_info & PES_UPPER) && (context_info & STACKED_HEAD)) { - if (!String::compare (prev_glyph_name, "svaticana.punctum")) + if (!String::compare (prev_glyph_name, "vaticana.punctum")) if (prev_delta_pitch > 1) - prev_glyph_name = "svaticana.lpes"; + prev_glyph_name = "vaticana.lpes"; else - prev_glyph_name = "svaticana.vlpes"; + prev_glyph_name = "vaticana.vlpes"; } } @@ -569,7 +561,7 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, * ligature grob's value for thickness to each ligature head (even * if not all of them need to know). */ - primitive->set_property ("thickness", scm_make_real (thickness)); + primitive->set_property ("thickness", scm_from_double (thickness)); prev_primitive = primitive; prev_prefix_set = prefix_set; @@ -592,14 +584,15 @@ Vaticana_ligature_engraver::transform_heads (Spanner *ligature, "setting `spacing-increment = %f': ptr =%ul", ligature_width, paper_column)); paper_column-> - set_property ("forced-spacing", scm_make_real (ligature_width)); + set_property ("forced-spacing", scm_from_double (ligature_width)); #endif } +ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, rest); +ADD_ACKNOWLEDGER (Vaticana_ligature_engraver, note_head); ADD_TRANSLATOR (Vaticana_ligature_engraver, - /* descr */ "Handles ligatures by glueing special ligature heads together.", - /* creats*/ "VaticanaLigature", - /* accepts */ "ligature-event", - /* acks */ "note-head-interface rest-interface", - /* reads */ "", + /* doc */ "Handles ligatures by glueing special ligature heads together.", + /* create */ "VaticanaLigature", + /* accept */ "ligature-event", + /* read */ "", /* write */ "");