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 //______________________________________________________________________________
7 class 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 };
279 typedef SMARTP<bsrNote> S_bsrNote;
280 EXP ostream& operator<< (ostream& os, const S_bsrNote& elt);
281 
bsrLineElement
Definition: bsrLineElements_MUT_DEP.h:8
bsrNote
Definition: bsrNotes_MUT_DEP.h:8