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 
21 namespace 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 };
105 EXP ostream& operator<< (ostream& os, const S_msrOctaveShift& elt);
106 
107 //______________________________________________________________________________
108 class 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 
130  msrTranspose (
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 };
191 EXP ostream& operator<< (ostream& os, const S_msrTranspose& elt);
192 
193 
194 } // namespace MusicXML2
195 
196 
197 #endif
MusicXML2::msrTranspose
Definition: msrTranspositions.h:112
MusicXML2::msrOctaveShift
Definition: msrTranspositions.h:26
MusicXML2::msrMeasureElement
Definition: msrMeasureElements.h:24
MusicXML2::SMARTP
the smart pointer implementation
Definition: smartpointer.h:58
MusicXML2::basevisitor
Definition: basevisitor.h:25