]> git.donarmstrong.com Git - lilypond.git/blob - lily/include/mensural-ligature.hh
cleanup. Separate into internal
[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--2004 Juergen Reuter <reuter@ipd.uka.de>
7 */
8
9 #ifndef MENSURAL_LIGATURE_HH
10 #define MENSURAL_LIGATURE_HH
11
12 #include "lily-proto.hh"
13 #include "lily-guile.hh"
14
15 /*
16  * These are all possible mensural ligature primitives.
17  */
18 #define MLP_BB    0x01 // flexa with left downward cauda (for Brevis-Brevis)
19 #define MLP_sc    0x02 // last head of asc. sine proprietate cum perfectione
20                        // (i.e. brevis head with downward right cauda)
21 #define MLP_ss    0x04 // last head of asc. sine proprietate sine perfectione
22                        // (i.e. pure brevis head)
23 #define MLP_cs    0x08 // last head of asc. cum proprietate sine perfectione
24                        // (i.e. brevis head with downward left cauda)
25 #define MLP_SS    0x10 // flexa with left upward cauda (for Semibr.-Semibr.)
26 #define MLP_LB    0x20 // core flexa (for Longa-Brevis)
27
28 #define MLP_NONE  0x00 // no output
29 #define MLP_SINGLE_HEAD (MLP_sc | MLP_ss | MLP_cs)
30 #define MLP_FLEXA       (MLP_BB | MLP_SS | MLP_LB)
31 #define MLP_ANY         (MLP_FLEXA | MLP_SINGLE_HEAD)
32
33 struct Mensural_ligature
34 {
35   DECLARE_SCHEME_CALLBACK (brew_ligature_primitive, (SCM ));
36   DECLARE_SCHEME_CALLBACK (print, (SCM ));
37   static bool has_interface (Grob*);
38 };
39
40 #endif /* MENSURAL_LIGATURE_HH */