LibMusicXML  3.18
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 
19 namespace MusicXML2
20 {
21 
30 class 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 
59 }
60 
61 #endif
key element data
Definition: clefvisitor.h:35
Definition: visitor.h:27