X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Fgregorian-ligature.cc;h=0bfdde3efaec88fc3e5a5cab61fb5785c33d9a8f;hb=730dd1aeadf4609b4a08bd08702c1a478f11d372;hp=7b5cfc221a266f4786284578f9495adb507619f9;hpb=2ac91de7c1099097dd38b46b1b47db71d16d1201;p=lilypond.git diff --git a/lily/gregorian-ligature.cc b/lily/gregorian-ligature.cc index 7b5cfc221a..0bfdde3efa 100644 --- a/lily/gregorian-ligature.cc +++ b/lily/gregorian-ligature.cc @@ -1,22 +1,54 @@ -/* +/* gregorian-ligature.cc -- implement Gregorian_ligature source file of the GNU LilyPond music typesetter - (c) 2003 Han-Wen Nienhuys + (c) 2003--2007 Han-Wen Nienhuys */ + +#include "gregorian-ligature.hh" + #include "grob.hh" -class Gregorian_ligature { -public: - static bool has_interface (Grob *); -}; +void check_prefix (string name, int mask, int prefix_set, string *str) +{ + if (prefix_set & mask) + { + if (!str->empty ()) + *str += ", "; + *str += name; + } +} +string +Gregorian_ligature::prefixes_to_str (Grob *primitive) +{ + string str; + int prefix_set + = scm_to_int (primitive->get_property ("prefix-set")); + check_prefix ("virga", VIRGA, prefix_set, &str); + check_prefix ("stropha", STROPHA, prefix_set, &str); + check_prefix ("inclinatum", INCLINATUM, prefix_set, &str); + check_prefix ("auctum", AUCTUM, prefix_set, &str); + check_prefix ("descendens", DESCENDENS, prefix_set, &str); + check_prefix ("ascendens", ASCENDENS, prefix_set, &str); + check_prefix ("oriscus", ORISCUS, prefix_set, &str); + check_prefix ("quilisma", QUILISMA, prefix_set, &str); + check_prefix ("deminutum", DEMINUTUM, prefix_set, &str); + check_prefix ("cavum", CAVUM, prefix_set, &str); + check_prefix ("linea", LINEA, prefix_set, &str); + return str; +} /* - CHECK ME -- does prefix-set come from here ? - */ -ADD_INTERFACE (Gregorian_ligature, "gregorian-ligature-interface", + CHECK ME -- does prefix-set come from here ? + + In a way, yes. Actually, prefix-set is a property that is written + by code of GregorianLigatureEngraver that is virtually invoked by a + subclass like VaticanaLigatureEngraver. The property is lateron + read by the associated item class, such as VaticanaLigature.--jr +*/ +ADD_INTERFACE (Gregorian_ligature, "A gregorian ligature", "virga stropha inclinatum auctum descendens ascendens " "oriscus quilisma deminutum cavum linea pes-or-flexa "