LibMusicXML 3.18
msrFiguredBasses_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 msrFigure : public msrElement
8{
9 public:
10
11 // data types
12 // ------------------------------------------------------
13
14 enum msrFigurePrefixKind {
15 k_NoFigurePrefix,
16 kDoubleFlatPrefix, kFlatPrefix, kFlatFlatPrefix,
17 kNaturalPrefix,
18 kSharpSharpPrefix, kSharpPrefix, kDoubleSharpPrefix };
19
20 static string figurePrefixKindAsString (
21 msrFigurePrefixKind figurePrefixKind);
22
23 enum msrFigureSuffixKind {
24 k_NoFigureSuffix,
25 kDoubleFlatSuffix, kFlatSuffix, kFlatFlatSuffix,
26 kNaturalSuffix,
27 kSharpSharpSuffix, kSharpSuffix, kDoubleSharpSuffix,
28 kSlashSuffix };
29
30 static string figureSuffixKindAsString (
31 msrFigureSuffixKind figureSuffixKind);
32
33 // creation from MusicXML
34 // ------------------------------------------------------
35
36 static SMARTP<msrFigure> create (
37 int inputLineNumber,
38 S_msrPart figurePartUpLink,
39 msrFigurePrefixKind figurePrefixKind,
40 int figureNumber,
41 msrFigureSuffixKind figureSuffixKind);
42
43 SMARTP<msrFigure> createFigureNewbornClone (
44 S_msrPart containingPart);
45
46 SMARTP<msrFigure> createFigureDeepCopy ( // JMI ???
47 S_msrPart containingPart);
48
49 protected:
50
51 // constructors/destructor
52 // ------------------------------------------------------
53
54 msrFigure (
55 int inputLineNumber,
56 S_msrPart figurePartUpLink,
57 msrFigurePrefixKind figurePrefixKind,
58 int figureNumber,
59 msrFigureSuffixKind figureSuffixKind);
60
61 virtual ~msrFigure ();
62
63 public:
64
65 // set and get
66 // ------------------------------------------------------
67
68 S_msrPart getFigurePartUpLink () const
69 { return fFigurePartUpLink; }
70
71 msrFigurePrefixKind
72 getFigurePrefixKind () const
73 { return fFigurePrefixKind; }
74
75 int getFigureNumber () const
76 { return fFigureNumber; }
77
78 msrFigureSuffixKind
79 getFigureSuffixKind () const
80 { return fFigureSuffixKind; }
81
82 // services
83 // ------------------------------------------------------
84
85 public:
86
87 // visitors
88 // ------------------------------------------------------
89
90 virtual void acceptIn (basevisitor* v);
91 virtual void acceptOut (basevisitor* v);
92
93 virtual void browseData (basevisitor* v);
94
95 public:
96
97 // print
98 // ------------------------------------------------------
99
100 string figurePrefixKindAsString () const;
101 string figureSuffixKindAsShortString () const;
102
103 string asString () const;
104
105 virtual void print (ostream& os) const;
106
107 private:
108
109 // fields
110 // ------------------------------------------------------
111
112 // upLinks
113 S_msrPart fFigurePartUpLink;
114
115 msrFigurePrefixKind
116 fFigurePrefixKind;
117 int fFigureNumber;
118 msrFigureSuffixKind
119 fFigureSuffixKind;
120};
121typedef SMARTP<msrFigure> S_msrFigure;
122EXP ostream& operator<< (ostream& os, const S_msrFigure& elt);
123
124//______________________________________________________________________________
125class msrFiguredBass : public msrMeasureElement
126{
127 public:
128
129 // data types
130 // ------------------------------------------------------
131
132 enum msrFiguredBassParenthesesKind {
133 kFiguredBassParenthesesYes, kFiguredBassParenthesesNo };
134
135 static string figuredBassParenthesesKindAsString (
136 msrFiguredBassParenthesesKind figuredBassParenthesesKind);
137
138 // creation from MusicXML
139 // ------------------------------------------------------
140
141 static SMARTP<msrFiguredBass> create (
142 int inputLineNumber); // JMI ???
143
144 static SMARTP<msrFiguredBass> create (
145 int inputLineNumber,
146 // S_msrPart figuredBassPartUpLink,
147 rational figuredBassSoundingWholeNotes,
148 rational figuredBassDisplayWholeNotes,
149 msrFiguredBassParenthesesKind figuredBassParenthesesKind,
150 msrTupletFactor figuredBassTupletFactor);
151
152 SMARTP<msrFiguredBass> createFiguredBassNewbornClone (
153 S_msrVoice containingVoice);
154
155 SMARTP<msrFiguredBass> createFiguredBassDeepCopy (); // JMI ???
156
157 protected:
158
159 // constructors/destructor
160 // ------------------------------------------------------
161
163 int inputLineNumber,
164 // S_msrPart figuredBassPartUpLink,
165 rational figuredBassSoundingWholeNotes,
166 rational figuredBassDisplayWholeNotes,
167 msrFiguredBassParenthesesKind figuredBassParenthesesKind,
168 msrTupletFactor figuredBassTupletFactor);
169
170 virtual ~msrFiguredBass ();
171
172 public:
173
174 // set and get
175 // ------------------------------------------------------
176 void setFiguredBassNoteUpLink (
177 S_msrNote note)
178 { fFiguredBassNoteUpLink = note; }
179
180 S_msrNote getFiguredBassNoteUpLink () const
181 { return fFiguredBassNoteUpLink; }
182
183 void setFiguredBassVoiceUpLink (
184 S_msrVoice voice)
185 { fFiguredBassVoiceUpLink = voice; }
186
187 S_msrVoice getFiguredBassVoiceUpLink () const
188 { return fFiguredBassVoiceUpLink; }
189
190/* JMI
191 S_msrPart getFiguredBassPartUpLink () const
192 { return fFiguredBassPartUpLink; }
193*/
194
195 void setFiguredBassSoundingWholeNotes (
196 rational wholeNotes)
197 {
198 fMeasureElementSoundingWholeNotes =
199 wholeNotes;
200 }
201
202 rational getFiguredBassSoundingWholeNotes () const
203 { return fMeasureElementSoundingWholeNotes; }
204
205 void setFiguredBassDisplayWholeNotes (
206 rational wholeNotes)
207 { fFiguredBassDisplayWholeNotes = wholeNotes; }
208
209 rational getFiguredBassDisplayWholeNotes () const
210 { return fFiguredBassDisplayWholeNotes; }
211
212 msrFiguredBassParenthesesKind
213 getFiguredBassParenthesesKind () const
214 { return fFiguredBassParenthesesKind; }
215
216 const list<S_msrFigure>&
217 getFiguredBassFiguresList ()
218 { return fFiguredBassFiguresList; }
219
220 void setFiguredBassTupletFactor (
221 msrTupletFactor tupletFactor)
222 { fFiguredBassTupletFactor = tupletFactor; }
223
224 msrTupletFactor getFiguredBassTupletFactor () const
225 { return fFiguredBassTupletFactor; }
226
227 void setFiguredBassPositionInMeasure (
228 rational positionInMeasure);
229
230 // services
231 // ------------------------------------------------------
232
233 void appendFigureToFiguredBass (
234 S_msrFigure figure);
235
236 public:
237
238 // visitors
239 // ------------------------------------------------------
240
241 virtual void acceptIn (basevisitor* v);
242 virtual void acceptOut (basevisitor* v);
243
244 virtual void browseData (basevisitor* v);
245
246 public:
247
248 // print
249 // ------------------------------------------------------
250
251 string asString () const;
252
253 virtual void print (ostream& os) const;
254
255 private:
256
257 // fields
258 // ------------------------------------------------------
259
260 // upLinks
261 // JMI S_msrPart fFiguredBassPartUpLink;
262 S_msrNote fFiguredBassNoteUpLink;
263 S_msrVoice fFiguredBassVoiceUpLink;
264
265 rational fFiguredBassDisplayWholeNotes; // JMI useless???
266
267 msrFiguredBassParenthesesKind
268 fFiguredBassParenthesesKind;
269
270 list<S_msrFigure> fFiguredBassFiguresList;
271
272 msrTupletFactor fFiguredBassTupletFactor;
273};
274typedef SMARTP<msrFiguredBass> S_msrFiguredBass;
275EXP ostream& operator<< (ostream& os, const S_msrFiguredBass& elt);
276
Definition: msrFiguredBasses_MUT_DEP.h:8
Definition: msrFiguredBasses_MUT_DEP.h:126
Rational number representation.
Definition: rational.h:25