LibMusicXML  3.18
msrRestMeasures_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 class msrRestMeasuresContents : public msrElement
8 {
9  public:
10 
11  // creation from MusicXML
12  // ------------------------------------------------------
13 
14  static SMARTP<msrRestMeasuresContents> create (
15  int inputLineNumber,
16  S_msrRestMeasures restMeasures);
17 
18  SMARTP<msrRestMeasuresContents> createRestMeasuresContentsNewbornClone (
19  S_msrRestMeasures restMeasures);
20 
21  SMARTP<msrRestMeasuresContents> createRestMeasuresContentsDeepCopy (
22  S_msrVoice containingVoice);
23 
24  protected:
25 
26  // constructors/destructor
27  // ------------------------------------------------------
28 
30  int inputLineNumber,
31  S_msrRestMeasures restMeasures);
32 
33  virtual ~msrRestMeasuresContents ();
34 
35  public:
36 
37  // set and get
38  // ------------------------------------------------------
39 
40  // upLink
41  S_msrRestMeasures
42  getRestMeasuresContentsRestMeasuresUpLink () const
43  {
44  return fRestMeasuresContentsRestMeasuresUpLink;
45  }
46 
47  void setRestMeasuresContentsSegment (
48  int inputLineNumber,
49  S_msrSegment restMeasuresContentsSegment);
50 
51  S_msrSegment getRestMeasuresContentsSegment () const
52  { return fRestMeasuresContentsSegment; }
53 
54  // services
55  // ------------------------------------------------------
56 
57  int restMeasuresContentsMeasuresNumber () const;
58 
59  void collectRestMeasuresContentsMeasuresIntoFlatList (
60  int inputLineNumber);
61 
62  public:
63 
64  // visitors
65  // ------------------------------------------------------
66 
67  virtual void acceptIn (basevisitor* v);
68  virtual void acceptOut (basevisitor* v);
69 
70  virtual void browseData (basevisitor* v);
71 
72  public:
73 
74  // print
75  // ------------------------------------------------------
76 
77  string asString () const;
78 
79  virtual void print (ostream& os) const;
80 
81  private:
82 
83  // fields
84  // ------------------------------------------------------
85 
86  // upLink
87  S_msrRestMeasures fRestMeasuresContentsRestMeasuresUpLink;
88 
89  S_msrSegment fRestMeasuresContentsSegment;
90 };
91 typedef SMARTP<msrRestMeasuresContents> S_msrRestMeasuresContents;
92 EXP ostream& operator<< (ostream& os, const S_msrRestMeasuresContents& elt);
93 
94 //______________________________________________________________________________
95 class msrRestMeasures : public msrVoiceElement
96 {
97  public:
98 
99  // data types
100  // ------------------------------------------------------
101 
102  enum msrRestMeasuresKind {
103  kStartRestMeasures, kStopRestMeasures,
104  k_NoRestMeasures };
105 
106  static string restMeasuresKindAsString (
107  msrRestMeasuresKind restMeasuresKind);
108 
109  // creation from MusicXML
110  // ------------------------------------------------------
111 
112  static SMARTP<msrRestMeasures> create (
113  int inputLineNumber,
114  rational restMeasuresMeasureSoundingNotes,
115  int restMeasuresNumber,
116  S_msrVoice voiceUpLink);
117 
118  static SMARTP<msrRestMeasures> create (
119  int inputLineNumber,
120  S_msrMeasure restMeasureClone,
121  S_msrVoice voiceUpLink);
122 
123  SMARTP<msrRestMeasures> createRestMeasuresNewbornClone (
124  S_msrVoice containingVoice);
125 
126  SMARTP<msrRestMeasures> createRestMeasuresDeepCopy (
127  S_msrVoice containingVoice);
128 
129  protected:
130 
131  // constructors/destructor
132  // ------------------------------------------------------
133 
135  int inputLineNumber,
136  rational restMeasuresMeasureSoundingNotes,
137  int restMeasuresNumber,
138  S_msrVoice voiceUpLink);
139 
141  int inputLineNumber,
142  S_msrMeasure restMeasureClone,
143  S_msrVoice voiceUpLink);
144 
145  virtual ~msrRestMeasures ();
146 
147  public:
148 
149  // set and get
150  // ------------------------------------------------------
151 
152  S_msrVoice getRestMeasuresVoiceUpLink () const
153  { return fRestMeasuresVoiceUpLink; }
154 
155  int getRestMeasuresNumber () const
156  { return fRestMeasuresNumber; }
157 
158  void setRestMeasuresContents (
159  S_msrRestMeasuresContents
160  restMeasuresContents);
161 
162  S_msrRestMeasuresContents
163  getRestMeasuresContents () const
164  { return fRestMeasuresContents; }
165 
166  void setRestMeasuresNextMeasureNumber (
167  string nextMeasureNumber);
168 
169  string getRestMeasuresNextMeasureNumber () const
170  { return fRestMeasuresNextMeasureNumber; }
171 
172  void setRestMeasuresLastMeasurePuristMeasureNumber (
173  int inputLineNumber);
174 
175  int getRestMeasuresLastMeasurePuristMeasureNumber () const
176  { return fRestMeasuresLastMeasurePuristNumber; }
177 
178  rational getRestMeasuresMeasureSoundingNotes () const
179  { return fRestMeasuresMeasureSoundingNotes; }
180 
181  // services
182  // ------------------------------------------------------
183 
184  void appendMeasureCloneToRestMeasures (
185  S_msrMeasure measureClone);
186 
187  int restMeasuresContentsMeasuresNumber () const
188  {
189  return
190  fRestMeasuresContents->
191  restMeasuresContentsMeasuresNumber ();
192  }
193 
194  void collectRestMeasuresIntoFlatList (
195  int inputLineNumber);
196 
197  public:
198 
199  // visitors
200  // ------------------------------------------------------
201 
202  virtual void acceptIn (basevisitor* v);
203  virtual void acceptOut (basevisitor* v);
204 
205  virtual void browseData (basevisitor* v);
206 
207  public:
208 
209  // print
210  // ------------------------------------------------------
211 
212  string asString () const;
213 
214  void displayRestMeasures (
215  int inputLineNumber,
216  string context);
217 
218  virtual void print (ostream& os) const;
219 
220  private:
221 
222  // fields
223  // ------------------------------------------------------
224 
225  S_msrVoice fRestMeasuresVoiceUpLink;
226 
227  int fRestMeasuresNumber;
228 
229  S_msrRestMeasuresContents
230  fRestMeasuresContents;
231 
232  string fRestMeasuresNextMeasureNumber;
233  int fRestMeasuresLastMeasurePuristNumber;
234 
235  // shortcut for efficiency
236  rational fRestMeasuresMeasureSoundingNotes;
237 };
238 typedef SMARTP<msrRestMeasures> S_msrRestMeasures;
239 EXP ostream& operator<< (ostream& os, const S_msrRestMeasures& elt);
240 
msrRestMeasures
Definition: msrRestMeasures_MUT_DEP.h:96
msrRestMeasuresContents
Definition: msrRestMeasures_MUT_DEP.h:8
rational
Rational number representation.
Definition: rational.h:25