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

RNBO: src/RNBO_OutletEvent.h Source File

1 
2 #ifndef _RNBO_OutletEvent_H_
3 #define _RNBO_OutletEvent_H_
4 
5 #include "RNBO_Types.h"
6 #include "RNBO_PatcherInterface.h"
7 
8 namespace RNBO {
9 
13  class OutletEvent {
14  public:
15 
16  OutletEvent(const OutletEvent& other) = default;
17  OutletEvent& operator = (const OutletEvent& other) = default;
18 
19  OutletEvent()
20  : _eventTime(0)
21  , _sender(nullptr)
22  , _index(INVALID_INDEX)
23  , _value(0)
24  , _eventTarget(nullptr)
25  {
26  }
27 
28  OutletEvent(MillisecondTime eventTime, EngineLink* sender, OutletIndex index, ParameterValue value, PatcherEventTarget* eventTarget = nullptr)
29  : _eventTime(eventTime)
30  , _sender(sender)
31  , _index(index)
32  , _value(value)
33  , _eventTarget(eventTarget)
34  {
35  }
36 
37  bool operator==(const OutletEvent& rhs) const
38  {
39  return rhs.getTime() == getTime()
40  && rhs.getSender() == getSender()
41  && rhs.getIndex() == getIndex()
42  && rhs.getValue() == getValue()
43  && rhs._eventTarget == _eventTarget;
44  }
45 
46  EngineLink* getSender() const { return _sender; }
47  OutletIndex getIndex() const { return _index; }
48  ParameterValue getValue() const { return _value; }
49 
50  MillisecondTime getTime() const { return _eventTime; }
51  PatcherEventTarget* getEventTarget() const { return _eventTarget; }
52 
53  // debugging
54  void dumpEvent() const {
55 // fprintf(stdout, "OutletEvent: time: %.4f sender: %p index: %d value: %.4f eventTarget: %p\n", _eventTime, _sender, _index, _value, _eventTarget);
56  }
57 
58  private:
59 
60  MillisecondTime _eventTime;
61  EngineLink* _sender;
62  OutletIndex _index;
63  ParameterValue _value;
64 
65  friend class EventVariant;
66 
67  PatcherEventTarget* _eventTarget;
68 
69  void setTime(MillisecondTime eventTime) { _eventTime = eventTime; }
70 
71  };
72 
73 } // namespace RNBO
74 
75 #endif // #ifndef _RNBO_OutletEvent_H_