LibMusicXML 3.18
msrBeatsRepeats_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 msrBeatsRepeatPattern : public msrElement
8{
9 public:
10
11 // creation from MusicXML
12 // ------------------------------------------------------
13
14 static SMARTP<msrBeatsRepeatPattern> create (
15 int inputLineNumber,
16 S_msrBeatsRepeat beatsRepeatUpLink);
17
18 /* JMI
19 SMARTP<msrBeatsRepeatPattern> createBeatsRepeatPatternNewbornClone (
20 S_msrVoice containingVoice);
21
22 SMARTP<msrBeatsRepeatPattern> createBeatsRepeatPatternDeepCopy (
23 S_msrVoice containingVoice);
24*/
25
26 protected:
27
28 // constructors/destructor
29 // ------------------------------------------------------
30
32 int inputLineNumber,
33 S_msrBeatsRepeat beatsRepeatUpLink);
34
35 virtual ~msrBeatsRepeatPattern ();
36
37 public:
38
39 // set and get
40 // ------------------------------------------------------
41
42 // segment
43 void setBeatsRepeatPatternSegment (
44 S_msrSegment beatsRepeatPatternSegment);
45
46 S_msrSegment getBeatsRepeatPatternSegment () const
47 { return fBeatsRepeatPatternSegment; }
48
49 // upLinks
50 S_msrBeatsRepeat getBeatsRepeatUpLink () const
51 { return fBeatsRepeatUpLink; }
52
53 // services
54 // ------------------------------------------------------
55
56 int fetchMeasuresNumber () const;
57
58 void collectRepeatPatternMeasuresIntoFlatList (
59 int inputLineNumber);
60
61 public:
62
63 // visitors
64 // ------------------------------------------------------
65
66 virtual void acceptIn (basevisitor* v);
67 virtual void acceptOut (basevisitor* v);
68
69 virtual void browseData (basevisitor* v);
70
71 public:
72
73 // print
74 // ------------------------------------------------------
75
76 string asString () const;
77
78 virtual void print (ostream& os) const;
79
80 private:
81
82 // fields
83 // ------------------------------------------------------
84
85 // upLinks
86 S_msrBeatsRepeat fBeatsRepeatUpLink;
87
88 // segment
89 S_msrSegment fBeatsRepeatPatternSegment;
90};
91typedef SMARTP<msrBeatsRepeatPattern> S_msrBeatsRepeatPattern;
92EXP ostream& operator<< (ostream& os, const S_msrBeatsRepeatPattern& elt);
93
94//______________________________________________________________________________
95class msrBeatsRepeatReplicas : public msrElement
96{
97 public:
98
99 // creation from MusicXML
100 // ------------------------------------------------------
101
102 static SMARTP<msrBeatsRepeatReplicas> create (
103 int inputLineNumber,
104 S_msrBeatsRepeat beatsRepeatUpLink);
105
106 /* JMI
107 SMARTP<msrBeatsRepeatReplicas> createBeatsRepeatReplicasNewbornClone (
108 S_msrVoice containingVoice);
109
110 SMARTP<msrBeatsRepeatReplicas> createBeatsRepeatReplicasDeepCopy (
111 S_msrVoice containingVoice);
112 */
113
114 protected:
115
116 // constructors/destructor
117 // ------------------------------------------------------
118
120 int inputLineNumber,
121 S_msrBeatsRepeat beatsRepeatUpLink);
122
123 virtual ~msrBeatsRepeatReplicas ();
124
125 public:
126
127 // set and get
128 // ------------------------------------------------------
129
130 // upLinks
131 S_msrBeatsRepeat getBeatsRepeatUpLink () const
132 { return fBeatsRepeatUpLink; }
133 // segment
134 void setBeatsRepeatReplicasSegment (
135 S_msrSegment beatsRepeatReplicasSegment);
136
137 S_msrSegment getBeatsRepeatReplicasSegment () const
138 { return fBeatsRepeatReplicasSegment; }
139
140 // services
141 // ------------------------------------------------------
142
143 int fetchMeasuresNumber () const;
144
145 int fetchBeatsRepeatReplicasNumber () const;
146
147 void collectRepeatReplicasMeasuresIntoFlatList (
148 int inputLineNumber);
149
150 public:
151
152 // visitors
153 // ------------------------------------------------------
154
155 virtual void acceptIn (basevisitor* v);
156 virtual void acceptOut (basevisitor* v);
157
158 virtual void browseData (basevisitor* v);
159
160 public:
161
162 // print
163 // ------------------------------------------------------
164
165 string asString () const;
166
167 virtual void print (ostream& os) const;
168
169 private:
170
171 // fields
172 // ------------------------------------------------------
173
174 // upLinks
175 S_msrBeatsRepeat fBeatsRepeatUpLink;
176
177 // segment
178 S_msrSegment fBeatsRepeatReplicasSegment;
179};
180typedef SMARTP<msrBeatsRepeatReplicas> S_msrBeatsRepeatReplicas;
181EXP ostream& operator<< (ostream& os, const S_msrBeatsRepeatReplicas& elt);
182
183//______________________________________________________________________________
184class msrBeatsRepeat : public msrVoiceElement
185{
186 public:
187
188 // data types
189 // ------------------------------------------------------
190
191 enum msrBeatsRepeatKind {
192 k_NoBeatsRepeat,
193 kStartBeatsRepeat, kStopBeatsRepeat };
194
195 static string beatsRepeatKindAsString (
196 msrBeatsRepeatKind beatsRepeatKind);
197
198 enum msrBeatsRepeatBuildPhaseKind {
199 kBeatsRepeatBuildPhaseJustCreated,
200 kBeatsRepeatBuildPhaseInPattern,
201 kBeatsRepeatBuildPhaseInReplicas,
202 kBeatsRepeatBuildPhaseCompleted};
203
204 static string beatsRepeatBuildPhaseKindAsString (
205 msrBeatsRepeatBuildPhaseKind beatsRepeatBuildPhaseKind);
206
207 // creation from MusicXML
208 // ------------------------------------------------------
209
210 static SMARTP<msrBeatsRepeat> create (
211 int inputLineNumber,
212 int beatsRepeatMeasuresNumber,
213 int beatsRepeatSlashesNumber,
214 S_msrVoice voiceUpLink);
215
216 SMARTP<msrBeatsRepeat> createBeatsRepeatNewbornClone (
217 S_msrVoice containingVoice);
218
219 SMARTP<msrBeatsRepeat> createBeatsRepeatDeepCopy (
220 S_msrVoice containingVoice);
221
222 protected:
223
224 // constructors/destructor
225 // ------------------------------------------------------
226
228 int inputLineNumber,
229 int beatsRepeatMeasuresNumber,
230 int beatsRepeatSlashesNumber,
231 S_msrVoice voiceUpLink);
232
233 virtual ~msrBeatsRepeat ();
234
235 public:
236
237 // set and get
238 // ------------------------------------------------------
239
240 // upLinks
241 S_msrVoice getBeatsRepeatVoiceUpLink () const
242 { return fBeatsRepeatVoiceUpLink; }
243
244 // numbers
245 int getBeatsRepeatMeasuresNumber () const
246 { return fBeatsRepeatMeasuresNumber; }
247
248 int getBeatsRepeatSlashesNumber () const
249 { return fBeatsRepeatSlashesNumber; }
250
251 // beatsRepeat pattern
252 void setBeatsRepeatPattern (
253 S_msrBeatsRepeatPattern
254 beatsRepeatPattern);
255
256 S_msrBeatsRepeatPattern
257 getBeatsRepeatPattern () const
258 { return fBeatsRepeatPattern; }
259
260 // measures repeat replicas
261 void setBeatsRepeatReplicas (
262 S_msrBeatsRepeatReplicas
263 beatsRepeatReplicas);
264
265 S_msrBeatsRepeatReplicas
266 getBeatsRepeatReplicas () const
267 { return fBeatsRepeatReplicas; }
268
269 // measures repeat build phase
270 void setCurrentBeatsRepeatBuildPhaseKind (
271 msrBeatsRepeatBuildPhaseKind
272 beatsRepeatBuildPhaseKind)
273 {
274 fCurrentBeatsRepeatBuildPhaseKind =
275 beatsRepeatBuildPhaseKind;
276 }
277
278 msrBeatsRepeatBuildPhaseKind
279 getCurrentBeatsRepeatBuildPhaseKind () const
280 { return fCurrentBeatsRepeatBuildPhaseKind; }
281
282 // services
283 // ------------------------------------------------------
284
285 int fetchBeatsRepeatReplicasNumber () const;
286
287 int fetchBeatsRepeatPatternMeasuresNumber () const;
288 int fetchBeatsRepeatReplicasMeasuresNumber () const;
289
290 void collectBeatsRepeatMeasuresIntoFlatList (
291 int inputLineNumber);
292
293 public:
294
295 // visitors
296 // ------------------------------------------------------
297
298 virtual void acceptIn (basevisitor* v);
299 virtual void acceptOut (basevisitor* v);
300
301 virtual void browseData (basevisitor* v);
302
303 public:
304
305 // print
306 // ------------------------------------------------------
307
308 string asString () const;
309
310 void displayBeatsRepeat (
311 int inputLineNumber,
312 string context);
313
314 virtual void print (ostream& os) const;
315
316 private:
317
318 // fields
319 // ------------------------------------------------------
320
321 // upLinks
322 S_msrVoice fBeatsRepeatVoiceUpLink;
323
324 // numbers
325 int fBeatsRepeatMeasuresNumber;
326 int fBeatsRepeatSlashesNumber;
327
328 // measures repeat pattern
329 S_msrBeatsRepeatPattern
330 fBeatsRepeatPattern;
331
332 // measures repeat replicas
333 S_msrBeatsRepeatReplicas
334 fBeatsRepeatReplicas;
335
336 // measures repeat build phase, used when building the measures repeat
337 msrBeatsRepeatBuildPhaseKind
338 fCurrentBeatsRepeatBuildPhaseKind;
339};
340typedef SMARTP<msrBeatsRepeat> S_msrBeatsRepeat;
341EXP ostream& operator<< (ostream& os, const S_msrBeatsRepeat& elt);
342
Definition: msrBeatsRepeats_MUT_DEP.h:8
Definition: msrBeatsRepeats_MUT_DEP.h:96
Definition: msrBeatsRepeats_MUT_DEP.h:185