]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/gregorian-ligature.hh
Typo fixes: backslash, join one set of comments.
[lilypond.git] / lily / include / gregorian-ligature.hh
1 /*
2   This file is part of LilyPond, the GNU music typesetter.
3
4   Copyright (C) 2003--2010 Juergen Reuter <reuter@ipd.uka.de>
5
6   LilyPond is free software: you can redistribute it and/or modify
7   it under the terms of the GNU General Public License as published by
8   the Free Software Foundation, either version 3 of the License, or
9   (at your option) any later version.
10
11   LilyPond is distributed in the hope that it will be useful,
12   but WITHOUT ANY WARRANTY; without even the implied warranty of
13   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14   GNU General Public License for more details.
15
16   You should have received a copy of the GNU General Public License
17   along with LilyPond.  If not, see <http://www.gnu.org/licenses/>.
18 */
19
20 #ifndef GREGORIAN_LIGATURE_HH
21 #define GREGORIAN_LIGATURE_HH
22
23 class Grob;
24 #include "std-string.hh"
25 #include "grob-interface.hh"
26
27
28 class Gregorian_ligature
29 {
30 public:
31   DECLARE_GROB_INTERFACE();
32   static string prefixes_to_str (Grob *);
33 };
34
35 /*
36  * Head prefixes: these bit-mask constants are used to represent
37  * attributes immediately derived from user input (e.g. by the user
38  * setting a gregorian ligature grob property or using the "\~"
39  * keyword).  If the according bit of the head prefix value is set,
40  * the attribute applies for this head.  The binary opereator "\~" is
41  * treated like a prefix for the head that follows the operator, but
42  * does not affect the head that precedes the operator, if any.
43  */
44 #define VIRGA 0x0001 // attribute "\virga"
45 #define STROPHA 0x0002 // attribute "\stropha"
46 #define INCLINATUM 0x0004 // attribute "\inclinatum"
47 #define AUCTUM 0x0008 // attribute "\auctum"
48 #define DESCENDENS 0x0010 // attribute "\descendens"
49 #define ASCENDENS 0x0020 // attribute "\ascendens"
50 #define ORISCUS 0x0040 // attribute "\oriscus"
51 #define QUILISMA 0x0080 // attribute "\quilisma"
52 #define DEMINUTUM 0x0100 // attribute "\deminutum"
53 #define CAVUM 0x0200 // attribute "\cavum"
54 #define LINEA 0x0400 // attribute "\linea"
55 #define PES_OR_FLEXA 0x0800 // operator "\~"
56
57 /*
58  * Ligature context info: these attributes are derived from the head
59  * prefixes by considering the current and the two neighbouring heads.
60  *
61  * These definitions may be extended by more specific Gregorian
62  * ligatures such as vaticana-ligature.hh.
63  */
64 #define PES_LOWER 0x0001 // this is a head before "\~" in an ascending melody
65 #define PES_UPPER 0x0002 // this is a head after "\~" in an ascending melody
66 #define FLEXA_LEFT 0x0004 // this is a head before "\~" in a descending melody
67 #define FLEXA_RIGHT 0x0008 // this is a head after "\~" in a descending melody
68 #define AFTER_DEMINUTUM 0x0020 // previous head was a deminutum
69
70 #endif /* GREGORIAN_LIGATURE_HH */