LibMusicXML 3.22
keyvisitor.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 __keyVisitor__
14#define __keyVisitor__
15
16#include <ostream>
17
18#include "typedefs.h"
19#include "visitor.h"
20
21namespace MusicXML2
22{
23
28
32class EXP keyvisitor :
33 public visitor<S_key>,
34 public visitor<S_cancel>,
35 public visitor<S_fifths>,
36 public visitor<S_mode>,
37 public visitor<S_key_step>,
38 public visitor<S_key_alter>,
39 public visitor<S_key_octave>
40{
41 protected:
42 void reset();
43 virtual void visitStart ( S_key& elt );
44 virtual void visitStart ( S_cancel& elt );
45 virtual void visitStart ( S_fifths& elt );
46 virtual void visitStart ( S_mode& elt );
47
48 virtual void visitStart ( S_key_step& elt ) {} // not yet supported
49 virtual void visitStart ( S_key_alter& elt ) {} // not yet supported
50 virtual void visitStart ( S_key_octave& elt ) {} // not yet supported
51
52 public:
53 keyvisitor() { reset(); }
54 virtual ~keyvisitor() {}
55
56 virtual void print (std::ostream& out) const;
57
58 int fFifths;
59 int fCancel;
60 std::string fMode;
61};
62
63EXP std::ostream& operator<< (std::ostream& os, const keyvisitor& elt);
64
65
67
68}
69
70#endif
key element data
Definition keyvisitor.h:40
Definition visitor.h:27