directly create data types
This commit is contained in:
parent
26645b5c4d
commit
e565437988
|
@ -961,79 +961,71 @@ void Packet::iStream(std::shared_ptr<bufferstream> stream)
|
|||
|
||||
switch (opcode) { // 3-...
|
||||
case OpPoll:
|
||||
createData<poll_data>(stream);
|
||||
_data = std::make_shared<poll_data>();
|
||||
break;
|
||||
case OpPollReply:
|
||||
createData<pollreply_data>(stream);
|
||||
_data = std::make_shared<pollreply_data>();
|
||||
break;
|
||||
case OpIpProg:
|
||||
createData<ipprog_data>(stream);
|
||||
_data = std::make_shared<ipprog_data>();
|
||||
break;
|
||||
case OpIpProgReply:
|
||||
createData<ipprogreply_data>(stream);
|
||||
_data = std::make_shared<ipprogreply_data>();
|
||||
break;
|
||||
case OpAddress:
|
||||
createData<address_data>(stream);
|
||||
_data = std::make_shared<address_data>();
|
||||
break;
|
||||
case OpDiagData:
|
||||
createData<diagdata_data>(stream);
|
||||
_data = std::make_shared<diagdata_data>();
|
||||
break;
|
||||
case OpTimeCode:
|
||||
createData<timecode_data>(stream);
|
||||
_data = std::make_shared<timecode_data>();
|
||||
break;
|
||||
case OpCommand:
|
||||
createData<command_data>(stream);
|
||||
_data = std::make_shared<command_data>();
|
||||
break;
|
||||
case OpTrigger:
|
||||
createData<trigger_data>(stream);
|
||||
_data = std::make_shared<trigger_data>();
|
||||
break;
|
||||
case OpDmx:
|
||||
createData<dmx_data>(stream);
|
||||
_data = std::make_shared<dmx_data>();
|
||||
break;
|
||||
case OpSync:
|
||||
createData<sync_data>(stream);
|
||||
_data = std::make_shared<sync_data>();
|
||||
break;
|
||||
case OpNzs:
|
||||
{
|
||||
createData<nzs_data>(stream);
|
||||
if (!_data)
|
||||
break;
|
||||
#ifdef RTTI_ENABLED
|
||||
auto data = std::dynamic_pointer_cast<nzs_data>(_data);
|
||||
#else
|
||||
auto data = std::static_pointer_cast<nzs_data>(_data);
|
||||
#endif
|
||||
if (data->data[0] == VLC::START_CODE)
|
||||
_data = std::make_shared<vlc_data>(data.get());
|
||||
}
|
||||
_data = std::make_shared<nzs_data>();
|
||||
break;
|
||||
case OpInput:
|
||||
createData<input_data>(stream);
|
||||
_data = std::make_shared<input_data>();
|
||||
break;
|
||||
case OpFirmwareMaster:
|
||||
createData<firmwaremaster_data>(stream);
|
||||
_data = std::make_shared<firmwaremaster_data>();
|
||||
break;
|
||||
case OpFirmwareReply:
|
||||
createData<firmwarereply_data>(stream);
|
||||
_data = std::make_shared<firmwarereply_data>();
|
||||
break;
|
||||
case OpTodRequest:
|
||||
createData<todrequest_data>(stream);
|
||||
_data = std::make_shared<todrequest_data>();
|
||||
break;
|
||||
case OpTodData:
|
||||
createData<toddata_data>(stream);
|
||||
_data = std::make_shared<toddata_data>();
|
||||
break;
|
||||
case OpTodControl:
|
||||
createData<todcontrol_data>(stream);
|
||||
_data = std::make_shared<todcontrol_data>();
|
||||
break;
|
||||
case OpRdm:
|
||||
createData<rdm_data>(stream);
|
||||
_data = std::make_shared<rdm_data>();
|
||||
break;
|
||||
case OpRdmSub:
|
||||
createData<rdmsub_data>(stream);
|
||||
_data = std::make_shared<rdmsub_data>();
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
if (_data)
|
||||
_data->iStream(stream);
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue