LibMusicXML 3.18
bsrNotes_MUT_DEP.h
1/*
2 This file is to be included only by bsrMutualDependencies.h,
3 to satisfy declarations mutual dependencies.
4*/
5
6//______________________________________________________________________________
7class bsrNote : public bsrLineElement
8{
9 public:
10
11 // data types
12 // ------------------------------------------------------
13
14 enum bsrNoteValueKind {
15 kNoteValueNone,
16
17 kNoteValueRestBreve,
18 kNoteValueRestWhole,
19 kNoteValueRestHalf,
20 kNoteValueRestQuarter,
21 kNoteValueRest8th,
22 kNoteValueRest16th,
23 kNoteValueRest32nd,
24 kNoteValueRest64th,
25 kNoteValueRest128th,
26 kNoteValueRest256th,
27
28 kNoteValueCBreve,
29 kNoteValueCWhole,
30 kNoteValueCHalf,
31 kNoteValueCQuarter,
32 kNoteValueC8th,
33 kNoteValueC16th,
34 kNoteValueC32nd,
35 kNoteValueC64th,
36 kNoteValueC128th,
37 kNoteValueC256th,
38
39 kNoteValueDBreve,
40 kNoteValueDWhole,
41 kNoteValueDHalf,
42 kNoteValueDQuarter,
43 kNoteValueD8th,
44 kNoteValueD16th,
45 kNoteValueD32nd,
46 kNoteValueD64th,
47 kNoteValueD128th,
48 kNoteValueD256th,
49
50 kNoteValueEBreve,
51 kNoteValueEWhole,
52 kNoteValueEHalf,
53 kNoteValueEQuarter,
54 kNoteValueE8th,
55 kNoteValueE16th,
56 kNoteValueE32nd,
57 kNoteValueE64th,
58 kNoteValueE128th,
59 kNoteValueE256th,
60
61 kNoteValueFBreve,
62 kNoteValueFWhole,
63 kNoteValueFHalf,
64 kNoteValueFQuarter,
65 kNoteValueF8th,
66 kNoteValueF16th,
67 kNoteValueF32nd,
68 kNoteValueF64th,
69 kNoteValueF128th,
70 kNoteValueF256th,
71
72 kNoteValueGBreve,
73 kNoteValueGWhole,
74 kNoteValueGHalf,
75 kNoteValueGQuarter,
76 kNoteValueG8th,
77 kNoteValueG16th,
78 kNoteValueG32nd,
79 kNoteValueG64th,
80 kNoteValueG128th,
81 kNoteValueG256th,
82
83 kNoteValueABreve,
84 kNoteValueAWhole,
85 kNoteValueAHalf,
86 kNoteValueAQuarter,
87 kNoteValueA8th,
88 kNoteValueA16th,
89 kNoteValueA32nd,
90 kNoteValueA64th,
91 kNoteValueA128th,
92 kNoteValueA256th,
93
94 kNoteValueBBreve,
95 kNoteValueBWhole,
96 kNoteValueBHalf,
97 kNoteValueBQuarter,
98 kNoteValueB8th,
99 kNoteValueB16th,
100 kNoteValueB32nd,
101 kNoteValueB64th,
102 kNoteValueB128th,
103 kNoteValueB256th };
104
105 static string noteValueKindAsString (
106 bsrNoteValueKind noteValueKind);
107
108 static S_bsrCellsList noteValueKindAsCellsList (
109 int inputLineNumber,
110 bsrNoteValueKind noteValueKind);
111
112 enum bsrNoteValueSizeKind {
113 kNoteValueSizeNone,
114 kNoteValueSizeLarger,
115 kNoteValueSizeSmaller };
116
117 static string noteValueSizeKindAsString (
118 bsrNoteValueSizeKind noteValueSizeKind);
119
120 static bsrNoteValueSizeKind noteValueSizeKindFromNoteValueKind (
121 bsrNoteValueKind noteValueKind);
122
123 static S_bsrCellsList noteValueSizeKindAsCellsList (
124 int inputLineNumber,
125 bsrNoteValueSizeKind noteValueSizeKind);
126
127 enum bsrNoteOctaveKind {
128 kNoteOctaveNone,
129 kNoteOctaveBelow1,
130 kNoteOctave1,
131 kNoteOctave2,
132 kNoteOctave3,
133 kNoteOctave4,
134 kNoteOctave5,
135 kNoteOctave6,
136 kNoteOctave7,
137 kNoteOctaveAbove7 };
138
139 static string noteOctaveKindAsString (
140 bsrNoteOctaveKind noteOctaveKind);
141
142 static S_bsrCellsList noteOctaveKindAsCellsList (
143 int inputLineNumber,
144 bsrNoteOctaveKind noteOctaveKind);
145
146 enum bsrNoteOctaveIsNeeded {
147 kNoteOctaveIsNeededYes, kNoteOctaveIsNeededNo};
148
149 static string noteOctaveIsNeededAsString (
150 bsrNoteOctaveIsNeeded noteOctaveIsNeeded);
151
152 enum bsrNoteAccidentalKind {
153 kNoteAccidentalNone,
154 kNoteAccidentalSharp, kNoteAccidentalNatural, kNoteAccidentalFlat,
155 kNoteAccidentalDoubleFlat, kNoteAccidentalDoubleSharp,
156 kNoteAccidentalQuarterSharp, kNoteAccidentalQuarterFlat,
157 kNoteAccidentalThreeQuarterSharp, kNoteAccidentalThreeQuarterFlat };
158
159 static string noteAccidentalKindAsString (
160 bsrNoteAccidentalKind noteAccidentalKind);
161
162 static S_bsrCellsList noteAccidentalKindAsCellsList (
163 int inputLineNumber,
164 bsrNoteAccidentalKind noteAccidentalKind);
165
166 // creation
167 // ------------------------------------------------------
168
169 static SMARTP<bsrNote> create (
170 int inputLineNumber,
171 bsrNoteValueKind noteValueKind,
172 int noteDotsNumber,
173 bsrNoteOctaveKind noteOctaveKind,
174 bsrNoteOctaveIsNeeded noteOctaveIsNeeded,
175 bsrNoteAccidentalKind noteAccidentalKind);
176
177 protected:
178
179 // constructors/destructor
180 // ------------------------------------------------------
181
182 bsrNote (
183 int inputLineNumber,
184 bsrNoteValueKind noteValueKind,
185 int noteDotsNumber,
186 bsrNoteOctaveKind noteOctaveKind,
187 bsrNoteOctaveIsNeeded noteOctaveIsNeeded,
188 bsrNoteAccidentalKind noteAccidentalKind);
189
190 virtual ~bsrNote ();
191
192 public:
193
194 // set and get
195 // ------------------------------------------------------
196
197 bsrNoteValueKind getNoteValueKind () const
198 { return fNoteValueKind; }
199
200 int getNoteDotsNumber () const
201 { return fNoteDotsNumber; }
202
203 void setNoteValueSizeIsNeeded ()
204 { fNoteValueSizeIsNeeded = true; }
205
206 bool getNoteValueSizeIsNeeded () const
207 { return fNoteValueSizeIsNeeded; }
208
209 void setNoteOctaveIsNeeded (
210 bsrNoteOctaveIsNeeded value)
211 { fNoteOctaveIsNeeded = value; }
212
213 bsrNoteOctaveIsNeeded getNoteOctaveIsNeeded () const
214 { return fNoteOctaveIsNeeded; }
215
216 bsrNoteAccidentalKind getNoteAccidentalKind () const
217 { return fNoteAccidentalKind; }
218
219 public:
220
221 // public services
222 // ------------------------------------------------------
223
224 S_bsrCellsList fetchCellsList () const
225 { return buildCellsList (); }
226
227 int fetchCellsNumber () const;
228
229 private:
230
231 // private services
232 // ------------------------------------------------------
233
234 S_bsrCellsList noteValueKindAsCellsList () const;
235
236 S_bsrCellsList noteValueSizeKindAsCellsList () const;
237
238 S_bsrCellsList noteOctaveKindAsCellsList () const;
239
240 S_bsrCellsList noteAccidentalKindAsCellsList () const;
241
242 S_bsrCellsList buildCellsList () const;
243
244 public:
245
246 // visitors
247 // ------------------------------------------------------
248
249 virtual void acceptIn (basevisitor* v);
250 virtual void acceptOut (basevisitor* v);
251
252 virtual void browseData (basevisitor* v);
253
254 public:
255
256 // print
257 // ------------------------------------------------------
258
259 string asString () const;
260
261 virtual void print (ostream& os) const;
262
263 private:
264
265 // fields
266 // ------------------------------------------------------
267
268
269 bsrNoteValueKind fNoteValueKind;
270 int fNoteDotsNumber;
271
272 bool fNoteValueSizeIsNeeded;
273
274 bsrNoteOctaveKind fNoteOctaveKind;
275 bsrNoteOctaveIsNeeded fNoteOctaveIsNeeded;
276
277 bsrNoteAccidentalKind fNoteAccidentalKind;
278};
279typedef SMARTP<bsrNote> S_bsrNote;
280EXP ostream& operator<< (ostream& os, const S_bsrNote& elt);
281
Definition: bsrLineElements_MUT_DEP.h:8
Definition: bsrNotes_MUT_DEP.h:8