LibMusicXML 3.18
msrStanzas_MUT_DEP.h
1/*
2 This file is to be included only by msrMutualDependencies.h,
3 to satisfy declarations mutual dependencies.
4*/
5
6//______________________________________________________________________________
7class msrStanza : public msrElement
8{
9 public:
10
11 // constants
12 // ------------------------------------------------------
13
14 #define K_NO_STANZA_NUMBER "-1"
15 #define K_NO_STANZA_NAME "Unknown stanza"
16
17 // creation from MusicXML
18 // ------------------------------------------------------
19
20 static SMARTP<msrStanza> create (
21 int inputLineNumber,
22 string stanzaNumber,
23 S_msrVoice stanzaVoiceUpLink);
24
25 SMARTP<msrStanza> createStanzaNewbornClone (
26 S_msrVoice containingVoice);
27
28 SMARTP<msrStanza> createStanzaDeepCopy (
29 S_msrVoice containingVoice);
30
31 protected:
32
33 // constructors/destructor
34 // ------------------------------------------------------
35
36 msrStanza (
37 int inputLineNumber,
38 string stanzaNumber,
39 S_msrVoice stanzaVoiceUpLink);
40
41 public:
42
43 virtual ~msrStanza ();
44
45 private:
46
47 // initialization
48 // ------------------------------------------------------
49
50 void initializeStanza ();
51
52 public:
53
54 // set and get
55 // ------------------------------------------------------
56
57 // number
58 string getStanzaNumber () const
59 { return fStanzaNumber; }
60
61 // name
62 string getStanzaName () const
63 { return fStanzaName; }
64
65 // contents
66 const vector<S_msrSyllable>&
67 getSyllables () const
68 { return fSyllables; }
69
70 void setStanzaTextPresent ()
71 { fStanzaTextPresent = true; }
72
73 bool getStanzaTextPresent () const
74 { return fStanzaTextPresent; }
75
76 // upLinks
77 S_msrVoice getStanzaVoiceUpLink () const
78 { return fStanzaVoiceUpLink; }
79
80 // services
81 // ------------------------------------------------------
82
83 void appendSyllableToStanza (
84 S_msrSyllable syllable);
85
86 S_msrSyllable appendRestSyllableToStanza (
87 int inputLineNumber,
88 rational wholeNotes);
89
90 S_msrSyllable appendSkipSyllableToStanza (
91 int inputLineNumber,
92 rational wholeNotes);
93
94 S_msrSyllable appendMeasureEndSyllableToStanza (
95 int inputLineNumber);
96
97 S_msrSyllable appendMelismaSyllableToStanza (
98 int inputLineNumber,
99 msrSyllable::msrSyllableKind
100 syllableKind,
101 rational wholeNote);
102
103/* JMI
104 S_msrSyllable appendTiedSyllableToStanza (
105 int inputLineNumber,
106 rational wholeNotes);
107
108 S_msrSyllable appendSlurSyllableToStanza (
109 int inputLineNumber,
110 rational wholeNotes);
111
112 S_msrSyllable appendSlurBeyondEndSyllableToStanza (
113 int inputLineNumber,
114 rational wholeNotes);
115
116 S_msrSyllable appendLigatureSyllableToStanza (
117 int inputLineNumber,
118 rational wholeNotes);
119
120 S_msrSyllable appendLigatureBeyondEndSyllableToStanza (
121 int inputLineNumber,
122 rational wholeNotes);
123
124 S_msrSyllable appendBarNumberCheckSyllableToStanza (
125 int inputLineNumber,
126 string nextMeasureNumber);
127
128 S_msrSyllable appendBarcheckSyllableToStanza (
129 int inputLineNumber,
130 string nextMeasureNumber);
131*/
132
133 S_msrSyllable appendLineBreakSyllableToStanza (
134 int inputLineNumber,
135 int nextMeasurePuristNumber);
136
137 S_msrSyllable appendPageBreakSyllableToStanza (
138 int inputLineNumber,
139 int nextMeasurePuristNumber);
140
141 void padUpToCurrentMeasureWholeNotesDurationInStanza ( // JMI
142 int inputLineNumber,
143 rational wholeNotes);
144
145 void appendPaddingNoteToStanza (
146 int inputLineNumber,
147 rational forwardStepLength);
148
149 public:
150
151 // visitors
152 // ------------------------------------------------------
153
154 virtual void acceptIn (basevisitor* v);
155 virtual void acceptOut (basevisitor* v);
156
157 virtual void browseData (basevisitor* v);
158
159 public:
160
161 // print
162 // ------------------------------------------------------
163
164 virtual void print (ostream& os) const;
165
166 private:
167
168 // fields
169 // ------------------------------------------------------
170
171 // upLinks
172 S_msrVoice fStanzaVoiceUpLink;
173
174 // number
175 // The lyric number indicates multiple lines,
176 // though a name can be used as well (as in Finale's verse/chorus/section specification)
177 string fStanzaNumber;
178
179 // name
180 string fStanzaName;
181
182 // contents
183 vector<S_msrSyllable> fSyllables;
184
185 bool fStanzaTextPresent;
186
187 // current measure whole notes
188 rational fStanzaCurrentMeasureWholeNotesDuration;
189};
190typedef SMARTP<msrStanza> S_msrStanza;
191EXP ostream& operator<< (ostream& os, const S_msrStanza& elt);
192
Definition: msrStanzas_MUT_DEP.h:8
Rational number representation.
Definition: rational.h:25