LibMusicXML
3.18
src
visitors
metronomevisitor.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 __metronomevisitor__
14
#define __metronomevisitor__
15
16
#include <vector>
17
#include <utility>
18
#include "typedefs.h"
19
#include "visitor.h"
20
21
namespace
MusicXML2
22
{
23
32
class
EXP
metronomevisitor
:
33
public
visitor
<S_metronome>,
34
public
visitor
<S_beat_unit>,
35
public
visitor
<S_beat_unit_dot>,
36
public
visitor
<S_per_minute>
37
{
38
protected
:
39
typedef
struct
{ std::string fUnit;
int
fDots; }
beat
;
40
beat
fCurrentBeat;
41
42
void
reset();
43
virtual
void
reset(
beat
& b);
44
virtual
void
visitStart(
S_metronome
& elt );
45
virtual
void
visitEnd (
S_metronome
& elt );
46
virtual
void
visitStart(
S_beat_unit
& elt );
47
virtual
void
visitStart(
S_beat_unit_dot
& elt );
48
virtual
void
visitStart(
S_per_minute
& elt );
49
50
public
:
51
metronomevisitor
() { reset(); }
52
virtual
~
metronomevisitor
() {}
53
54
std::vector<beat> fBeats;
55
int
fPerMinute;
56
};
57
58
61
}
62
63
#endif
MusicXML2::metronomevisitor
key element data
Definition:
metronomevisitor.h:37
MusicXML2::metronomevisitor::beat
Definition:
metronomevisitor.h:39
MusicXML2::SMARTP
the smart pointer implementation
Definition:
smartpointer.h:58
MusicXML2::visitor
Definition:
visitor.h:27
Generated by
1.8.18