]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/gregorian-ligature.hh
* lily/vaticana-ligature-engraver.cc: bugfix: fixed programming
[lilypond.git] / lily / include / gregorian-ligature.hh
1 /*
2   gregorian-ligature.hh -- part of GNU LilyPond
3
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2003 Juergen Reuter <reuter@ipd.uka.de>
7 */
8
9 #ifndef GREGORIAN_LIGATURE_HH
10 #define GREGORIAN_LIGATURE_HH
11
12 class Gregorian_ligature {
13 public:
14   static bool has_interface (Grob *);
15   static String prefixes_to_str (Grob *);
16 };
17
18 /*
19  * Head prefixes: these bit-mask constants are used to represent
20  * attributes immediately derived from user input (e.g. by the user
21  * setting a gregorian ligature grob property or using the "\~"
22  * keyword).  If the according bit of the head prefix value is set,
23  * the attribute applies for this head.  The binary opereator "\~" is
24  * treated like a prefix for the head that follows the operator, but
25  * does not affect the head that precedes the operator, if any.
26  */
27 #define VIRGA        0x0001 // attribute "\virga"
28 #define STROPHA      0x0002 // attribute "\stropha"
29 #define INCLINATUM   0x0004 // attribute "\inclinatum"
30 #define AUCTUM       0x0008 // attribute "\auctum"
31 #define DESCENDENS   0x0010 // attribute "\descendens"
32 #define ASCENDENS    0x0020 // attribute "\ascendens"
33 #define ORISCUS      0x0040 // attribute "\oriscus"
34 #define QUILISMA     0x0080 // attribute "\quilisma"
35 #define DEMINUTUM    0x0100 // attribute "\deminutum"
36 #define CAVUM        0x0200 // attribute "\cavum"
37 #define LINEA        0x0400 // attribute "\linea"
38 #define PES_OR_FLEXA 0x0800 // operator "\~"
39
40 /*
41  * Ligature context info: these attributes are derived from the head
42  * prefixes by considering the current and the two neighbouring heads.
43  *
44  * These definitions may be extended by more specific Gregorian
45  * ligatures such as vaticana-ligature.hh.
46  */
47 #define PES_LOWER       0x0001 // this is a head before "\~" in an
48                                // ascending melody
49 #define PES_UPPER       0x0002 // this is a head after "\~" in an
50                                // ascending melody
51 #define FLEXA_LEFT      0x0004 // this is a head before "\~" in a
52                                // descending melody
53 #define FLEXA_RIGHT     0x0008 // this is a head after "\~" in a
54                                // descending melody
55 #define AFTER_DEMINUTUM 0x0020 // previous head was a deminutum
56
57 #endif /* GREGORIAN_LIGATURE_HH */