LibMusicXML 3.18
msrTranspositions.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 ___msrTranspositions___
14#define ___msrTranspositions___
15
16#include "msrMeasureElements.h"
17
18#include "msrBasicTypes.h"
19
20
21namespace MusicXML2
22{
23
24//______________________________________________________________________________
26{
27 public:
28
29 // data types
30 // ------------------------------------------------------
31
32 enum msrOctaveShiftKind {
33 kOctaveShiftNone,
34 kOctaveShiftUp, kOctaveShiftDown,
35 kOctaveShiftStop, kOctaveShiftContinue };
36
37 static string octaveShiftKindAsString (
38 msrOctaveShiftKind octaveShiftKind);
39
40 // creation from MusicXML
41 // ------------------------------------------------------
42
43 static SMARTP<msrOctaveShift> create (
44 int inputLineNumber,
45 msrOctaveShiftKind octaveShiftKind,
46 int octaveShiftSize);
47
48 protected:
49
50 // constructors/destructor
51 // ------------------------------------------------------
52
54 int inputLineNumber,
55 msrOctaveShiftKind octaveShiftKind,
56 int octaveShiftSize);
57
58 virtual ~msrOctaveShift ();
59
60 public:
61
62 // set and get
63 // ------------------------------------------------------
64
65 msrOctaveShiftKind getOctaveShiftKind () const
66 { return fOctaveShiftKind; }
67
68 int getOctaveShiftSize () const
69 { return fOctaveShiftSize; }
70
71 // services
72 // ------------------------------------------------------
73
74 public:
75
76 // visitors
77 // ------------------------------------------------------
78
79 virtual void acceptIn (basevisitor* v);
80 virtual void acceptOut (basevisitor* v);
81
82 virtual void browseData (basevisitor* v);
83
84 public:
85
86 // print
87 // ------------------------------------------------------
88
89 string octaveShiftKindAsString () const;
90
91 string asString () const;
92
93 virtual void print (ostream& os) const;
94
95 private:
96
97 // fields
98 // ------------------------------------------------------
99
100 msrOctaveShiftKind fOctaveShiftKind;
101
102 int fOctaveShiftSize;
103};
105EXP ostream& operator<< (ostream& os, const S_msrOctaveShift& elt);
106
107//______________________________________________________________________________
108class msrTranspose;
110
112{
113 public:
114
115 // creation from MusicXML
116 // ------------------------------------------------------
117
118 static SMARTP<msrTranspose> create (
119 int inputLineNumber,
120 int transposeDiatonic,
121 int transposeChromatic,
122 int transposeOctaveChange,
123 bool transposeDouble);
124
125 protected:
126
127 // constructors/destructor
128 // ------------------------------------------------------
129
131 int inputLineNumber,
132 int transposeDiatonic,
133 int transposeChromatic,
134 int transposeOctaveChange,
135 bool transposeDouble);
136
137 virtual ~msrTranspose ();
138
139 public:
140
141 // set and get
142 // ------------------------------------------------------
143
144 int getTransposeDiatonic () const
145 { return fTransposeDiatonic; }
146
147 int getTransposeChromatic () const
148 { return fTransposeChromatic; }
149
150 int getTransposeOctaveChange () const
151 { return fTransposeOctaveChange; }
152
153 bool getTransposeDouble () const
154 { return fTransposeDouble; }
155
156 // services
157 // ------------------------------------------------------
158
159 bool isEqualTo (S_msrTranspose otherTranspose) const;
160
161 public:
162
163 // visitors
164 // ------------------------------------------------------
165
166 virtual void acceptIn (basevisitor* v);
167 virtual void acceptOut (basevisitor* v);
168
169 virtual void browseData (basevisitor* v);
170
171 public:
172
173 // print
174 // ------------------------------------------------------
175
176 string asString () const;
177
178 virtual void print (ostream& os) const;
179
180 private:
181
182 // fields
183 // ------------------------------------------------------
184
185 int fTransposeDiatonic;
186 int fTransposeChromatic;
187 int fTransposeOctaveChange;
188 bool fTransposeDouble;
189};
191EXP ostream& operator<< (ostream& os, const S_msrTranspose& elt);
192
193
194} // namespace MusicXML2
195
196
197#endif
the smart pointer implementation
Definition: smartpointer.h:58
Definition: basevisitor.h:25
Definition: msrMeasureElements.h:24
Definition: msrTranspositions.h:26
Definition: msrTranspositions.h:112