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
8 class 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 };
113 typedef SMARTP<msrMeasuresRepeatElement> S_msrMeasuresRepeatElement;
114 EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeatElement& elt);
115 */
116 
117 //______________________________________________________________________________
118 class 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 };
202 typedef SMARTP<msrMeasuresRepeatPattern> S_msrMeasuresRepeatPattern;
203 EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeatPattern& elt);
204 
205 //______________________________________________________________________________
206 class 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 
234  virtual ~msrMeasuresRepeatReplicas ();
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 };
291 typedef SMARTP<msrMeasuresRepeatReplicas> S_msrMeasuresRepeatReplicas;
292 EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeatReplicas& elt);
293 
294 //______________________________________________________________________________
295 class 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 };
451 typedef SMARTP<msrMeasuresRepeat> S_msrMeasuresRepeat;
452 EXP ostream& operator<< (ostream& os, const S_msrMeasuresRepeat& elt);
453 
msrMeasuresRepeatPattern
Definition: msrMeasuresRepeats_MUT_DEP.h:119
msrMeasuresRepeat
Definition: msrMeasuresRepeats_MUT_DEP.h:296
msrMeasuresRepeatReplicas
Definition: msrMeasuresRepeats_MUT_DEP.h:207