X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=lily%2Finclude%2Fmensural-ligature.hh;h=97b8e2e21682a5eecd7863e28537a987d91609dd;hb=47db9a3883d726ca53e2133a3b2298f78dd6a32e;hp=245845cf00efa994e8cdfb92633c054e2293e9d2;hpb=7e72a1e50e94a7f9738d62599de79fe7745f600c;p=lilypond.git diff --git a/lily/include/mensural-ligature.hh b/lily/include/mensural-ligature.hh index 245845cf00..97b8e2e216 100644 --- a/lily/include/mensural-ligature.hh +++ b/lily/include/mensural-ligature.hh @@ -1,40 +1,51 @@ /* - mensural-ligature.hh -- part of GNU LilyPond + This file is part of LilyPond, the GNU music typesetter. - source file of the GNU LilyPond music typesetter - - (c) 2002--2004 Juergen Reuter + Copyright (C) 2002--2015 Juergen Reuter , + Pal Benko + + LilyPond is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + LilyPond is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with LilyPond. If not, see . */ #ifndef MENSURAL_LIGATURE_HH #define MENSURAL_LIGATURE_HH #include "lily-proto.hh" -#include "lily-guile.hh" +#include "grob-interface.hh" /* * These are all possible mensural ligature primitives. */ -#define MLP_BB 0x01 // flexa with left downward cauda (for Brevis-Brevis) -#define MLP_sc 0x02 // last head of asc. sine proprietate cum perfectione - // (i.e. brevis head with downward right cauda) -#define MLP_ss 0x04 // last head of asc. sine proprietate sine perfectione - // (i.e. pure brevis head) -#define MLP_cs 0x08 // last head of asc. cum proprietate sine perfectione - // (i.e. brevis head with downward left cauda) -#define MLP_SS 0x10 // flexa with left upward cauda (for Semibr.-Semibr.) -#define MLP_LB 0x20 // core flexa (for Longa-Brevis) - -#define MLP_NONE 0x00 // no output -#define MLP_SINGLE_HEAD (MLP_sc | MLP_ss | MLP_cs) -#define MLP_FLEXA (MLP_BB | MLP_SS | MLP_LB) -#define MLP_ANY (MLP_FLEXA | MLP_SINGLE_HEAD) +#define MLP_NONE 0x00 // no output +#define MLP_UP 0x01 // upward left stem +#define MLP_DOWN 0x02 // downward left stem +#define MLP_BREVIS 0x04 // mensural brevis head +#define MLP_LONGA 0x08 // mensural brevis head with right cauda +#define MLP_MAXIMA 0x10 // mensural maxima head without stem +#define MLP_FLEXA_BEGIN 0x20 // start of obliqua +#define MLP_FLEXA_END 0x40 // end of obliqua + +#define MLP_STEM (MLP_UP | MLP_DOWN) +#define MLP_SINGLE_HEAD (MLP_BREVIS | MLP_LONGA | MLP_MAXIMA) +#define MLP_FLEXA (MLP_FLEXA_BEGIN | MLP_FLEXA_END) +#define MLP_ANY (MLP_FLEXA | MLP_SINGLE_HEAD) struct Mensural_ligature { - DECLARE_SCHEME_CALLBACK (brew_ligature_primitive, (SCM )); - DECLARE_SCHEME_CALLBACK (brew_molecule, (SCM )); - static bool has_interface (Grob*); + DECLARE_SCHEME_CALLBACK (brew_ligature_primitive, (SCM)); + DECLARE_SCHEME_CALLBACK (print, (SCM)); + DECLARE_GROB_INTERFACE (); }; #endif /* MENSURAL_LIGATURE_HH */