LibMusicXML 3.18
msrDynamics.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 ___msrDynamics___
14#define ___msrDynamics___
15
16#include "msrElements.h"
17
18#include "msrBasicTypes.h"
19
20
21namespace MusicXML2
22{
23
24//______________________________________________________________________________
25class msrDynamics : public msrElement
26{
27 public:
28
29 // data types
30 // ------------------------------------------------------
31
32 enum msrDynamicsKind {
33 kF, kFF, kFFF, kFFFF, kFFFFF, kFFFFFF,
34 kP, kPP, kPPP, kPPPP, kPPPPP, kPPPPPP,
35 kMF, kMP, kFP, kFZ, kRF, kSF, kRFZ, kSFZ, kSFP, kSFPP, kSFFZ,
36 k_NoDynamics };
37
38 static string dynamicsKindAsString (
39 msrDynamicsKind dynamicsKind);
40
41 // creation from MusicXML
42 // ------------------------------------------------------
43
44 static SMARTP<msrDynamics> create (
45 int inputLineNumber,
46 msrDynamicsKind dynamicsKind,
47 msrPlacementKind dynamicsPlacementKind);
48
49 protected:
50
51 // constructors/destructor
52 // ------------------------------------------------------
53
55 int inputLineNumber,
56 msrDynamicsKind dynamicsKind,
57 msrPlacementKind dynamicsPlacementKind);
58
59 virtual ~msrDynamics ();
60
61 public:
62
63 // set and get
64 // ------------------------------------------------------
65
66 msrDynamicsKind getDynamicsKind () const
67 { return fDynamicsKind; }
68
69 msrPlacementKind getDynamicsPlacementKind () const
70 { return fDynamicsPlacementKind; }
71
72 public:
73
74 // public services
75 // ------------------------------------------------------
76
77 public:
78
79 // visitors
80 // ------------------------------------------------------
81
82 virtual void acceptIn (basevisitor* v);
83 virtual void acceptOut (basevisitor* v);
84
85 virtual void browseData (basevisitor* v);
86
87 public:
88
89 // print
90 // ------------------------------------------------------
91
92 string dynamicsKindAsString () const;
93
94 string dynamicsPlacementKindAsString () const;
95
96 virtual void print (ostream& os) const;
97
98 private:
99
100 // fields
101 // ------------------------------------------------------
102
103 msrDynamicsKind fDynamicsKind;
104
105 msrPlacementKind fDynamicsPlacementKind;
106};
108EXP ostream& operator<< (ostream& os, const S_msrDynamics& elt);
109
110//______________________________________________________________________________
112{
113 public:
114
115 // creation from MusicXML
116 // ------------------------------------------------------
117
118 static SMARTP<msrOtherDynamics> create (
119 int inputLineNumber,
120 string otherDynamicsString,
121 msrPlacementKind otherDynamicsPlacementKind);
122
123 protected:
124
125 // constructors/destructor
126 // ------------------------------------------------------
127
129 int inputLineNumber,
130 string otherDynamicsString,
131 msrPlacementKind otherDynamicsPlacementKind);
132
133 virtual ~msrOtherDynamics ();
134
135 public:
136
137 // set and get
138 // ------------------------------------------------------
139
140 string getOtherDynamicsString () const
141 { return fOtherDynamicsString; }
142
143 msrPlacementKind getOtherDynamicsPlacementKind () const
144 { return fOtherDynamicsPlacementKind; }
145
146 // services
147 // ------------------------------------------------------
148
149 public:
150
151 // visitors
152 // ------------------------------------------------------
153
154 virtual void acceptIn (basevisitor* v);
155 virtual void acceptOut (basevisitor* v);
156
157 virtual void browseData (basevisitor* v);
158
159 public:
160
161 // print
162 // ------------------------------------------------------
163
164 string otherDynamicsPlacementKindAsString () const;
165
166 string asString () const;
167
168 virtual void print (ostream& os) const;
169
170 private:
171
172 // fields
173 // ------------------------------------------------------
174
175 string fOtherDynamicsString;
176
177 msrPlacementKind fOtherDynamicsPlacementKind;
178};
180EXP ostream& operator<< (ostream& os, const S_msrOtherDynamics& elt);
181
182//______________________________________________________________________________
183class msrWedge : public msrElement
184{
185 public:
186
187 // data types
188 // ------------------------------------------------------
189
190 enum msrWedgeKind {
191 kWedgeKindNone,
192 kWedgeCrescendo, kWedgeDecrescendo, kWedgeStop };
193
194 static string wedgeKindAsString (
195 msrWedgeKind wedgeKind);
196
197 enum msrWedgeNienteKind {
198 kWedgeNienteYes, kWedgeNienteNo };
199
200 static string wedgeNienteKindAsString (
201 msrWedgeNienteKind wedgeNienteKind);
202
203 // creation from MusicXML
204 // ------------------------------------------------------
205
206 static SMARTP<msrWedge> create (
207 int inputLineNumber,
208 msrWedgeKind wedgeKind,
209 msrWedgeNienteKind wedgeNienteKind,
210 msrLineTypeKind wedgeLineTypeKind,
211 msrPlacementKind wedgePlacementKind);
212
213 protected:
214
215 // constructors/destructor
216 // ------------------------------------------------------
217
218 msrWedge (
219 int inputLineNumber,
220 msrWedgeKind wedgeKind,
221 msrWedgeNienteKind wedgeNienteKind,
222 msrLineTypeKind wedgeLineTypeKind,
223 msrPlacementKind wedgePlacementKind);
224
225 virtual ~msrWedge ();
226
227 public:
228
229 // set and get
230 // ------------------------------------------------------
231
232 msrWedgeKind getWedgeKind () const
233 { return fWedgeKind; }
234
235 msrWedgeNienteKind getWedgeNienteKind () const
236 { return fWedgeNienteKind; }
237
238 msrLineTypeKind getWedgeLineTypeKind () const
239 { return fWedgeLineTypeKind; }
240
241 msrPlacementKind getWedgePlacementKind () const
242 { return fWedgePlacementKind; }
243
244 // services
245 // ------------------------------------------------------
246
247 public:
248
249 // visitors
250 // ------------------------------------------------------
251
252 virtual void acceptIn (basevisitor* v);
253 virtual void acceptOut (basevisitor* v);
254
255 virtual void browseData (basevisitor* v);
256
257 public:
258
259 // print
260 // ------------------------------------------------------
261
262 string wedgeKindAsString () const;
263
264 virtual void print (ostream& os) const;
265
266 private:
267
268 // fields
269 // ------------------------------------------------------
270
271 msrWedgeKind fWedgeKind;
272
273 msrWedgeNienteKind fWedgeNienteKind;
274
275 msrLineTypeKind fWedgeLineTypeKind;
276
277 msrPlacementKind fWedgePlacementKind;
278};
280EXP ostream& operator<< (ostream& os, const S_msrWedge& elt);
281
282
283} // namespace MusicXML2
284
285
286#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: msrDynamics.h:26
Definition: msrElements.h:26
Definition: msrDynamics.h:112
Definition: msrDynamics.h:184