LibMusicXML  3.18
msrFiguredBasses_MUT_DEP.h
1 /*
2  This file is to be included only by msrMutualDependencies.h,
3  to satisfy declarations mutual dependencies.
4 */
5 
6 //______________________________________________________________________________
7 class msrFigure : public msrElement
8 {
9  public:
10 
11  // data types
12  // ------------------------------------------------------
13 
14  enum msrFigurePrefixKind {
15  k_NoFigurePrefix,
16  kDoubleFlatPrefix, kFlatPrefix, kFlatFlatPrefix,
17  kNaturalPrefix,
18  kSharpSharpPrefix, kSharpPrefix, kDoubleSharpPrefix };
19 
20  static string figurePrefixKindAsString (
21  msrFigurePrefixKind figurePrefixKind);
22 
23  enum msrFigureSuffixKind {
24  k_NoFigureSuffix,
25  kDoubleFlatSuffix, kFlatSuffix, kFlatFlatSuffix,
26  kNaturalSuffix,
27  kSharpSharpSuffix, kSharpSuffix, kDoubleSharpSuffix,
28  kSlashSuffix };
29 
30  static string figureSuffixKindAsString (
31  msrFigureSuffixKind figureSuffixKind);
32 
33  // creation from MusicXML
34  // ------------------------------------------------------
35 
36  static SMARTP<msrFigure> create (
37  int inputLineNumber,
38  S_msrPart figurePartUpLink,
39  msrFigurePrefixKind figurePrefixKind,
40  int figureNumber,
41  msrFigureSuffixKind figureSuffixKind);
42 
43  SMARTP<msrFigure> createFigureNewbornClone (
44  S_msrPart containingPart);
45 
46  SMARTP<msrFigure> createFigureDeepCopy ( // JMI ???
47  S_msrPart containingPart);
48 
49  protected:
50 
51  // constructors/destructor
52  // ------------------------------------------------------
53 
54  msrFigure (
55  int inputLineNumber,
56  S_msrPart figurePartUpLink,
57  msrFigurePrefixKind figurePrefixKind,
58  int figureNumber,
59  msrFigureSuffixKind figureSuffixKind);
60 
61  virtual ~msrFigure ();
62 
63  public:
64 
65  // set and get
66  // ------------------------------------------------------
67 
68  S_msrPart getFigurePartUpLink () const
69  { return fFigurePartUpLink; }
70 
71  msrFigurePrefixKind
72  getFigurePrefixKind () const
73  { return fFigurePrefixKind; }
74 
75  int getFigureNumber () const
76  { return fFigureNumber; }
77 
78  msrFigureSuffixKind
79  getFigureSuffixKind () const
80  { return fFigureSuffixKind; }
81 
82  // services
83  // ------------------------------------------------------
84 
85  public:
86 
87  // visitors
88  // ------------------------------------------------------
89 
90  virtual void acceptIn (basevisitor* v);
91  virtual void acceptOut (basevisitor* v);
92 
93  virtual void browseData (basevisitor* v);
94 
95  public:
96 
97  // print
98  // ------------------------------------------------------
99 
100  string figurePrefixKindAsString () const;
101  string figureSuffixKindAsShortString () const;
102 
103  string asString () const;
104 
105  virtual void print (ostream& os) const;
106 
107  private:
108 
109  // fields
110  // ------------------------------------------------------
111 
112  // upLinks
113  S_msrPart fFigurePartUpLink;
114 
115  msrFigurePrefixKind
116  fFigurePrefixKind;
117  int fFigureNumber;
118  msrFigureSuffixKind
119  fFigureSuffixKind;
120 };
121 typedef SMARTP<msrFigure> S_msrFigure;
122 EXP ostream& operator<< (ostream& os, const S_msrFigure& elt);
123 
124 //______________________________________________________________________________
125 class msrFiguredBass : public msrMeasureElement
126 {
127  public:
128 
129  // data types
130  // ------------------------------------------------------
131 
132  enum msrFiguredBassParenthesesKind {
133  kFiguredBassParenthesesYes, kFiguredBassParenthesesNo };
134 
135  static string figuredBassParenthesesKindAsString (
136  msrFiguredBassParenthesesKind figuredBassParenthesesKind);
137 
138  // creation from MusicXML
139  // ------------------------------------------------------
140 
141  static SMARTP<msrFiguredBass> create (
142  int inputLineNumber); // JMI ???
143 
144  static SMARTP<msrFiguredBass> create (
145  int inputLineNumber,
146  // S_msrPart figuredBassPartUpLink,
147  rational figuredBassSoundingWholeNotes,
148  rational figuredBassDisplayWholeNotes,
149  msrFiguredBassParenthesesKind figuredBassParenthesesKind,
150  msrTupletFactor figuredBassTupletFactor);
151 
152  SMARTP<msrFiguredBass> createFiguredBassNewbornClone (
153  S_msrVoice containingVoice);
154 
155  SMARTP<msrFiguredBass> createFiguredBassDeepCopy (); // JMI ???
156 
157  protected:
158 
159  // constructors/destructor
160  // ------------------------------------------------------
161 
163  int inputLineNumber,
164  // S_msrPart figuredBassPartUpLink,
165  rational figuredBassSoundingWholeNotes,
166  rational figuredBassDisplayWholeNotes,
167  msrFiguredBassParenthesesKind figuredBassParenthesesKind,
168  msrTupletFactor figuredBassTupletFactor);
169 
170  virtual ~msrFiguredBass ();
171 
172  public:
173 
174  // set and get
175  // ------------------------------------------------------
176  void setFiguredBassNoteUpLink (
177  S_msrNote note)
178  { fFiguredBassNoteUpLink = note; }
179 
180  S_msrNote getFiguredBassNoteUpLink () const
181  { return fFiguredBassNoteUpLink; }
182 
183  void setFiguredBassVoiceUpLink (
184  S_msrVoice voice)
185  { fFiguredBassVoiceUpLink = voice; }
186 
187  S_msrVoice getFiguredBassVoiceUpLink () const
188  { return fFiguredBassVoiceUpLink; }
189 
190 /* JMI
191  S_msrPart getFiguredBassPartUpLink () const
192  { return fFiguredBassPartUpLink; }
193 */
194 
195  void setFiguredBassSoundingWholeNotes (
196  rational wholeNotes)
197  {
198  fMeasureElementSoundingWholeNotes =
199  wholeNotes;
200  }
201 
202  rational getFiguredBassSoundingWholeNotes () const
203  { return fMeasureElementSoundingWholeNotes; }
204 
205  void setFiguredBassDisplayWholeNotes (
206  rational wholeNotes)
207  { fFiguredBassDisplayWholeNotes = wholeNotes; }
208 
209  rational getFiguredBassDisplayWholeNotes () const
210  { return fFiguredBassDisplayWholeNotes; }
211 
212  msrFiguredBassParenthesesKind
213  getFiguredBassParenthesesKind () const
214  { return fFiguredBassParenthesesKind; }
215 
216  const list<S_msrFigure>&
217  getFiguredBassFiguresList ()
218  { return fFiguredBassFiguresList; }
219 
220  void setFiguredBassTupletFactor (
221  msrTupletFactor tupletFactor)
222  { fFiguredBassTupletFactor = tupletFactor; }
223 
224  msrTupletFactor getFiguredBassTupletFactor () const
225  { return fFiguredBassTupletFactor; }
226 
227  void setFiguredBassPositionInMeasure (
228  rational positionInMeasure);
229 
230  // services
231  // ------------------------------------------------------
232 
233  void appendFigureToFiguredBass (
234  S_msrFigure figure);
235 
236  public:
237 
238  // visitors
239  // ------------------------------------------------------
240 
241  virtual void acceptIn (basevisitor* v);
242  virtual void acceptOut (basevisitor* v);
243 
244  virtual void browseData (basevisitor* v);
245 
246  public:
247 
248  // print
249  // ------------------------------------------------------
250 
251  string asString () const;
252 
253  virtual void print (ostream& os) const;
254 
255  private:
256 
257  // fields
258  // ------------------------------------------------------
259 
260  // upLinks
261  // JMI S_msrPart fFiguredBassPartUpLink;
262  S_msrNote fFiguredBassNoteUpLink;
263  S_msrVoice fFiguredBassVoiceUpLink;
264 
265  rational fFiguredBassDisplayWholeNotes; // JMI useless???
266 
267  msrFiguredBassParenthesesKind
268  fFiguredBassParenthesesKind;
269 
270  list<S_msrFigure> fFiguredBassFiguresList;
271 
272  msrTupletFactor fFiguredBassTupletFactor;
273 };
274 typedef SMARTP<msrFiguredBass> S_msrFiguredBass;
275 EXP ostream& operator<< (ostream& os, const S_msrFiguredBass& elt);
276 
Definition: msrFiguredBasses_MUT_DEP.h:8
Definition: msrFiguredBasses_MUT_DEP.h:126
Rational number representation.
Definition: rational.h:25