LibMusicXML 3.18
msrVarValAssocs.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 ___msrVarValAssocs___
14#define ___msrVarValAssocs___
15
16#include <list>
17
18#include "msrElements.h"
19
20#include "msrBasicTypes.h"
21
22
23namespace MusicXML2
24{
25
26//______________________________________________________________________________
28{
29 public:
30
31 // data types
32 // ------------------------------------------------------
33
34 enum msrVarValAssocKind {
35 kWorkNumber, kWorkTitle,
36 kMovementNumber, kMovementTitle,
37 kEncodingDate,
38 kScoreInstrument,
39 kMiscellaneousField };
40
41 static string varValAssocKindAsString (
42 msrVarValAssocKind varValAssocKind);
43
44 // creation from MusicXML
45 // ------------------------------------------------------
46
47 static SMARTP<msrVarValAssoc> create (
48 int inputLineNumber,
49 msrVarValAssocKind varValAssocKind,
50 string value);
51
52 protected:
53
54 // constructors/destructor
55 // ------------------------------------------------------
56
58 int inputLineNumber,
59 msrVarValAssocKind varValAssocKind,
60 string value);
61
62 virtual ~msrVarValAssoc ();
63
64 public:
65
66 // set and get
67 // ------------------------------------------------------
68
69 msrVarValAssocKind getVarValAssocKind () const
70 { return fVarValAssocKind; }
71
72 void setVariableValue (string value);
73
74 string getVariableValue () const
75 { return fVariableValue; }
76
77 // services
78 // ------------------------------------------------------
79
80 public:
81
82 // visitors
83 // ------------------------------------------------------
84
85 virtual void acceptIn (basevisitor* v);
86 virtual void acceptOut (basevisitor* v);
87
88 virtual void browseData (basevisitor* v);
89
90 public:
91
92 // print
93 // ------------------------------------------------------
94
95 string varValAssocKindAsString () const
96 {
97 return
98 varValAssocKindAsString (
99 fVarValAssocKind);
100 }
101
102 virtual void print (ostream& os) const;
103
104 private:
105
106 // fields
107 // ------------------------------------------------------
108
109 msrVarValAssocKind fVarValAssocKind;
110
111 string fVariableValue;
112};
114EXP ostream& operator<< (ostream& os, const S_msrVarValAssoc& elt);
115
116//______________________________________________________________________________
118{
119 public:
120
121 // data types
122 // ------------------------------------------------------
123
124 enum msrVarValsListAssocKind {
125 kRights,
126 kComposer, kArranger, kLyricist, kPoet, kTranslator,
127 kArtist,
128 kSoftware };
129
130 static string varValsListAssocKindAsString (
131 msrVarValsListAssocKind varValsListAssocKind);
132
133 // creation from MusicXML
134 // ------------------------------------------------------
135
136 static SMARTP<msrVarValsListAssoc> create (
137 int inputLineNumber,
138 msrVarValsListAssocKind varValsListAssocKind);
139
140 protected:
141
142 // constructors/destructor
143 // ------------------------------------------------------
144
146 int inputLineNumber,
147 msrVarValsListAssocKind varValsListAssocKind);
148
149 virtual ~msrVarValsListAssoc ();
150
151 public:
152
153 // set and get
154 // ------------------------------------------------------
155
156 msrVarValsListAssocKind
157 getVarValsListAssocKind () const
158 { return fVarValsListAssocKind; }
159
160 const list<string>& getVariableValuesList ()
161 { return fVariableValuesList; }
162
163 // services
164 // ------------------------------------------------------
165
166 void addAssocVariableValue (string value)
167 {
168 fVariableValuesList.push_back (value);
169 }
170
171 public:
172
173 // visitors
174 // ------------------------------------------------------
175
176 virtual void acceptIn (basevisitor* v);
177 virtual void acceptOut (basevisitor* v);
178
179 virtual void browseData (basevisitor* v);
180
181 public:
182
183 // print
184 // ------------------------------------------------------
185
186 string varValsListAssocKindAsString () const
187 {
188 return
189 varValsListAssocKindAsString (
190 fVarValsListAssocKind);
191 }
192
193 string varValsListAssocValuesAsString () const;
194
195 virtual void print (ostream& os) const;
196
197 private:
198
199 // fields
200 // ------------------------------------------------------
201
202 msrVarValsListAssocKind
203 fVarValsListAssocKind;
204
205 list<string> fVariableValuesList;
206};
208EXP ostream& operator<< (ostream& os, const S_msrVarValsListAssoc& elt);
209
210
211} // namespace MusicXML2
212
213
214#endif
Definition: basevisitor.h:25
Definition: msrElements.h:26
Definition: msrVarValAssocs.h:28
Definition: msrVarValAssocs.h:118