MUSX Document Model
Loading...
Searching...
No Matches
EnumClasses.h
1/*
2 * Copyright (C) 2025, Robert Patterson
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining a copy
5 * of this software and associated documentation files (the "Software"), to deal
6 * in the Software without restriction, including without limitation the rights
7 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
8 * copies of the Software, and to permit persons to whom the Software is
9 * furnished to do so, subject to the following conditions:
10 *
11 * The above copyright notice and this permission notice shall be included in
12 * all copies or substantial portions of the Software.
13 *
14 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
15 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
16 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
17 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
18 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
20 * THE SOFTWARE.
21 */
22#pragma once
23
24namespace musx {
25namespace dom {
26
29enum class AlignJustify
30{
31 Left,
32 Right,
33 Center
34};
35
51enum class ArrowheadPreset : int
52{
53 SmallFilled = 1,
54 SmallOutline = 2,
55 SmallCurved = 3,
56 LargeCurved = 4,
57 MediumCurved = 5
58};
59
62{
63 // NOTE: the order here is important for sorting instances. Do not change it.
65 Down,
66 Up
67};
68
71enum class DateFormat : int
72{
73 Short = 0,
74 Long = 1,
75 Abbrev = 2
76};
77
84{
85 Treble = 0,
86 Alto = 1,
87 Tenor = 2,
88 Bass = 3,
89 Percussion = 4,
90 Treble8vb = 5,
91 Bass8vb = 6,
92 Baritone = 7,
93 FrenchViolin = 8,
94 BaritoneC = 9,
95 MezzoSoprano = 10,
96 Soprano = 11,
97 AltPercussion = 12,
98 Treble8va = 13,
99 Bass8va = 14,
100 Blank = 15,
101 Tab1 = 16,
102 Tab2 = 17
103};
104
108{
109 None,
110 Respell,
111 NoRespell
112};
113
119{
120 Verse,
121 Chorus,
122 Section,
123};
124
127enum class MatchVoice
128{
129 Any,
130 Voice1,
131 Voice2
132};
133
140enum class NoteType : Edu
141{
142 Maxima = 0x8000,
143 Longa = 0x4000,
144 Breve = 0x2000,
145 Whole = EDU_PER_WHOLE_NOTE,
146 Half = 0x0800,
147 Quarter = 0x0400,
148 Eighth = 0x0200,
149 Note16th = 0x0100,
150 Note32nd = 0x0080,
151 Note64th = 0x0040,
152 Note128th = 0x0020,
153 Note256th = 0x0010,
154 Note512th = 0x0008,
155 Note1024th = 0x0004,
156 Note2048th = 0x0002,
157 Note4096th = 0x0001
158};
159
164enum class ShowClefMode
165{
166 WhenNeeded,
167 Never,
168 Always
169};
170
176{
177 OverStartPosInner,
178 OverEndPosInner,
179 UnderStartPosInner,
180 UnderEndPosInner,
181 OverHighestNoteStartPosOver,
182 OverHighestNoteEndPosOver,
183 UnderLowestNoteStartPosUnder,
184 UnderLowestNoteEndPosUnder,
185 OverHighestNoteStemStartPosOver,
186 OverHighestNoteStemEndPosOver,
187 UnderLowestNoteStemStartPosUnder,
188 UnderLowestNoteStemEndPosUnder
189};
190
191} // namespace dom
192} // namespace musx
ShowClefMode
Enum representing the clef display mode for a frame.
Definition EnumClasses.h:165
@ WhenNeeded
Clef is displayed only when needed (the default).
@ Always
Clef is always displayed. (xml value is "forced")
@ Never
Clef is never displayed. (xml value is "hidden")
CurveContourDirection
Curve contour direction for ties and slurs.
Definition EnumClasses.h:62
@ Down
contour is curved downward (tips face up)
@ Up
contour is curved upward (tips face down)
@ Unspecified
contour is automatic, indeterminate, or does not apply
LyricTextType
The lyric text type if this is a lyrics smart shape.
Definition EnumClasses.h:119
@ Verse
The assignment is to a Verse lyrics text block.
@ Chorus
The assignment is to a Chorus lyrics text block.
@ Section
The assignment is to a Section lyrics text block.
MatchVoice
Specifies which voice(s) are considered when matching entries.
Definition EnumClasses.h:128
@ Voice2
Consider only entries where Entry::voice2 is true.
@ Any
Consider entries from either voice. (Default)
@ Voice1
Consider only entries where Entry::voice2 is false.
NoteType
Enum class representing note types based on EDU values.
Definition EnumClasses.h:141
EnharmonicOverride
Provides a three-state override option for enharmonic respelling.
Definition EnumClasses.h:108
@ NoRespell
Do not apply enharmonic respelling, even if already respelled.
@ None
Do not override the existing enharmonic state. (Default)
@ Respell
Apply enharmonic respelling.
TieConnectStyleType
Enumeration for tie connect style types.
Definition EnumClasses.h:176
DateFormat
Date format options. This value is coded into the Enigma date insert when the page title is created.
Definition EnumClasses.h:72
@ Short
Short date format, based on locale. US format is MM/DD/YY (Default value may not appear in the xml)
@ Long
Long date format, based on locale. US format is Month DD, YYYY.
@ Abbrev
Abbreviated date format, based on locale. US format is Mon DD, YYYY.
DefaultClefType
Clef types used by default in Finale documents. The values correspond to indices into musx::dom::opti...
Definition EnumClasses.h:84
@ Bass8vb
F clef, sounds one octave lower (8vb).
@ Alto
C clef, centered on third line (Alto clef).
@ BaritoneC
C clef on fifth line (Baritone clef).
@ Tab1
Tablature clef (5 lines).
@ Treble
G clef, standard treble.
@ FrenchViolin
G clef placed on first line (French violin clef).
@ Treble8va
G clef, sounds one octave higher (8va).
@ Bass8va
F clef, sounds one octave higher (8va).
@ AltPercussion
Alternate percussion clef, heavy vertical hash marks (no pitch).
@ Soprano
C clef on first line (Soprano clef).
@ Bass
F clef, standard bass.
@ Percussion
Percussion clef, open rectangle (no pitch).
@ Baritone
F clef on third line (Baritone clef).
@ Tab2
Tablature clef (5 lines, alternative style).
@ Treble8vb
G clef, sounds one octave lower (8vb).
@ Blank
Blank clef (invisible, no symbol).
@ MezzoSoprano
C clef on second line (Mezzo-soprano clef).
@ Tenor
C clef, centered on fourth line (Tenor clef).
uint16_t ClefIndex
Index into options::ClefOptions::clefDefs.
Definition Fundamentals.h:68
int32_t Edu
"Enigma Durational Units" value (1024 per quarter note)
Definition Fundamentals.h:61
ArrowheadPreset
Finale-defined arrowhead presets.
Definition EnumClasses.h:52
@ LargeCurved
Large curved-back arrowhead preset (≈4 staff spaces tall).
@ SmallCurved
Small curved-back arrowhead preset (≈1 staff space tall).
@ SmallOutline
Small outlined arrowhead preset (≈1 staff space tall).
@ SmallFilled
Small filled arrowhead preset (≈1 staff space tall).
@ MediumCurved
Medium curved-back arrowhead preset (≈2.5 staff spaces tall).
constexpr Edu EDU_PER_WHOLE_NOTE
Number of Edu units per whole note.
Definition Fundamentals.h:90
AlignJustify
Alignment and justification options for staff and group names.
Definition EnumClasses.h:30
@ Center
Center alignment.
@ Right
Right alignment.
@ Left
Left alignment or justification (the default value.)
object model for musx file (enigmaxml)
Definition BaseClasses.h:36