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
38{
39 // NOTE: the order here is important for sorting instances. Do not change it.
40 Auto,
41 Down,
42 Up
43};
44
47enum class DateFormat : int
48{
49 Short = 0,
50 Long = 1,
51 Abbrev = 2
52};
53
60{
61 Treble = 0,
62 Alto = 1,
63 Tenor = 2,
64 Bass = 3,
65 Percussion = 4,
66 Treble8vb = 5,
67 Bass8vb = 6,
68 Baritone = 7,
69 FrenchViolin = 8,
70 BaritoneC = 9,
71 MezzoSoprano = 10,
72 Soprano = 11,
73 AltPercussion = 12,
74 Treble8va = 13,
75 Bass8va = 14,
76 Blank = 15,
77 Tab1 = 16,
78 Tab2 = 17
79};
80
85enum class LyricTextType
86{
87 Verse,
88 Chorus,
89 Section,
90};
91
98enum class NoteType : Edu
99{
100 Maxima = 0x8000,
101 Longa = 0x4000,
102 Breve = 0x2000,
103 Whole = EDU_PER_WHOLE_NOTE,
104 Half = 0x0800,
105 Quarter = 0x0400,
106 Eighth = 0x0200,
107 Note16th = 0x0100,
108 Note32nd = 0x0080,
109 Note64th = 0x0040,
110 Note128th = 0x0020,
111 Note256th = 0x0010,
112 Note512th = 0x0008,
113 Note1024th = 0x0004,
114 Note2048th = 0x0002,
115 Note4096th = 0x0001
116};
117
122enum class ShowClefMode
123{
124 WhenNeeded,
125 Never,
126 Always
127};
128
129} // namespace dom
130} // namespace musx
ShowClefMode
Enum representing the clef display mode for a frame.
Definition EnumClasses.h:123
@ 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:38
@ Auto
contour is automatic, indeterminate, or does not apply
@ Down
contour is curved downward (tips face up)
@ Up
contour is curved upward (tips face down)
LyricTextType
The lyric text type if this is a lyrics smart shape.
Definition EnumClasses.h:86
@ 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.
NoteType
Enum class representing note types based on EDU values.
Definition EnumClasses.h:99
DateFormat
Date format options. This value is coded into the Enigma date insert when the page title is created.
Definition EnumClasses.h:48
@ 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:60
@ 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
constexpr Edu EDU_PER_WHOLE_NOTE
Number of Edu units per whole note.
Definition Fundamentals.h:87
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