use the MessageData creator to instantiate the correct specialized type
This commit is contained in:
parent
d7d64fa13c
commit
4c0bf5ded8
|
@ -63,6 +63,17 @@ void DmxWidget::close()
|
||||||
*/
|
*/
|
||||||
void DmxWidget::parseMessageBuffer()
|
void DmxWidget::parseMessageBuffer()
|
||||||
{
|
{
|
||||||
|
OperatingMode other_side = USBunknown;
|
||||||
|
switch (usb_mode) {
|
||||||
|
case ENTTEC::Widget::USBdevice:
|
||||||
|
other_side = USBhost;
|
||||||
|
break;
|
||||||
|
case ENTTEC::Widget::USBhost:
|
||||||
|
other_side = USBdevice;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
uint16_t length;
|
uint16_t length;
|
||||||
const int fixed_length = 5; // start + label + 2xlength + end
|
const int fixed_length = 5; // start + label + 2xlength + end
|
||||||
auto fast_forward = [this](int offset = 0) {
|
auto fast_forward = [this](int offset = 0) {
|
||||||
|
@ -90,7 +101,7 @@ void DmxWidget::parseMessageBuffer()
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// make a new message data
|
// make a new message data
|
||||||
auto msg = std::make_shared<ENTTEC::Pro::MessageData>((uint8_t)message_rx_buffer_[1]);
|
auto msg = MessageDataFactory((MESSAGE_LABEL)message_rx_buffer_[1], other_side);
|
||||||
// fill it with data
|
// fill it with data
|
||||||
std::shared_ptr<bufferstream> stream(new bufferstream(
|
std::shared_ptr<bufferstream> stream(new bufferstream(
|
||||||
reinterpret_cast<uint8_t*>(message_rx_buffer_.data())+fixed_length-1,
|
reinterpret_cast<uint8_t*>(message_rx_buffer_.data())+fixed_length-1,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user