22 #ifndef PLUGINS_E131_E131_E131NODE_H_
23 #define PLUGINS_E131_E131_E131NODE_H_
35 #include "ola/io/SelectServerInterface.h"
36 #include "ola/thread/SchedulerInterface.h"
37 #include "ola/network/Interface.h"
38 #include "ola/network/Socket.h"
39 #include "plugins/e131/e131/DMPE131Inflator.h"
40 #include "plugins/e131/e131/E131DiscoveryInflator.h"
41 #include "plugins/e131/e131/E131Inflator.h"
42 #include "plugins/e131/e131/E131Sender.h"
43 #include "plugins/e131/e131/RootInflator.h"
44 #include "plugins/e131/e131/RootSender.h"
45 #include "plugins/e131/e131/UDPTransport.h"
78 std::string source_name;
79 std::set<uint16_t> universes;
90 const std::string &ip_address,
110 bool SetSourceName(uint16_t universe,
const std::string &source);
125 uint8_t priority = DEFAULT_PRIORITY);
135 bool SendDMX(uint16_t universe,
137 uint8_t priority = DEFAULT_PRIORITY,
138 bool preview =
false);
156 int8_t sequence_offset,
157 uint8_t priority = DEFAULT_PRIORITY,
158 bool preview =
false);
173 uint8_t priority = DEFAULT_PRIORITY);
217 typedef std::map<uint16_t, tx_universe> ActiveTxUniverses;
218 typedef std::map<acn::CID, class TrackedSource*> TrackedSources;
221 const Options m_options;
222 const std::string m_preferred_ip;
228 RootSender m_root_sender;
229 E131Sender m_e131_sender;
231 RootInflator m_root_inflator;
232 E131Inflator m_e131_inflator;
233 E131InflatorRev2 m_e131_rev2_inflator;
234 DMPE131Inflator m_dmp_inflator;
235 E131DiscoveryInflator m_discovery_inflator;
237 IncomingUDPTransport m_incoming_udp_transport;
238 ActiveTxUniverses m_tx_universes;
239 uint8_t *m_send_buffer;
243 TrackedSources m_discovered_sources;
245 tx_universe *SetupOutgoingSettings(uint16_t universe);
247 bool PerformDiscoveryHousekeeping();
248 void NewDiscoveryPage(
const HeaderSet &headers,
249 const E131DiscoveryInflator::DiscoveryPage &page);
250 void SendDiscoveryPage(
const std::vector<uint16_t> &universes, uint8_t page,
251 uint8_t last_page, uint32_t sequence_number);
253 static const uint16_t DEFAULT_PRIORITY = 100;
254 static const uint16_t UNIVERSE_DISCOVERY_INTERVAL = 10000;
255 static const uint16_t DISCOVERY_UNIVERSE_ID = 64214;
256 static const uint16_t DISCOVERY_PAGE_SIZE = 512;
263 #endif // PLUGINS_E131_E131_E131NODE_H_