LibMusicXML 3.18
msrMeasuresRepeats_MUT_DEP.h
1/*
2 This file is to be included only by msrMutualDependencies.h,
3 to satisfy declarations mutual dependencies.
4*/
5
6//______________________________________________________________________________
7/* JMI
8class msrMeasuresRepeatElement : public msrElement
9{
10 public:
11
12 // creation from MusicXML
13 // ------------------------------------------------------
14
15 static SMARTP<msrMeasuresRepeatElement> create (
16 int inputLineNumber,
17 S_msrMeasuresRepeat measuresRepeatUpLink);
18
19 protected:
20
21 // constructors/destructor
22 // ------------------------------------------------------
23
24 msrMeasuresRepeatElement (
25 int inputLineNumber,
26 S_msrMeasuresRepeat measuresRepeatUpLink);
27
28 virtual ~msrMeasuresRepeatElement ();
29
30 public:
31
32 // set and get
33 // ------------------------------------------------------
34
35 // upLinks
36 S_msrMeasuresRepeat getMeasuresRepeatElementMeasuresRepeatUpLink () const
37 { return fMeasuresRepeatElementMeasuresRepeatUpLink; }
38
39 // elements
40 const list<S_msrVoiceElement>&
41 getMeasuresRepeatElementElementsList ()
42 { return fMeasuresRepeatElementElementsList; }
43
44 public:
45
46 // public services
47 // ------------------------------------------------------
48
49 void appendSegmentToMeasuresRepeatElementsList (
50 int inputLineNumber,
51 S_msrSegment segment,
52 string context);
53
54 void appendMeasuresRepeatToMeasuresRepeatElementsList (
55 int inputLineNumber,
56 S_msrMeasuresRepeat measuresRepeat,
57 string context);
58
59
60 void appendRestMeasuresToMeasuresRepeatElementsList (
61 int inputLineNumber,
62 S_msrMeasuresRepeat measuresRepeat,
63 string context);
64
65 S_msrNote fetchMeasuresRepeatElementFirstNonGraceNote () const;
66
67 void collectMeasuresRepeatElementMeasuresIntoFlatList (
68 int inputLineNumber);
69
70 private:
71
72 // private services
73 // ------------------------------------------------------
74
75 void appendVoiceElementToMeasuresRepeatElementsList ( // JMI
76 int inputLineNumber,
77 S_msrVoiceElement voiceElement,
78 string context);
79
80 public:
81
82 // visitors
83 // ------------------------------------------------------
84
85 virtual void acceptIn (basevisitor* v);
86 virtual void acceptOut (basevisitor* v);
87
88 virtual void browseData (basevisitor* v);
89
90 public:
91
92 // print
93 // ------------------------------------------------------
94
95 string asString () const;
96
97 virtual void print (ostream& os) const;
98
99 virtual void shortPrint (ostream& os) const;
100
101 private:
102
103 // fields
104 // ------------------------------------------------------
105
106 // upLinks
107 S_msrMeasuresRepeat fMeasuresRepeatElementMeasuresRepeatUpLink;
108
109 // elements list
110 list<S_msrVoiceElement>
111 fMeasuresRepeatElementElementsList;
112};
113typedef SMARTP<msrMeasuresRepeatElement> S_msrMeasuresRepeatElement;
114EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeatElement& elt);
115*/
116
117//______________________________________________________________________________
118class msrMeasuresRepeatPattern : public msrElement
119{
120 public:
121
122 // creation from MusicXML
123 // ------------------------------------------------------
124
125 static SMARTP<msrMeasuresRepeatPattern> create (
126 int inputLineNumber,
127 S_msrMeasuresRepeat measuresRepeatUpLink);
128
129 /* JMI
130 SMARTP<msrMeasuresRepeatPattern> createMeasuresRepeatPatternNewbornClone (
131 S_msrVoice containingVoice);
132
133 SMARTP<msrMeasuresRepeatPattern> createMeasuresRepeatPatternDeepCopy (
134 S_msrVoice containingVoice);
135*/
136
137 protected:
138
139 // constructors/destructor
140 // ------------------------------------------------------
141
143 int inputLineNumber,
144 S_msrMeasuresRepeat measuresRepeatUpLink);
145
146 virtual ~msrMeasuresRepeatPattern ();
147
148 public:
149
150 // set and get
151 // ------------------------------------------------------
152
153 // segment
154 void setMeasuresRepeatPatternSegment (
155 S_msrSegment measuresRepeatPatternSegment);
156
157 S_msrSegment getMeasuresRepeatPatternSegment () const
158 { return fMeasuresRepeatPatternSegment; }
159
160 // upLinks
161 S_msrMeasuresRepeat getMeasuresRepeatUpLink () const
162 { return fMeasuresRepeatUpLink; }
163
164 // services
165 // ------------------------------------------------------
166
167 int fetchMeasuresNumber () const;
168
169 void collectRepeatPatternMeasuresIntoFlatList (
170 int inputLineNumber);
171
172 public:
173
174 // visitors
175 // ------------------------------------------------------
176
177 virtual void acceptIn (basevisitor* v);
178 virtual void acceptOut (basevisitor* v);
179
180 virtual void browseData (basevisitor* v);
181
182 public:
183
184 // print
185 // ------------------------------------------------------
186
187 string asString () const;
188
189 virtual void print (ostream& os) const;
190
191 private:
192
193 // fields
194 // ------------------------------------------------------
195
196 // upLinks
197 S_msrMeasuresRepeat fMeasuresRepeatUpLink;
198
199 // segment
200 S_msrSegment fMeasuresRepeatPatternSegment;
201};
202typedef SMARTP<msrMeasuresRepeatPattern> S_msrMeasuresRepeatPattern;
203EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeatPattern& elt);
204
205//______________________________________________________________________________
206class msrMeasuresRepeatReplicas : public msrElement
207{
208 public:
209
210 // creation from MusicXML
211 // ------------------------------------------------------
212
213 static SMARTP<msrMeasuresRepeatReplicas> create (
214 int inputLineNumber,
215 S_msrMeasuresRepeat measuresRepeatUpLink);
216
217 /* JMI
218 SMARTP<msrMeasuresRepeatReplicas> createMeasuresRepeatReplicasNewbornClone (
219 S_msrVoice containingVoice);
220
221 SMARTP<msrMeasuresRepeatReplicas> createMeasuresRepeatReplicasDeepCopy (
222 S_msrVoice containingVoice);
223 */
224
225 protected:
226
227 // constructors/destructor
228 // ------------------------------------------------------
229
231 int inputLineNumber,
232 S_msrMeasuresRepeat measuresRepeatUpLink);
233
235
236 public:
237
238 // set and get
239 // ------------------------------------------------------
240
241 // upLinks
242 S_msrMeasuresRepeat getMeasuresRepeatUpLink () const
243 { return fMeasuresRepeatUpLink; }
244 // segment
245 void setMeasuresRepeatReplicasSegment (
246 S_msrSegment measuresRepeatReplicasSegment);
247
248 S_msrSegment getMeasuresRepeatReplicasSegment () const
249 { return fMeasuresRepeatReplicasSegment; }
250
251 // services
252 // ------------------------------------------------------
253
254 int fetchMeasuresNumber () const;
255
256 int fetchMeasuresRepeatReplicasNumber () const;
257
258 void collectRepeatReplicasMeasuresIntoFlatList (
259 int inputLineNumber);
260
261 public:
262
263 // visitors
264 // ------------------------------------------------------
265
266 virtual void acceptIn (basevisitor* v);
267 virtual void acceptOut (basevisitor* v);
268
269 virtual void browseData (basevisitor* v);
270
271 public:
272
273 // print
274 // ------------------------------------------------------
275
276 string asString () const;
277
278 virtual void print (ostream& os) const;
279
280 private:
281
282 // fields
283 // ------------------------------------------------------
284
285 // upLinks
286 S_msrMeasuresRepeat fMeasuresRepeatUpLink;
287
288 // segment
289 S_msrSegment fMeasuresRepeatReplicasSegment;
290};
291typedef SMARTP<msrMeasuresRepeatReplicas> S_msrMeasuresRepeatReplicas;
292EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeatReplicas& elt);
293
294//______________________________________________________________________________
295class msrMeasuresRepeat : public msrVoiceElement
296{
297 public:
298
299 // data types
300 // ------------------------------------------------------
301
302 enum msrMeasuresRepeatKind {
303 k_NoMeasuresRepeat,
304 kStartMeasuresRepeat, kStopMeasuresRepeat };
305
306 static string measuresRepeatKindAsString (
307 msrMeasuresRepeatKind measuresRepeatKind);
308
309 enum msrMeasuresRepeatBuildPhaseKind {
310 kMeasuresRepeatBuildPhaseJustCreated,
311 kMeasuresRepeatBuildPhaseInPattern,
312 kMeasuresRepeatBuildPhaseInReplicas,
313 kMeasuresRepeatBuildPhaseCompleted};
314
315 static string measuresRepeatBuildPhaseKindAsString (
316 msrMeasuresRepeatBuildPhaseKind measuresRepeatBuildPhaseKind);
317
318 // creation from MusicXML
319 // ------------------------------------------------------
320
321 static SMARTP<msrMeasuresRepeat> create (
322 int inputLineNumber,
323 int measuresRepeatMeasuresNumber,
324 int measuresRepeatSlashesNumber,
325 S_msrVoice voiceUpLink);
326
327 SMARTP<msrMeasuresRepeat> createMeasuresRepeatNewbornClone (
328 S_msrVoice containingVoice);
329
330 SMARTP<msrMeasuresRepeat> createMeasuresRepeatDeepCopy (
331 S_msrVoice containingVoice);
332
333 protected:
334
335 // constructors/destructor
336 // ------------------------------------------------------
337
339 int inputLineNumber,
340 int measuresRepeatMeasuresNumber,
341 int measuresRepeatSlashesNumber,
342 S_msrVoice voiceUpLink);
343
344 virtual ~msrMeasuresRepeat ();
345
346 public:
347
348 // set and get
349 // ------------------------------------------------------
350
351 // upLinks
352 S_msrVoice getMeasuresRepeatVoiceUpLink () const
353 { return fMeasuresRepeatVoiceUpLink; }
354
355 // numbers
356 int getMeasuresRepeatMeasuresNumber () const
357 { return fMeasuresRepeatMeasuresNumber; }
358
359 int getMeasuresRepeatSlashesNumber () const
360 { return fMeasuresRepeatSlashesNumber; }
361
362 // measuresRepeat pattern
363 void setMeasuresRepeatPattern (
364 S_msrMeasuresRepeatPattern
365 measuresRepeatPattern);
366
367 S_msrMeasuresRepeatPattern
368 getMeasuresRepeatPattern () const
369 { return fMeasuresRepeatPattern; }
370
371 // measures repeat replicas
372 void setMeasuresRepeatReplicas (
373 S_msrMeasuresRepeatReplicas
374 measuresRepeatReplicas);
375
376 S_msrMeasuresRepeatReplicas
377 getMeasuresRepeatReplicas () const
378 { return fMeasuresRepeatReplicas; }
379
380 // measures repeat build phase
381 void setCurrentMeasuresRepeatBuildPhaseKind (
382 msrMeasuresRepeatBuildPhaseKind
383 measuresRepeatBuildPhaseKind)
384 {
385 fCurrentMeasuresRepeatBuildPhaseKind =
386 measuresRepeatBuildPhaseKind;
387 }
388
389 msrMeasuresRepeatBuildPhaseKind
390 getCurrentMeasuresRepeatBuildPhaseKind () const
391 { return fCurrentMeasuresRepeatBuildPhaseKind; }
392
393 // services
394 // ------------------------------------------------------
395
396 int fetchMeasuresRepeatReplicasNumber () const;
397
398 int fetchMeasuresRepeatPatternMeasuresNumber () const;
399 int fetchMeasuresRepeatReplicasMeasuresNumber () const;
400
401 void collectMeasuresRepeatMeasuresIntoFlatList (
402 int inputLineNumber);
403
404 public:
405
406 // visitors
407 // ------------------------------------------------------
408
409 virtual void acceptIn (basevisitor* v);
410 virtual void acceptOut (basevisitor* v);
411
412 virtual void browseData (basevisitor* v);
413
414 public:
415
416 // print
417 // ------------------------------------------------------
418
419 string asString () const;
420
421 void displayMeasuresRepeat (
422 int inputLineNumber,
423 string context);
424
425 virtual void print (ostream& os) const;
426
427 private:
428
429 // fields
430 // ------------------------------------------------------
431
432 // upLinks
433 S_msrVoice fMeasuresRepeatVoiceUpLink;
434
435 // numbers
436 int fMeasuresRepeatMeasuresNumber;
437 int fMeasuresRepeatSlashesNumber;
438
439 // measures repeat pattern
440 S_msrMeasuresRepeatPattern
441 fMeasuresRepeatPattern;
442
443 // measures repeat replicas
444 S_msrMeasuresRepeatReplicas
445 fMeasuresRepeatReplicas;
446
447 // measures repeat build phase, used when building the measures repeat
448 msrMeasuresRepeatBuildPhaseKind
449 fCurrentMeasuresRepeatBuildPhaseKind;
450};
451typedef SMARTP<msrMeasuresRepeat> S_msrMeasuresRepeat;
452EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeat& elt);
453
Definition: msrMeasuresRepeats_MUT_DEP.h:119
Definition: msrMeasuresRepeats_MUT_DEP.h:207
Definition: msrMeasuresRepeats_MUT_DEP.h:296