]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/mensural-ligature.hh
* lily/mensural-ligature-engraver.cc:
[lilypond.git] / lily / include / mensural-ligature.hh
1 /*
2   mensural-ligature.hh -- part of GNU LilyPond
3
4   source file of the GNU LilyPond music typesetter
5   
6   (c) 2002--2005 Juergen Reuter <reuter@ipd.uka.de>,
7                  Pal Benko <benkop@freestart.hu>
8 */
9
10 #ifndef MENSURAL_LIGATURE_HH
11 #define MENSURAL_LIGATURE_HH
12
13 #include "lily-proto.hh"
14 #include "lily-guile.hh"
15
16 /*
17  * These are all possible mensural ligature primitives.
18  */
19
20 #define MLP_NONE        0x00 // no output
21 #define MLP_UP          0x01 // ligatura ascendens
22 #define MLP_DOWN        0x02 // ligatura descendens
23 #define MLP_BREVIS      0x04 // mensural brevis head
24 #define MLP_LONGA       0x08 // mensural brevis head with right cauda
25 #define MLP_MAXIMA      0x10 // mensural maxima head without stem
26 #define MLP_FLEXA       0x20
27
28 #define MLP_STEM        (MLP_UP | MLP_DOWN)
29 #define MLP_SINGLE_HEAD (MLP_BREVIS | MLP_LONGA | MLP_MAXIMA)
30 #define MLP_ANY         (MLP_FLEXA | MLP_SINGLE_HEAD)
31
32 struct Mensural_ligature
33 {
34   DECLARE_SCHEME_CALLBACK (brew_ligature_primitive, (SCM ));
35   DECLARE_SCHEME_CALLBACK (print, (SCM ));
36   static bool has_interface (Grob*);
37 };
38
39 #endif /* MENSURAL_LIGATURE_HH */