C++ API Reference RNBO: src/RNBO_BeatTimeEvent.h Source File

RNBO: src/RNBO_BeatTimeEvent.h Source File

1 //
2 // RNBO_BeatTimeEvent.h
3 //
4 //
5 
6 #ifndef _RNBO_BeatTimeEvent_H_
7 #define _RNBO_BeatTimeEvent_H_
8 
9 #include "RNBO_Types.h"
10 
11 namespace RNBO {
12 
13  class PatcherEventTarget;
14 
23  class BeatTimeEvent {
24 
25  public:
26 
28  : _eventTime(0)
29  , _beatTime(-1)
30  {
31  }
32 
33  ~BeatTimeEvent()
34  {
35  }
36 
38  MillisecondTime eventTime,
39  BeatTime beatTime
40  )
41  : _eventTime(eventTime)
42  , _beatTime(beatTime)
43  {
44  }
45 
46  BeatTimeEvent(const BeatTimeEvent& other)
47  : _eventTime(other._eventTime)
48  {
49  _beatTime = other._beatTime;
50  }
51 
53  : _eventTime(other._eventTime)
54  {
55  _beatTime = other._beatTime;
56  }
57 
58  BeatTimeEvent& operator = (const BeatTimeEvent& other)
59  {
60  _eventTime = other._eventTime;
61  _beatTime = other._beatTime;
62 
63  return *this;
64  }
65 
66  bool operator==(const BeatTimeEvent& rhs) const
67  {
68  return rhs.getTime() == getTime() && rhs.getBeatTime() == getBeatTime();
69  }
70 
71  MillisecondTime getTime() const { return _eventTime; }
72  BeatTime getBeatTime() const { return _beatTime; }
73 
74  // we will always use the default event target (the top level patcher)
75  PatcherEventTarget* getEventTarget() const { return nullptr; }
76 
77  // debugging
78  void dumpEvent() const {
79  // disabling for now to avoid requiring fprintf support in generated code
80 // fprintf(stdout, "BeatTimeEvent: time=%.3f beatTime=%d", _eventTime, _beatTime);
81  }
82 
83  protected:
84 
85  MillisecondTime _eventTime;
86  BeatTime _beatTime;
87 
88  friend class EventVariant;
89 
90  void setTime(MillisecondTime eventTime) { _eventTime = eventTime; }
91  };
92 
93 } // namespace RNBO
94 
95 #endif // #ifndef _RNBO_BeatTimeEvent_H_