use the widget mode to determine the appropriate RDM configuration
This commit is contained in:
parent
54b2335c98
commit
2fdef29242
|
@ -16,6 +16,7 @@ target_link_libraries(${PROJECT_NAME}
|
|||
PUBLIC
|
||||
LCP::BufferStream
|
||||
LCP::DMX
|
||||
LCP::RDM
|
||||
)
|
||||
|
||||
set_target_properties(${PROJECT_NAME} PROPERTIES VERSION ${PROJECT_VERSION})
|
||||
|
|
|
@ -23,8 +23,6 @@
|
|||
*/
|
||||
#include "widget.h"
|
||||
|
||||
#include <chrono>
|
||||
|
||||
namespace ENTTEC {
|
||||
|
||||
Widget::Widget()
|
||||
|
@ -36,6 +34,8 @@ Widget::Widget()
|
|||
, usb_mode(USBunknown)
|
||||
, rx_update_mode_(Pro::RxNotifyAlways)
|
||||
, token_data_changed_(nullptr)
|
||||
, rdm_controller_(nullptr)
|
||||
, rdm_responder_(nullptr)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -52,6 +52,10 @@ Widget::~Widget()
|
|||
default:
|
||||
break;
|
||||
}
|
||||
if (rdm_controller_)
|
||||
delete rdm_controller_;
|
||||
if (rdm_responder_)
|
||||
delete rdm_responder_;
|
||||
}
|
||||
|
||||
|
||||
|
@ -112,6 +116,10 @@ void Widget::setModeController()
|
|||
std::scoped_lock lock(mtx_metadata_);
|
||||
token_data_changed_ = onDataChange([this](DMX::Universe*){sendDmx();});
|
||||
device_class_ = DMX::CONTROLLER;
|
||||
if (rdm_responder_)
|
||||
delete rdm_responder_;
|
||||
if (featureRDM())
|
||||
rdm_controller_ = new RDM::Controller();
|
||||
}
|
||||
|
||||
|
||||
|
@ -125,10 +133,16 @@ void Widget::setModeBridge(Pro::DMX_RX_MODE mode)
|
|||
std::scoped_lock lock(mtx_metadata_);
|
||||
token_data_changed_ = nullptr;
|
||||
rx_update_mode_ = mode;
|
||||
if (rdm_controller_)
|
||||
delete rdm_controller_;
|
||||
if (featureRDM())
|
||||
device_class_ = DMX::RESPONDER;
|
||||
{
|
||||
RDM::UID id(serial_number, 0x454E); // Use the ENTTEC manufacturer ID?
|
||||
rdm_responder_ = new RDM::Responder(id);
|
||||
device_class_ = DMX::RESPONDER;
|
||||
}
|
||||
else
|
||||
device_class_ = DMX::RECEIVER;
|
||||
device_class_ = DMX::RECEIVER;
|
||||
}
|
||||
auto msg = std::make_shared<Pro::MsgRecieveDMXOnChange>();
|
||||
msg->mode = mode;
|
||||
|
|
|
@ -25,9 +25,11 @@
|
|||
|
||||
#include "pro.h"
|
||||
|
||||
#include <rdm_controller.h>
|
||||
#include <cstring>
|
||||
#include <future>
|
||||
#include <mutex>
|
||||
#include <responder.h>
|
||||
#include <universe.h>
|
||||
#include <vector>
|
||||
|
||||
|
@ -148,6 +150,9 @@ private:
|
|||
|
||||
mutable std::mutex mtx_metadata_;
|
||||
std::shared_ptr<void> token_data_changed_;
|
||||
|
||||
RDM::Controller *rdm_controller_;
|
||||
RDM::Responder *rdm_responder_;
|
||||
};
|
||||
|
||||
} // namespace ENTTEC
|
||||
|
|
Loading…
Reference in New Issue