Public Member Functions |
| Universe (unsigned int uid, class UniverseStore *store, ExportMap *export_map, Clock *clock) |
std::string | Name () const |
unsigned int | UniverseId () const |
merge_mode | MergeMode () const |
bool | IsActive () const |
uint8_t | ActivePriority () const |
const TimeInterval & | RDMDiscoveryInterval () const |
| Return the time between RDM discovery operations.
|
const TimeStamp & | LastRDMDiscovery () const |
| Get the time of the last discovery run.
|
void | SetName (const std::string &name) |
void | SetMergeMode (merge_mode merge_mode) |
void | SetRDMDiscoveryInterval (const TimeInterval &discovery_interval) |
bool | SetDMX (const DmxBuffer &buffer) |
const DmxBuffer & | GetDMX () const |
bool | AddPort (InputPort *port) |
bool | AddPort (OutputPort *port) |
bool | RemovePort (InputPort *port) |
bool | RemovePort (OutputPort *port) |
bool | ContainsPort (InputPort *port) const |
bool | ContainsPort (OutputPort *port) const |
unsigned int | InputPortCount () const |
unsigned int | OutputPortCount () const |
void | InputPorts (std::vector< InputPort * > *ports) |
void | OutputPorts (std::vector< OutputPort * > *ports) |
bool | AddSourceClient (Client *client) |
bool | RemoveSourceClient (Client *client) |
bool | ContainsSourceClient (Client *client) const |
unsigned int | SourceClientCount () const |
bool | AddSinkClient (Client *client) |
bool | RemoveSinkClient (Client *client) |
bool | ContainsSinkClient (Client *client) const |
unsigned int | SinkClientCount () const |
bool | PortDataChanged (InputPort *port) |
bool | SourceClientDataChanged (Client *client) |
void | CleanStaleSourceClients () |
| Clean old source clients.
|
void | SendRDMRequest (const ola::rdm::RDMRequest *request, ola::rdm::RDMCallback *callback) |
void | RunRDMDiscovery (ola::rdm::RDMDiscoveryCallback *on_complete, bool full=true) |
void | NewUIDList (OutputPort *port, const ola::rdm::UIDSet &uids) |
void | GetUIDs (ola::rdm::UIDSet *uids) const |
unsigned int | UIDCount () const |
bool | operator== (const Universe &other) |
template<class PortClass > |
bool | GenericAddPort (PortClass *port, vector< PortClass * > *ports) |
template<class PortClass > |
bool | GenericRemovePort (PortClass *port, vector< PortClass * > *ports, map< UID, PortClass * > *uid_map) |
template<class PortClass > |
bool | GenericContainsPort (PortClass *port, const vector< PortClass * > &ports) const |
Static Public Attributes |
static const char | K_FPS_VAR [] = "universe-dmx-frames" |
static const char | K_MERGE_HTP_STR [] = "htp" |
static const char | K_MERGE_LTP_STR [] = "ltp" |
static const char | K_UNIVERSE_INPUT_PORT_VAR [] = "universe-input-ports" |
static const char | K_UNIVERSE_MODE_VAR [] = "universe-mode" |
static const char | K_UNIVERSE_NAME_VAR [] = "universe-name" |
static const char | K_UNIVERSE_OUTPUT_PORT_VAR [] = "universe-output-ports" |
static const char | K_UNIVERSE_RDM_REQUESTS [] = "universe-rdm-requests" |
static const char | K_UNIVERSE_SINK_CLIENTS_VAR [] = "universe-sink-clients" |
static const char | K_UNIVERSE_SOURCE_CLIENTS_VAR [] = "universe-source-clients" |
static const char | K_UNIVERSE_UID_COUNT_VAR [] = "universe-uids" |
Assumption: A class that implements this MUST ensure that as time tends to infinity, the probably that the callback is run tends to 1. That is, there must be no way that a request can be dropped in such a way that the callback is never run. Doing so will either block all subsequent requests, or leak memory depending on the implementation.
Also the implementor of this class should re-write the transaction #, and possibly the UID (changing src UIDs isn't addressed by the RDM spec).
Implements ola::rdm::RDMControllerInterface.