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 
23 namespace MusicXML2
24 {
25 
26 //______________________________________________________________________________
27 class msrVarValAssoc : public msrElement
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 };
114 EXP 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 };
208 EXP 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