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