@@ -32,20 +32,31 @@ using std::string;
32
32
/* *
33
33
* Create a new RDM inflator
34
34
*/
35
- RDMInflator::RDMInflator ()
36
- : BaseInflator(PDU::ONE_BYTE) {
35
+ RDMInflator::RDMInflator (unsigned int vector)
36
+ : BaseInflator(PDU::ONE_BYTE),
37
+ m_vector (vector) {
37
38
}
38
39
39
40
/* *
40
- * Set a RDMHandler to run when receiving a RDM message.
41
- * @param handler the callback to invoke when there is rdm data for this
41
+ * Set an RDMMessageHandler to run when receiving a RDM message.
42
+ * @param handler the callback to invoke when there is RDM data for this
42
43
* universe.
43
44
*/
44
45
void RDMInflator::SetRDMHandler (RDMMessageHandler *handler) {
45
46
m_rdm_handler.reset (handler);
46
47
}
47
48
48
49
50
+ /* *
51
+ * Set a GenericRDMHandler to run when receiving a RDM message.
52
+ * @param handler the callback to invoke when there is RDM data for this
53
+ * universe.
54
+ */
55
+ void RDMInflator::SetGenericRDMHandler (GenericRDMMessageHandler *handler) {
56
+ m_generic_rdm_handler.reset (handler);
57
+ }
58
+
59
+
49
60
/*
50
61
* Decode the RDM 'header', which is 0 bytes in length.
51
62
* @param headers the HeaderSet to add to
@@ -76,11 +87,13 @@ bool RDMInflator::HandlePDUData(uint32_t vector,
76
87
77
88
string rdm_message (reinterpret_cast <const char *>(&data[0 ]), pdu_len);
78
89
79
- E133Header e133_header = headers.GetE133Header ();
80
-
81
90
if (m_rdm_handler.get ()) {
91
+ E133Header e133_header = headers.GetE133Header ();
92
+
82
93
m_rdm_handler->Run (&headers.GetTransportHeader (), &e133_header,
83
94
rdm_message);
95
+ } else if (m_generic_rdm_handler.get ()) {
96
+ m_generic_rdm_handler->Run (&headers, rdm_message);
84
97
} else {
85
98
OLA_WARN << " No RDM handler defined!" ;
86
99
}
0 commit comments