LibMusicXML 3.18
msrArticulations.h
1/*
2 MusicXML Library
3 Copyright (C) Grame 2006-2013
4
5 This Source Code Form is subject to the terms of the Mozilla Public
6 License, v. 2.0. If a copy of the MPL was not distributed with this
7 file, You can obtain one at http://mozilla.org/MPL/2.0/.
8
9 Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
10 research@grame.fr
11*/
12
13#ifndef ___msrArticulations___
14#define ___msrArticulations___
15
16#include "msrElements.h"
17
18#include "msrBasicTypes.h"
19
20
21namespace MusicXML2
22{
23
24//______________________________________________________________________________
26{
27 public:
28
29 // data types
30 // ------------------------------------------------------
31
32 enum msrArticulationKind {
33 kAccent, kBreathMark, kCaesura,
34 kSpiccato,
35 kStaccato, kStaccatissimo,
36 kStress, kUnstress,
37 kDetachedLegato,
38 kStrongAccent, kTenuto,
39 kFermata, // barline ??? JMI
40 kArpeggiato, kNonArpeggiato,
41 kDoit, kFalloff, kPlop, kScoop};
42
43 static string articulationKindAsString (
44 msrArticulationKind articulationKind);
45
46 // creation from MusicXML
47 // ------------------------------------------------------
48
49 static SMARTP<msrArticulation> create (
50 int inputLineNumber,
51 msrArticulationKind articulationKind,
52 msrPlacementKind articulationPlacementKind);
53
54 protected:
55
56 // constructors/destructor
57 // ------------------------------------------------------
58
60 int inputLineNumber,
61 msrArticulationKind articulationKind,
62 msrPlacementKind articulationPlacementKind);
63
64 virtual ~msrArticulation ();
65
66 public:
67
68 // set and get
69 // ------------------------------------------------------
70
71 msrArticulationKind getArticulationKind () const
72 { return fArticulationKind; }
73
74 msrPlacementKind getArticulationPlacementKind () const
75 { return fArticulationPlacementKind; }
76
77 // services
78 // ------------------------------------------------------
79
80 virtual string articulationKindAsString () const;
81
82 virtual string articulationPlacementKindAsString () const;
83
84 public:
85
86 // visitors
87 // ------------------------------------------------------
88
89 virtual void acceptIn (basevisitor* v);
90 virtual void acceptOut (basevisitor* v);
91
92 virtual void browseData (basevisitor* v);
93
94 public:
95
96 // print
97 // ------------------------------------------------------
98
99 virtual void print (ostream& os) const;
100
101 protected:
102
103 // fields
104 // ------------------------------------------------------
105
106 msrArticulationKind fArticulationKind;
107
108 msrPlacementKind fArticulationPlacementKind;
109};
111EXP ostream& operator<< (ostream& os, const S_msrArticulation& elt);
112
113//______________________________________________________________________________
115{
116 public:
117
118 // data types
119 // ------------------------------------------------------
120
121 enum msrFermataKind {
122 kNormalFermataKind, kAngledFermataKind, kSquareFermataKind};
123
124 static string fermataKindAsString (
125 msrFermataKind fermataKind);
126
127 enum msrFermataTypeKind {
128 kFermataTypeNone,
129 kFermataTypeUpright, kFermataTypeInverted };
130
131 static string fermataTypeKindAsString (
132 msrFermataTypeKind fermataTypeKind);
133
134 // creation from MusicXML
135 // ------------------------------------------------------
136
137 static SMARTP<msrFermata> create (
138 int inputLineNumber,
139 msrFermataKind fermataKind,
140 msrFermataTypeKind fermataTypeKind);
141
142 protected:
143
144 // constructors/destructor
145 // ------------------------------------------------------
146
147 msrFermata (
148 int inputLineNumber,
149 msrFermataKind fermataKind,
150 msrFermataTypeKind fermataTypeKind);
151
152 virtual ~msrFermata ();
153
154 public:
155
156 // set and get
157 // ------------------------------------------------------
158
159 msrFermataKind getFermataKind () const
160 { return fFermataKind; }
161
162 msrFermataTypeKind getFermataTypeKind () const
163 { return fFermataTypeKind; }
164
165 // services
166 // ------------------------------------------------------
167
168 string asString () const;
169
170 public:
171
172 // visitors
173 // ------------------------------------------------------
174
175 virtual void acceptIn (basevisitor* v);
176 virtual void acceptOut (basevisitor* v);
177
178 virtual void browseData (basevisitor* v);
179
180 public:
181
182 // print
183 // ------------------------------------------------------
184
185 virtual void print (ostream& os) const;
186
187 private:
188
189 // fields
190 // ------------------------------------------------------
191
192 msrFermataKind fFermataKind;
193
194 msrFermataTypeKind fFermataTypeKind;
195};
197EXP ostream& operator<< (ostream& os, const S_msrFermata& elt);
198
199//______________________________________________________________________________
201{
202 public:
203
204 // creation from MusicXML
205 // ------------------------------------------------------
206
207 static SMARTP<msrArpeggiato> create (
208 int inputLineNumber,
209 msrPlacementKind arpeggiatoPlacementKind,
210 msrDirectionKind arpeggiatoDirectionKind,
211 int arpeggiatoNumber);
212
213 protected:
214
215 // constructors/destructor
216 // ------------------------------------------------------
217
219 int inputLineNumber,
220 msrPlacementKind arpeggiatoPlacementKind,
221 msrDirectionKind arpeggiatoDirectionKind,
222 int arpeggiatoNumber);
223
224 virtual ~msrArpeggiato ();
225
226 public:
227
228 // set and get
229 // ------------------------------------------------------
230
231 msrDirectionKind getArpeggiatoDirectionKind () const
232 { return fArpeggiatoDirectionKind; }
233
234 int getArpeggiatoNumber () const
235 { return fArpeggiatoNumber; }
236
237 // services
238 // ------------------------------------------------------
239
240 virtual string arpeggiatoDirectionKindAsString () const;
241
242 public:
243
244 // visitors
245 // ------------------------------------------------------
246
247 virtual void acceptIn (basevisitor* v);
248 virtual void acceptOut (basevisitor* v);
249
250 virtual void browseData (basevisitor* v);
251
252 public:
253
254 // print
255 // ------------------------------------------------------
256
257 virtual void print (ostream& os) const;
258
259 private:
260
261 // fields
262 // ------------------------------------------------------
263
264 msrDirectionKind fArpeggiatoDirectionKind;
265
266 int fArpeggiatoNumber;
267};
269EXP ostream& operator<< (ostream& os, const S_msrArpeggiato& elt);
270
271//______________________________________________________________________________
273{
274 public:
275
276 // data types
277 // ------------------------------------------------------
278
279 enum msrNonArpeggiatoTypeKind {
280 kNonArpeggiatoTypeNone,
281 kNonArpeggiatoTypeTop, kNonArpeggiatoTypeBottom };
282
283 static string nonArpeggiatoTypeKindAsString (
284 msrNonArpeggiatoTypeKind nonArpeggiatoTypeKind);
285
286 // creation from MusicXML
287 // ------------------------------------------------------
288
289 static SMARTP<msrNonArpeggiato> create (
290 int inputLineNumber,
291 msrPlacementKind nonArpeggiatoPlacementKind,
292 msrNonArpeggiatoTypeKind nonArpeggiatoTypeKind,
293 int nonArpeggiatoNumber);
294
295 protected:
296
297 // constructors/destructor
298 // ------------------------------------------------------
299
301 int inputLineNumber,
302 msrPlacementKind nonArpeggiatoPlacementKind,
303 msrNonArpeggiatoTypeKind nonArpeggiatoTypeKind,
304 int nonArpeggiatoNumber);
305
306 virtual ~msrNonArpeggiato ();
307
308 public:
309
310 // set and get
311 // ------------------------------------------------------
312
313 msrNonArpeggiatoTypeKind
314 getNonArpeggiatoTypeKind () const
315 { return fNonArpeggiatoTypeKind; }
316
317 int getNonArpeggiatoNumber () const
318 { return fNonArpeggiatoNumber; }
319
320 // services
321 // ------------------------------------------------------
322
323 virtual string nonArpeggiatoTypeKindAsString () const;
324
325 public:
326
327 // visitors
328 // ------------------------------------------------------
329
330 virtual void acceptIn (basevisitor* v);
331 virtual void acceptOut (basevisitor* v);
332
333 virtual void browseData (basevisitor* v);
334
335 public:
336
337 // print
338 // ------------------------------------------------------
339
340 virtual void print (ostream& os) const;
341
342 private:
343
344 // fields
345 // ------------------------------------------------------
346
347 msrNonArpeggiatoTypeKind
348 fNonArpeggiatoTypeKind;
349
350 int fNonArpeggiatoNumber;
351};
353EXP ostream& operator<< (ostream& os, const S_msrNonArpeggiato& elt);
354
355
356} // namespace MusicXML2
357
358
359#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: msrArticulations.h:201
Definition: msrArticulations.h:26
Definition: msrElements.h:26
Definition: msrArticulations.h:115
Definition: msrArticulations.h:273