21#ifndef PLUGINS_USBPRO_ROBEWIDGET_H_
22#define PLUGINS_USBPRO_ROBEWIDGET_H_
35#include "ola/thread/SchedulingExecutorInterface.h"
36#include "plugins/usbpro/BaseRobeWidget.h"
48class RobeWidgetImpl:
public BaseRobeWidget,
81 static const int DMX_FRAME_DATA_SIZE;
89 std::auto_ptr<Callback0<void> > m_dmx_callback;
91 std::auto_ptr<const ola::rdm::RDMRequest> m_pending_request;
93 uint8_t m_transaction_number;
95 void HandleMessage(uint8_t label,
98 void HandleRDMResponse(
const uint8_t *data,
100 void HandleDiscoveryResponse(
const uint8_t *data,
101 unsigned int length);
105 void HandleDmxFrame(
const uint8_t *data,
unsigned int length);
106 bool PackAndSendRDMRequest(uint8_t label,
108 static const unsigned int RDM_PADDING_BYTES = 4;
120 unsigned int queue_size = 20);
123 void Stop() { m_impl->Stop(); }
126 return m_impl->GetDescriptor();
130 return m_impl->SendDMX(buffer);
135 m_controller->SendRDMRequest(request, on_complete);
139 m_impl->RunFullDiscovery(callback);
143 m_impl->RunIncrementalDiscovery(callback);
146 bool ChangeToReceiveMode() {
151 m_impl->SetDmxCallback(callback);
155 return m_impl->FetchDMX();
159 friend class ::RobeWidgetTest;
164 RobeWidgetImpl *m_impl;
A class used to hold a single universe of DMX data.
An RDM Controller that queues messages and only sends a single message at a time.
Classes that represent RDM commands.
Definitions and Interfaces to implement an RDMController that sends a single message at a time.
A RDM unique identifier (UID).
A 0 argument callback which can be called multiple times.
Definition Callback.h:129
Used to hold a single universe of DMX data.
Definition DmxBuffer.h:49
A BidirectionalFileDescriptor that also generates notifications when closed.
Definition Descriptor.h:283
Definition QueueingRDMController.h:88
The interface that can send RDM commands, as well as perform discovery operations.
Definition RDMControllerInterface.h:104
An asynchronous RDM Discovery algorithm.
Definition DiscoveryAgent.h:135
The interface used by the DiscoveryTarget to send RDM commands.
Definition DiscoveryAgent.h:53
ola::BaseCallback1< void, bool > MuteDeviceCallback
The callback run when a mute command completes.
Definition DiscoveryAgent.h:60
ola::BaseCallback2< void, const uint8_t *, unsigned int > BranchCallback
The callback run when a DUB command completes.
Definition DiscoveryAgent.h:73
ola::BaseCallback0< void > UnMuteDeviceCallback
The callback run when an unmute command completes.
Definition DiscoveryAgent.h:65
RDM Commands that represent requests (GET, SET or DISCOVER).
Definition RDMCommand.h:234
Represents a RDM UID.
Definition UID.h:57
Represents a set of RDM UIDs.
Definition UIDSet.h:48
Implements the RDM Discovery algorithm.
Code for Enttec USB Pro devices and others using the same protocol.
Code for supported devices and protocols.
ola::BaseCallback1< void, RDMReply * > RDMCallback
The callback run when a RDM request completes.
Definition RDMControllerInterface.h:52
ola::BaseCallback1< void, const ola::rdm::UIDSet & > RDMDiscoveryCallback
The callback run when a discovery operation completes.
Definition RDMControllerInterface.h:68
The namespace containing all OLA symbols.
Definition Credentials.cpp:44