LibMusicXML
3.22
src
visitors
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
21
namespace
MusicXML2
22
{
23
32
class
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
63
EXP std::ostream& operator<< (std::ostream& os,
const
keyvisitor
& elt);
64
65
68
}
69
70
#endif
MusicXML2::SMARTP< musicxml< k_key > >
MusicXML2::keyvisitor
key element data
Definition
keyvisitor.h:40
MusicXML2::visitor
Definition
visitor.h:27
Generated by
1.12.0