LibMusicXML 3.22
clefvisitor.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 __clefVisitor__
14#define __clefVisitor__
15
16#include "typedefs.h"
17#include "visitor.h"
18
19namespace MusicXML2
20{
21
26
30class EXP clefvisitor :
31 public visitor<S_clef>,
32 public visitor<S_sign>,
33 public visitor<S_line>,
34 public visitor<S_clef_octave_change>
35{
36 protected:
37 void reset();
38 virtual void visitStart ( S_clef& elt );
39 virtual void visitStart ( S_sign& elt );
40 virtual void visitStart ( S_line& elt );
41 virtual void visitStart ( S_clef_octave_change& elt );
42
43 public:
44 enum { kStandardLine, kTrebleStdLine=2, kBassStdLine=4, kCStdLine=3, kTabStdLine=5 };
45 enum { kNoNumber = -1 };
46
47 clefvisitor() { reset(); }
48 virtual ~clefvisitor() {}
49
50 std::string fSign;
51 int fLine;
52 int fOctaveChange;
53 int fNumber;
54};
55
56
58
59}
60
61#endif
Definition visitor.h:27