LibMusicXML 3.18
msrStavesDetails.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 ___msrStavesDetails___
14#define ___msrStavesDetails___
15
16#include <list>
17
18#include "msrMeasureElements.h"
19
20#include "msrBasicTypes.h"
21
22
23namespace MusicXML2
24{
25
26//______________________________________________________________________________
28{
29 public:
30
31 // creation from MusicXML
32 // ------------------------------------------------------
33
34 static SMARTP<msrStaffTuning> create (
35 int inputLineNumber,
36 int staffTuningLineNumber,
37 msrQuarterTonesPitchKind quarterTonesPitchKind,
38 int staffTuningOctave);
39
40 SMARTP<msrStaffTuning> createStaffTuningNewbornClone ();
41
42 SMARTP<msrStaffTuning> createStaffTuningDeepCopy ();
43
44 protected:
45
46 // constructors/destructor
47 // ------------------------------------------------------
48
50 int inputLineNumber,
51 int staffTuningLineNumber,
52 msrQuarterTonesPitchKind quarterTonesPitchKind,
53 int staffTuningOctave);
54
56
57 public:
58
59 // set and get
60 // ------------------------------------------------------
61
62 int getStaffTuningLineNumber () const
63 { return fStaffTuningLineNumber; }
64
65 msrQuarterTonesPitchKind
66 getStaffTuningQuarterTonesPitchKind () const
67 { return fStaffTuningQuarterTonesPitchKind; }
68
69 int getStaffTuningOctave () const
70 { return fStaffTuningOctave; }
71
72 // services
73 // ------------------------------------------------------
74
75 public:
76
77 // visitors
78 // ------------------------------------------------------
79
80 virtual void acceptIn (basevisitor* v);
81 virtual void acceptOut (basevisitor* v);
82
83 virtual void browseData (basevisitor* v);
84
85 public:
86
87 // print
88 // ------------------------------------------------------
89
90 string asString () const;
91
92 virtual void print (ostream& os) const;
93
94 public:
95
96 // fields
97 // ------------------------------------------------------
98
99 int fStaffTuningLineNumber;
100
101 msrQuarterTonesPitchKind
102 fStaffTuningQuarterTonesPitchKind;
103 int fStaffTuningOctave;
104};
106EXP ostream& operator<< (ostream& os, const S_msrStaffTuning& elt);
107
108//______________________________________________________________________________
110{
111 public:
112
113
114 // data types
115 // ------------------------------------------------------
116
117 enum msrStaffTypeKind {
118 kRegularStaffType,
119 kOssiaStaffType, kCueStaffType, kEditorialStaffType,
120 kAlternateStaffType};
121
122 static string staffTypeKindAsString (
123 msrStaffTypeKind staffTypeKind);
124
125 enum msrShowFretsKind {
126 kShowFretsNumbers, kShowFretsLetters};
127
128 static string showFretsKindAsString (
129 msrShowFretsKind showFretsKind);
130
131 enum msrPrintSpacingKind {
132 kPrintSpacingYes, kPrintSpacingNo};
133
134 static string printSpacingKindAsString (
135 msrPrintSpacingKind printSpacingKind);
136
137 // creation from MusicXML
138 // ------------------------------------------------------
139
140 static SMARTP<msrStaffDetails> create (
141 int inputLineNumber,
142 msrStaffTypeKind staffTypeKind,
143 msrShowFretsKind showFretsKind,
144 msrPrintObjectKind printObjectKind,
145 msrPrintSpacingKind printSpacingKin);
146
147 protected:
148
149 // constructors/destructor
150 // ------------------------------------------------------
151
153 int inputLineNumber,
154 msrStaffTypeKind staffTypeKind,
155 msrShowFretsKind showFretsKind,
156 msrPrintObjectKind printObjectKind,
157 msrPrintSpacingKind printSpacingKin);
158
159 virtual ~msrStaffDetails ();
160
161 public:
162
163 // set and get
164 // ------------------------------------------------------
165
166 msrStaffTypeKind getStaffTypeKind () const
167 { return fStaffTypeKind; }
168
169 void setStaffLinesNumber (
170 int staffLinesNumber)
171 { fStaffLinesNumber = staffLinesNumber; }
172
173 int getStaffLinesNumber () const
174 { return fStaffLinesNumber; }
175
176 const list<S_msrStaffTuning>&
177 getStaffTuningsList () const
178 { return fStaffTuningsList; }
179
180 msrShowFretsKind getShowFretsKind () const
181 { return fShowFretsKind; }
182
183 msrPrintObjectKind getPrintObjectKind () const
184 { return fPrintObjectKind; }
185
186 msrPrintSpacingKind getPrintSpacingKind () const
187 { return fPrintSpacingKind; }
188
189 // services
190 // ------------------------------------------------------
191
192 void addStaffTuningToStaffDetails (
193 S_msrStaffTuning staffTuning)
194 {
195 fStaffTuningsList.push_back (staffTuning);
196 }
197
198 string asShortString () const;
199
200 public:
201
202 // visitors
203 // ------------------------------------------------------
204
205 virtual void acceptIn (basevisitor* v);
206 virtual void acceptOut (basevisitor* v);
207
208 virtual void browseData (basevisitor* v);
209
210 public:
211
212 // print
213 // ------------------------------------------------------
214
215 virtual void print (ostream& os) const;
216
217 private:
218
219 // fields
220 // ------------------------------------------------------
221
222 msrStaffTypeKind fStaffTypeKind;
223
224 int fStaffLinesNumber;
225 list<S_msrStaffTuning>
226 fStaffTuningsList;
227
228 msrShowFretsKind fShowFretsKind;
229
230 msrPrintObjectKind fPrintObjectKind;
231 msrPrintSpacingKind fPrintSpacingKind;
232};
234EXP ostream& operator<< (ostream& os, const S_msrStaffDetails& elt);
235
236
237} // namespace MusicXML2
238
239
240#endif
Definition: basevisitor.h:25
Definition: msrElements.h:26
Definition: msrMeasureElements.h:24
Definition: msrStavesDetails.h:110
Definition: msrStavesDetails.h:28