allow some BaseNetwork functions to be overridden by inheriting classes; allow extension payload header length to be modified by the user;

pull/48/head
Bryan Biedenkapp 2 years ago
parent 926c9f0c77
commit d0e4e08b31

@ -196,27 +196,27 @@ namespace network
/** Digital Mobile Radio */ /** Digital Mobile Radio */
/// <summary>Reads DMR raw frame data from the DMR ring buffer.</summary> /// <summary>Reads DMR raw frame data from the DMR ring buffer.</summary>
UInt8Array readDMR(bool& ret, uint32_t& frameLength); virtual UInt8Array readDMR(bool& ret, uint32_t& frameLength);
/// <summary>Writes DMR frame data to the network.</summary> /// <summary>Writes DMR frame data to the network.</summary>
bool writeDMR(const dmr::data::Data& data); virtual bool writeDMR(const dmr::data::Data& data);
/// <summary>Helper to test if the DMR ring buffer has data.</summary> /// <summary>Helper to test if the DMR ring buffer has data.</summary>
bool hasDMRData() const; bool hasDMRData() const;
/** Project 25 */ /** Project 25 */
/// <summary>Reads P25 raw frame data from the P25 ring buffer.</summary> /// <summary>Reads P25 raw frame data from the P25 ring buffer.</summary>
UInt8Array readP25(bool& ret, uint32_t& frameLength); virtual UInt8Array readP25(bool& ret, uint32_t& frameLength);
/// <summary>Writes P25 LDU1 frame data to the network.</summary> /// <summary>Writes P25 LDU1 frame data to the network.</summary>
bool writeP25LDU1(const p25::lc::LC& control, const p25::data::LowSpeedData& lsd, const uint8_t* data, virtual bool writeP25LDU1(const p25::lc::LC& control, const p25::data::LowSpeedData& lsd, const uint8_t* data,
uint8_t frameType); uint8_t frameType);
/// <summary>Writes P25 LDU2 frame data to the network.</summary> /// <summary>Writes P25 LDU2 frame data to the network.</summary>
bool writeP25LDU2(const p25::lc::LC& control, const p25::data::LowSpeedData& lsd, const uint8_t* data); virtual bool writeP25LDU2(const p25::lc::LC& control, const p25::data::LowSpeedData& lsd, const uint8_t* data);
/// <summary>Writes P25 TDU frame data to the network.</summary> /// <summary>Writes P25 TDU frame data to the network.</summary>
bool writeP25TDU(const p25::lc::LC& control, const p25::data::LowSpeedData& lsd, const uint8_t controlByte = 0U); virtual bool writeP25TDU(const p25::lc::LC& control, const p25::data::LowSpeedData& lsd, const uint8_t controlByte = 0U);
/// <summary>Writes P25 TSDU frame data to the network.</summary> /// <summary>Writes P25 TSDU frame data to the network.</summary>
bool writeP25TSDU(const p25::lc::LC& control, const uint8_t* data); virtual bool writeP25TSDU(const p25::lc::LC& control, const uint8_t* data);
/// <summary>Writes P25 PDU frame data to the network.</summary> /// <summary>Writes P25 PDU frame data to the network.</summary>
bool writeP25PDU(const p25::data::DataHeader& header, const uint8_t currentBlock, const uint8_t* data, virtual bool writeP25PDU(const p25::data::DataHeader& header, const uint8_t currentBlock, const uint8_t* data,
const uint32_t len); const uint32_t len);
/// <summary>Helper to test if the P25 ring buffer has data.</summary> /// <summary>Helper to test if the P25 ring buffer has data.</summary>
@ -224,9 +224,9 @@ namespace network
/** Next Generation Digital Narrowband */ /** Next Generation Digital Narrowband */
/// <summary>Reads NXDN raw frame data from the NXDN ring buffer.</summary> /// <summary>Reads NXDN raw frame data from the NXDN ring buffer.</summary>
UInt8Array readNXDN(bool& ret, uint32_t& frameLength); virtual UInt8Array readNXDN(bool& ret, uint32_t& frameLength);
/// <summary>Writes NXDN frame data to the network.</summary> /// <summary>Writes NXDN frame data to the network.</summary>
bool writeNXDN(const nxdn::lc::RTCH& lc, const uint8_t* data, const uint32_t len); virtual bool writeNXDN(const nxdn::lc::RTCH& lc, const uint8_t* data, const uint32_t len);
/// <summary>Helper to test if the NXDN ring buffer has data.</summary> /// <summary>Helper to test if the NXDN ring buffer has data.</summary>
bool hasNXDNData() const; bool hasNXDNData() const;
@ -265,6 +265,10 @@ namespace network
std::mt19937 m_random; std::mt19937 m_random;
uint32_t* m_dmrStreamId;
uint32_t m_p25StreamId;
uint32_t m_nxdnStreamId;
/// <summary>Helper to update the RTP packet sequence.</summary> /// <summary>Helper to update the RTP packet sequence.</summary>
uint16_t pktSeq(bool reset = false); uint16_t pktSeq(bool reset = false);
@ -300,10 +304,6 @@ namespace network
UInt8Array createNXDN_Message(uint32_t& length, const nxdn::lc::RTCH& lc, const uint8_t* data, const uint32_t len); UInt8Array createNXDN_Message(uint32_t& length, const nxdn::lc::RTCH& lc, const uint8_t* data, const uint32_t len);
private: private:
uint32_t* m_dmrStreamId;
uint32_t m_p25StreamId;
uint32_t m_nxdnStreamId;
uint16_t m_pktSeq; uint16_t m_pktSeq;
p25::Audio m_audio; p25::Audio m_audio;

@ -63,7 +63,7 @@ namespace network
/// <summary>Format of the extension header payload contained within the packet.</summary> /// <summary>Format of the extension header payload contained within the packet.</summary>
__PROTECTED_PROPERTY(uint16_t, payloadType, PayloadType); __PROTECTED_PROPERTY(uint16_t, payloadType, PayloadType);
/// <summary>Length of the extension header payload (in 32-bit units).</summary> /// <summary>Length of the extension header payload (in 32-bit units).</summary>
__PROTECTED_READONLY_PROPERTY(uint16_t, payloadLength, PayloadLength); __PROTECTED_PROPERTY(uint16_t, payloadLength, PayloadLength);
}; };
} // namespace frame } // namespace frame
} // namespace network } // namespace network

Loading…
Cancel
Save

Powered by TurnKey Linux.