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

RNBO: src/RNBO_TimeSignatureEvent.h Source File

1 //
2 // RNBO_TimeSignatureEvent.h
3 //
4 //
5 
6 #ifndef _RNBO_TimeSignatureEvent_H_
7 #define _RNBO_TimeSignatureEvent_H_
8 
9 #include "RNBO_Types.h"
10 
11 namespace RNBO {
12 
13  class PatcherEventTarget;
14 
19 
20  public:
21 
23  : _eventTime(0)
24  , _numerator(-1)
25  , _denominator(-1)
26  {
27  }
28 
30  {
31  }
32 
33  TimeSignatureEvent(MillisecondTime eventTime, int numerator, int denominator)
34  : _eventTime(eventTime)
35  , _numerator(numerator)
36  , _denominator(denominator)
37  {
38  }
39 
41  : _eventTime(other._eventTime)
42  {
43  _numerator = other._numerator;
44  _denominator = other._denominator;
45  }
46 
48  : _eventTime(other._eventTime)
49  {
50  _numerator = other._numerator;
51  _denominator = other._denominator;
52  }
53 
54  TimeSignatureEvent& operator = (const TimeSignatureEvent& other)
55  {
56  _eventTime = other._eventTime;
57  _numerator = other._numerator;
58  _denominator = other._denominator;
59 
60  return *this;
61  }
62 
63  bool operator==(const TimeSignatureEvent& rhs) const
64  {
65  return rhs.getTime() == getTime()
66  && rhs.getNumerator() == getNumerator()
67  && rhs.getDenominator() == getDenominator();
68  }
69 
70  MillisecondTime getTime() const { return _eventTime; }
71  int getNumerator() const { return _numerator; }
72  int getDenominator() const { return _denominator; }
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, "TimeSignatureEvent: time=%.3f numerator=%d denominator=%d", _eventTime, _numerator, _denominator);
81  }
82 
83  protected:
84 
85  MillisecondTime _eventTime;
86  int _numerator;
87  int _denominator;
88 
89  friend class EventVariant;
90 
91  void setTime(MillisecondTime eventTime) { _eventTime = eventTime; }
92  };
93 
94 } // namespace RNBO
95 
96 #endif // #ifndef _RNBO_TimeSignatureEvent_H_