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