GUIDOLib  1.7.7
Guido Engine Internal Documentation
All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
TimeMapper.h
1 #ifndef __TimeMapper__
2 #define __TimeMapper__
3 
4 /*
5  GUIDO Library
6  Copyright (C) 2009 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 "TimeUnwrap.h"
19 
20 #include <map>
21 
22 class ARMusicalObject;
23 class ARMusicalVoice;
24 //------------------------------------------------------------------------------
25 // mapping collector abstract class definition
26 class TimeMapper : public TimeUnwrap
27 {
28  private:
29  TimeMapCollector& fCollector; // the final mapping consumer
30  TYPE_TIMEPOSITION fUPosition; // the current unrolled time position
31 
32  public:
34  : TimeUnwrap(voice), fCollector(f) {}
35  virtual ~TimeMapper() {}
36 
37  protected:
38  virtual void Note (const ARMusicalObject * ev);
39  virtual void Rest (const ARMusicalObject * ev);
40 
41  private:
42  GuidoDate UnrolledDate() const;
43  void NewEv (const ARMusicalObject * ev);
44  void MoveUnrolledDate(TYPE_DURATION dur);
45  bool FlushMap (const ARMusicalObject * ev);
46 };
47 
48 
49 #endif
ARMusicalVoice
The class for GUIDO sequence, list of timepositions of events of a stream.
Definition: ARMusicalVoice.h:76
TimeMapper
Definition: TimeMapper.h:26
TimeMapper::~TimeMapper
virtual ~TimeMapper()
Definition: TimeMapper.h:35
Fraction
Numerator and denominator.
Definition: Fraction.h:23
TimeMapper::Rest
virtual void Rest(const ARMusicalObject *ev)
GuidoDate
Representation of a date as a rational value.
Definition: GUIDOEngine.h:83
TimeMapper::Note
virtual void Note(const ARMusicalObject *ev)
ARMusicalObject
The base class for all AR objects. It contains all musical information : duration and time position.
Definition: ARMusicalObject.h:33
TimeMapCollector
an abstract class to be provided by clients to collect time mappings
Definition: GUIDOScoreMap.h:147
TimeMapper::TimeMapper
TimeMapper(TimeMapCollector &f, ARMusicalVoice *voice)
Definition: TimeMapper.h:33
TimeUnwrap
Definition: TimeUnwrap.h:29

Guido Project Copyright © 2019 Grame-CNCM