source file of the GNU LilyPond music typesetter
- (c) 2003 Juergen Reuter <reuter@ipd.uka.de>
+ (c) 2003--2004 Juergen Reuter <reuter@ipd.uka.de>
*/
#ifndef GREGORIAN_LIGATURE_HH
#define GREGORIAN_LIGATURE_HH
+class Gregorian_ligature {
+public:
+ static bool has_interface (Grob *);
+ static String prefixes_to_str (Grob *);
+};
+
/*
* Head prefixes: these bit-mask constants are used to represent
* attributes immediately derived from user input (e.g. by the user
* setting a gregorian ligature grob property or using the "\~"
* keyword). If the according bit of the head prefix value is set,
* the attribute applies for this head. The binary opereator "\~" is
- * marked only upon the second head (i.e. the note that comes after
- * the operator).
+ * treated like a prefix for the head that follows the operator, but
+ * does not affect the head that precedes the operator, if any.
*/
#define VIRGA 0x0001 // attribute "\virga"
#define STROPHA 0x0002 // attribute "\stropha"
#define ORISCUS 0x0040 // attribute "\oriscus"
#define QUILISMA 0x0080 // attribute "\quilisma"
#define DEMINUTUM 0x0100 // attribute "\deminutum"
-#define SEMIVOCALIS 0x0100 // attribute "\semivocalis"
#define CAVUM 0x0200 // attribute "\cavum"
#define LINEA 0x0400 // attribute "\linea"
#define PES_OR_FLEXA 0x0800 // operator "\~"
/*
* Ligature context info: these attributes are derived from the head
- * prefixes by considering the current and the following head.
+ * prefixes by considering the current and the two neighbouring heads.
+ *
+ * These definitions may be extended by more specific Gregorian
+ * ligatures such as vaticana-ligature.hh.
*/
-#define PES_LOWER 0x0001 // this is a head before "\~" in an ascending melody
-#define PES_UPPER 0x0002 // this is a head after "\~" in an ascending melody
-#define FLEXA_LEFT 0x0004 // this is a head before "\~" in a descending melody
-#define FLEXA_RIGHT 0x0008 // this is a head after "\~" in a descending melody
+#define PES_LOWER 0x0001 // this is a head before "\~" in an
+ // ascending melody
+#define PES_UPPER 0x0002 // this is a head after "\~" in an
+ // ascending melody
+#define FLEXA_LEFT 0x0004 // this is a head before "\~" in a
+ // descending melody
+#define FLEXA_RIGHT 0x0008 // this is a head after "\~" in a
+ // descending melody
+#define AFTER_DEMINUTUM 0x0020 // previous head was a deminutum
#endif /* GREGORIAN_LIGATURE_HH */