23 #define VRV_UNSET MEI_UNSET
27 #define _USE_MATH_DEFINES
32 #define M_PI (3.14159265358979323846264338327950288)
41 #define VERSION_MAJOR 6
42 #define VERSION_MINOR 4
43 #define VERSION_REVISION 0
45 #define VERSION_DEV true
51 #define VRV_RESOURCE_DIR RESOURCE_DIR
53 #define VRV_RESOURCE_DIR "/usr/local/share/verovio"
61 #ifdef VRV_DYNAMIC_CAST
63 #define vrv_cast dynamic_cast
65 #define vrv_cast static_cast
72 #define MIDI_VELOCITY 90
73 #define MIDI_TEMPO 120
75 #define UNACC_GRACENOTE_DUR 27
76 #define UNACC_GRACENOTE_FRACTION Fraction(1, 2048)
89 enum ClassId : uint16_t {
95 FLOATING_CURVE_POSITIONER,
154 EDITORIAL_ELEMENT_max,
163 TEXT_LAYOUT_ELEMENT_max,
169 SCORE_OR_PART_ELEMENT,
172 SCORE_OR_PART_ELEMENT_max,
176 SYSTEM_MILESTONE_END,
279 SCOREDEF_ELEMENT_max,
293 CUSTOM_DEVICE_CONTEXT,
314 INTERFACE_OFFSET_SPANNING,
320 INTERFACE_TIME_POINT,
321 INTERFACE_TIME_SPANNING
330 class ClassIdComparison;
331 class BeamElementCoord;
334 class CurveSpannedElement;
336 class FloatingPositioner;
337 class FloatingCurvePositioner;
339 class InterfaceComparison;
342 class LinkingInterface;
348 class PlistInterface;
353 class TimePointInterface;
354 class TimeSpanningInterface;
356 typedef std::vector<Object *> ArrayOfObjects;
358 typedef std::vector<const Object *> ArrayOfConstObjects;
360 typedef std::list<Object *> ListOfObjects;
362 typedef std::list<const Object *> ListOfConstObjects;
364 typedef std::set<Object *> SetOfObjects;
366 typedef std::set<const Object *> SetOfConstObjects;
368 typedef std::set<const Object *> SetOfConstObjects;
370 typedef std::vector<Note *> ChordNoteGroup;
372 typedef std::vector<std::tuple<Alignment *, Alignment *, int>> ArrayOfAdjustmentTuples;
374 typedef std::vector<std::tuple<Alignment *, Arpeg *, int, bool>> ArrayOfAlignmentArpegTuples;
376 typedef std::vector<BeamElementCoord *> ArrayOfBeamElementCoords;
378 typedef std::vector<std::pair<int, int>> ArrayOfIntPairs;
380 typedef std::multimap<std::string, LinkingInterface *> MapOfLinkingInterfaceIDPairs;
382 typedef std::map<std::string, Note *> MapOfNoteIDPairs;
384 typedef std::vector<std::pair<Object *, std::string>> ArrayOfPlistObjectIDPairs;
386 typedef std::vector<CurveSpannedElement *> ArrayOfCurveSpannedElements;
388 typedef std::list<std::pair<Object *, data_MEASUREBEAT>> ListOfObjectBeatPairs;
390 typedef std::list<std::pair<const Object *, std::string>> ListOfObjectAttNamePairs;
392 typedef std::list<std::pair<TimePointInterface *, ClassId>> ListOfPointingInterClassIdPairs;
394 typedef std::list<std::pair<TimeSpanningInterface *, ClassId>> ListOfSpanningInterClassIdPairs;
396 typedef std::list<std::pair<TimeSpanningInterface *, Object *>> ListOfSpanningInterOwnerPairs;
398 typedef std::vector<FloatingPositioner *> ArrayOfFloatingPositioners;
400 typedef std::vector<FloatingCurvePositioner *> ArrayOfFloatingCurvePositioners;
402 typedef std::vector<BoundingBox *> ArrayOfBoundingBoxes;
404 typedef std::vector<LedgerLine> ArrayOfLedgerLines;
406 typedef std::vector<TextElement *> ArrayOfTextElements;
408 typedef std::map<const Staff *, std::multiset<int>> MapOfNoteLocs;
410 typedef std::map<const Staff *, std::set<int>> MapOfDotLocs;
412 typedef std::map<std::string, Option *> MapOfStrOptions;
414 typedef std::map<int, data_ACCIDENTAL_WRITTEN> MapOfOctavedPitchAccid;
416 typedef std::map<int, GraceAligner *> MapOfIntGraceAligners;
418 typedef std::vector<std::pair<std::u32string, bool>> ArrayOfStringDynamTypePairs;
420 typedef std::map<ClassId, std::function<Object *(void)>> MapOfClassIdConstructors;
422 typedef std::map<std::string, ClassId> MapOfStrClassIds;
424 typedef std::vector<std::pair<LayerElement *, LayerElement *>> MeasureTieEndpoints;
426 typedef bool (*NotePredicate)(
const Note *);
428 typedef std::vector<std::pair<LayerElement *, data_DURATION>> ArrayOfElementDurPairs;
430 typedef std::map<int, std::list<int>> MapOfOssiaStaffNs;
442 std::map<int, IntTree> child;
445 typedef std::map<int, IntTree> IntTree_t;
453 typedef std::map<int, bool> VerseN_t;
454 typedef std::map<int, VerseN_t> LayerN_VerserN_t;
455 typedef std::map<int, LayerN_VerserN_t> StaffN_LayerN_VerseN_t;
461 #define DEFINITION_FACTOR 10
463 #define DEFAULT_UNIT 9.0
465 #define isIn(x, a, b) (((x) >= std::min((a), (b))) && ((x) <= std::max((a), (b))))
473 enum FunctorCode { FUNCTOR_CONTINUE = 0, FUNCTOR_SIBLINGS, FUNCTOR_STOP };
482 #define MAX_ACCID_DEPTH -1
485 #define MAX_BEAM_DEPTH -1
488 #define MAX_CHORD_DEPTH -1
491 #define MAX_FTREM_DEPTH -1
494 #define MAX_LIGATURE_DEPTH -1
497 #define MAX_TABGRP_DEPTH -1
500 #define MAX_TUPLET_DEPTH -1
503 #define MAX_STAFFGRP_DEPTH -1
506 #define MAX_NOTE_DEPTH -1
512 #define OSSIA_N_OFFSET 1000000
518 #define UNICODE_FLAT U'\u266D'
519 #define UNICODE_NATURAL U'\u266E'
520 #define UNICODE_SHARP U'\u266F'
522 #define UNICODE_UNDERTIE U'\u203F'
524 #define UNICODE_DAL_SEGNO U'\U0001D109'
525 #define UNICODE_DA_CAPO U'\U0001D10A'
526 #define UNICODE_SEGNO U'\U0001D10B'
527 #define UNICODE_CODA U'\U0001D10C'
529 #define UNICODE_DOUBLE_FLAT U'\U0001D12B'
530 #define UNICODE_DOUBLE_SHARP U'\U0001D12A'
544 #define VRV_TEXT_HARM \
545 U"\u266D\u266E\u266F" \
546 U"\uE260\uE261\uE262\uE263\uE264" \
547 U"\uEA50\uEA51\uEA52\uEA53\uEA54\uEA55\uEA56\uEA57\uEA58\uEA59\uEA5A\uEA5B\uEA5C\uEA5D\uEA5E" \
548 U"\uEA5F\uEA60\uEA61\uEA62\uEA63\uEA64\uEA65\uEA66\uEA67" \
555 #define LINEWIDTHTERM_factor_narrow 1.0
556 #define LINEWIDTHTERM_factor_medium 2.0
557 #define LINEWIDTHTERM_factor_wide 4.0
564 enum EditorialLevel {
565 EDITORIAL_UNDEFINED = 0,
583 enum VisibilityType { Hidden = 0, Visible };
589 enum SMuFLGlyphAnchor {
590 SMUFL_stemDownNW = 0,
602 enum { SPANNING_START_END = 0, SPANNING_START, SPANNING_END, SPANNING_MIDDLE };
613 enum ElementScoreDefRole {
616 SCOREDEF_INTERMEDIATE,
625 enum ScoreDefDrawingLabels { DRAWING_LABEL_FULL = 0, DRAWING_LABEL_ABBR, DRAWING_LABEL_NONE };
631 enum ArticType { ARTIC_INSIDE = 0, ARTIC_OUTSIDE };
637 enum VisibilityOptimization { OPTIMIZATION_NONE = 0, OPTIMIZATION_HIDDEN, OPTIMIZATION_SHOW };
660 LIGATURE_DEFAULT = 0,
661 LIGATURE_STEM_LEFT_UP = 1,
662 LIGATURE_STEM_LEFT_DOWN = 2,
663 LIGATURE_STEM_RIGHT_UP = 4,
664 LIGATURE_STEM_RIGHT_DOWN = 8,
665 LIGATURE_OBLIQUE = 16,
666 LIGATURE_STACKED = 32
675 MARKUP_ANALYTICAL_TIE = 1,
676 MARKUP_ANALYTICAL_FERMATA = 2,
677 MARKUP_GRACE_ATTRIBUTE = 4,
678 MARKUP_ARTIC_MULTIVAL = 8,
679 MARKUP_SCOREDEF_DEFINITIONS = 16
686 enum LayoutInformation { LAYOUT_NONE = 0, LAYOUT_ENCODED, LAYOUT_DONE };
692 enum Accessor { SELF = 0, CONTENT };
698 enum { KEY_LEFT = 37, KEY_UP = 38, KEY_RIGHT = 39, KEY_DOWN = 40, KEY_DOT = 46 };
704 enum StemSameasDrawingRole { SAMEAS_NONE = 0, SAMEAS_UNSET, SAMEAS_PRIMARY, SAMEAS_SECONDARY };
710 enum SmuflTextFont { SMUFL_NONE = 0, SMUFL_FONT_SELECTED, SMUFL_FONT_FALLBACK };
716 enum GraphicID { PRIMARY = 0, SPANNING, SYMBOLREF };
722 enum MeasureType { MEASURED = 0, UNMEASURED, NEUMELINE };
728 enum FocusStatusType { FOCUS_UNSET = 0, FOCUS_SET, FOCUS_USED };
734 enum MensuralCastOffType { MENSURAL_CAST_OFF_INIT = 0, MENSURAL_CAST_OFF_UNSET, MENSURAL_CAST_OFF_RESET };
740 #define SCORE_TIME_UNIT 4
746 #define NEUME_LINE_TYPE "neon-neume-line"
752 #define CSS_SHOW_HIDDEN "show-hidden"
758 #define OCTAVE_OFFSET 4
761 #define STANDARD_STEMLENGTH 7
762 #define STANDARD_STEMLENGTH_TAB 3
768 #define TABLATURE_STAFF_RATIO 1.75
769 #define GERMAN_TAB_STAFF_RATIO 2.2
771 #define SUPER_SCRIPT_FACTOR 0.58
772 #define SUPER_SCRIPT_POSITION -0.20
773 #define SUB_SCRIPT_POSITION -0.17
779 #define NOTE_HEIGHT_TO_STAFF_SIZE_RATIO 2
780 #define NOTE_WIDTH_TO_STAFF_SIZE_RATIO 1.4
Generic int map recursive structure for storing hierachy of values For example, we want to process al...
Definition: vrvdef.h:441