Open Lighting Architecture  0.9.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Types | Public Member Functions | Static Public Attributes | List of all members
ola::Universe Class Reference
Inheritance diagram for ola::Universe:
ola::rdm::RDMControllerInterface

Classes

struct  broadcast_request_tracker

Public Types

enum  merge_mode { MERGE_HTP, MERGE_LTP }

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 TimeIntervalRDMDiscoveryInterval () const
 Return the time between RDM discovery operations.
const TimeStampLastRDMDiscovery () 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 DmxBufferGetDMX () 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"

Member Function Documentation

const TimeInterval& ola::Universe::RDMDiscoveryInterval ( ) const
inline

Return the time between RDM discovery operations.

Returns
the amount of time in seconds between RDM discovery runs. A value of 0 means that periodic discovery is disabled for this universe.
void ola::Universe::SendRDMRequest ( const ola::rdm::RDMRequest request,
ola::rdm::RDMCallback on_complete 
)
virtual

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.

void ola::Universe::SetRDMDiscoveryInterval ( const TimeInterval discovery_interval)
inline

Set the time between periodic RDM discovery operations.

unsigned int ola::Universe::UIDCount ( ) const

Return the number of uids in the universe


The documentation for this class was generated from the following files: