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 __transposeVisitor__
14 #define __transposeVisitor__
15 
16 #include "typedefs.h"
17 #include "visitor.h"
18 
19 namespace MusicXML2
20 {
21 
22 /*!
23 \addtogroup visitors
24 @{
25 */
26 
27 /*!
28 \brief a musicxml transpose element visitor
29 */
30 class EXP transposevisitor :
31 	public visitor<S_transpose>,
32 	public visitor<S_diatonic>,
33 	public visitor<S_chromatic>,
34 	public visitor<S_octave_change>,
35 	public visitor<S_double>
36 {
37 	protected:
38 		virtual void visitStart( S_transpose& elt );
39 		virtual void visitStart( S_diatonic& elt );
40 		virtual void visitStart( S_chromatic& elt );
41 		virtual void visitStart( S_octave_change& elt );
42 		virtual void visitStart( S_double& elt );
43 
44 	public:
transposevisitor()45 				 transposevisitor() { reset(); }
~transposevisitor()46 		virtual ~transposevisitor() {}
47 		virtual void reset();
48 
49 		int		fDiatonic;
50 		int		fChromatic;
51 		int		fOctaveChange;
52 		bool	fDouble;
53 };
54 
55 
56 /*! @} */
57 
58 }
59 
60 #endif
61