Open Lighting Architecture 0.10.9
Loading...
Searching...
No Matches
RDMControllerAdaptor.h
Go to the documentation of this file.
1/*
2 * This library is free software; you can redistribute it and/or
3 * modify it under the terms of the GNU Lesser General Public
4 * License as published by the Free Software Foundation; either
5 * version 2.1 of the License, or (at your option) any later version.
6 *
7 * This library is distributed in the hope that it will be useful,
8 * but WITHOUT ANY WARRANTY; without even the implied warranty of
9 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10 * Lesser General Public License for more details.
11 *
12 * You should have received a copy of the GNU Lesser General Public
13 * License along with this library; if not, write to the Free Software
14 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
15 *
16 * RDMControllerAdaptor.h
17 * Allows an RDMControllerInterface to be used as an
18 * DiscoverableRDMControllerInterface.
19 * Copyright (C) 2013 Simon Newton
20 */
21
31#ifndef INCLUDE_OLA_RDM_RDMCONTROLLERADAPTOR_H_
32#define INCLUDE_OLA_RDM_RDMCONTROLLERADAPTOR_H_
33
34#include <ola/Callback.h>
36#include <ola/rdm/UIDSet.h>
37
38namespace ola {
39namespace rdm {
40
46 public:
47 // Ownership is not transferred.
49 RDMControllerInterface *interface)
50 : m_uid(uid),
51 m_interface(interface) {
52 }
53 void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete) {
54 m_interface->SendRDMRequest(request, on_complete);
55 }
56
58 RunDiscovery(callback);
59 }
61 RunDiscovery(callback);
62 }
63
64 private:
65 const UID m_uid;
66 RDMControllerInterface *m_interface;
67
68 void RunDiscovery(RDMDiscoveryCallback *callback) {
69 UIDSet uids;
70 uids.AddUID(m_uid);
71 callback->Run(uids);
72 }
73};
74} // namespace rdm
75} // namespace ola
76#endif // INCLUDE_OLA_RDM_RDMCONTROLLERADAPTOR_H_
Definitions and Interfaces to implement an RDMController that sends a single message at a time.
A set of UIDs.
The base class for all 1 argument callbacks.
Definition Callback.h:982
Definition RDMControllerAdaptor.h:45
void RunFullDiscovery(RDMDiscoveryCallback *callback)
Start a full discovery operation.
Definition RDMControllerAdaptor.h:57
void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete)
Send a RDM command.
Definition RDMControllerAdaptor.h:53
void RunIncrementalDiscovery(RDMDiscoveryCallback *callback)
Start an incremental discovery operation.
Definition RDMControllerAdaptor.h:60
The interface that can send RDM commands, as well as perform discovery operations.
Definition RDMControllerInterface.h:104
The interface that can send RDMRequest.
Definition RDMControllerInterface.h:73
virtual void SendRDMRequest(RDMRequest *request, RDMCallback *on_complete)=0
Send a RDM command.
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
void AddUID(const UID &uid)
Add a UID to the set.
Definition UIDSet.h:105
The namespace containing all OLA symbols.
Definition Credentials.cpp:44