GUIDOLib  1.7.7
Guido Engine Internal Documentation
MeterVisitor.h
1 #ifndef __MeterVisitor__
2 #define __MeterVisitor__
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2016 Grame
7 
8 
9  This Source Code Form is subject to the terms of the Mozilla Public
10  License, v. 2.0. If a copy of the MPL was not distributed with this
11  file, You can obtain one at http://mozilla.org/MPL/2.0/.
12 
13  Grame Research Laboratory, 11, cours de Verdun Gensoul 69002 Lyon - France
14  research@grame.fr
15 
16 */
17 
18 #include <vector>
19 
20 #include "ARVisitor.h"
21 #include "GUIDOEngine.h"
22 #include "defines.h"
23 
24 //------------------------------------------------------------------------------
25 class MeterVisitor : public ARVisitor
26 {
27  enum { kNoLimit = 0xffffffff };
28  TYPE_TIMEPOSITION fLimit;
29  GuidoMeter fLastMeter;
30 
31 
32  public:
33  MeterVisitor() : fLimit(kNoLimit, 1) { reset(); }
34  MeterVisitor(const TYPE_TIMEPOSITION& limit) : fLimit(limit) { reset(); }
35  virtual ~MeterVisitor() {}
36 
37  void reset(); // reset the last meter value to a default value (no meter)
38  GuidoMeter getMeter() const { return fLastMeter; }
39 
40  virtual void visitIn (ARMusicalTag* object);
41 };
42 
43 //------------------------------------------------------------------------------
44 class MetersVisitor : public ARVisitor
45 {
46  enum { kNoLimit = 0xffffffff };
47  TYPE_TIMEPOSITION fLimit;
48  std::vector<GuidoMeter> fMeters;
49 
50  public:
51  MetersVisitor() : fLimit(kNoLimit, 1) { reset(); }
52  MetersVisitor(const TYPE_TIMEPOSITION& limit) : fLimit(limit) { reset(); }
53  virtual ~MetersVisitor() {}
54 
55  void reset(); // reset the last meter value to a default value (no meter)
56  GuidoMeters getMeters() const;
57 
58  virtual void visitIn (ARMusicalTag* object);
59 };
60 
61 
62 #endif
MetersVisitor::~MetersVisitor
virtual ~MetersVisitor()
Definition: MeterVisitor.h:53
ARVisitor
Definition: ARVisitor.h:22
MeterVisitor::MeterVisitor
MeterVisitor(const TYPE_TIMEPOSITION &limit)
Definition: MeterVisitor.h:34
GuidoMeter
A meter representation.
Definition: GUIDOEngine.h:107
MeterVisitor::getMeter
GuidoMeter getMeter() const
Definition: MeterVisitor.h:38
Fraction
Numerator and denominator.
Definition: Fraction.h:23
MeterVisitor
Definition: MeterVisitor.h:25
MetersVisitor::getMeters
GuidoMeters getMeters() const
MetersVisitor::MetersVisitor
MetersVisitor(const TYPE_TIMEPOSITION &limit)
Definition: MeterVisitor.h:52
MeterVisitor::visitIn
virtual void visitIn(ARMusicalTag *object)
MetersVisitor::visitIn
virtual void visitIn(ARMusicalTag *object)
ARMusicalTag
The base class for all musical tag classes.
Definition: ARMusicalTag.h:34
MetersVisitor::MetersVisitor
MetersVisitor()
Definition: MeterVisitor.h:51
MetersVisitor
Definition: MeterVisitor.h:44
MeterVisitor::reset
void reset()
MeterVisitor::MeterVisitor
MeterVisitor()
Definition: MeterVisitor.h:33
MetersVisitor::reset
void reset()
MeterVisitor::~MeterVisitor
virtual ~MeterVisitor()
Definition: MeterVisitor.h:35

Guido Project Copyright © 2019 Grame-CNCM