Fix NXDN audio issue and M17 callsign encode from modes with numeric IDs

pull/8/head
Doug McLain 3 years ago
parent f9d2d6f1b3
commit 47387307b0

@ -93,6 +93,16 @@ CCallsign::CCallsign(const char *sz, uint32_t dmrid, uint16_t nxdnid)
} }
} }
g_DmridDir.Unlock(); g_DmridDir.Unlock();
if ( m_uiNXDNid == 0 )
{
g_NXDNidDir.Lock();
{
m_uiNXDNid = g_NXDNidDir.FindNXDNid(*this);
}
g_NXDNidDir.Unlock();
}
CSIn();
} }
else if ( m_uiNXDNid != 0 ) else if ( m_uiNXDNid != 0 )
{ {
@ -105,6 +115,16 @@ CCallsign::CCallsign(const char *sz, uint32_t dmrid, uint16_t nxdnid)
} }
} }
g_NXDNidDir.Unlock(); g_NXDNidDir.Unlock();
if ( m_uiDmrid == 0 )
{
g_DmridDir.Lock();
{
m_uiDmrid = g_DmridDir.FindDmrid(*this);
}
g_DmridDir.Unlock();
}
CSIn();
} }
} }

@ -103,7 +103,7 @@ void CNXDNProtocol::Task(void)
else if ( IsValidDvHeaderPacket(Ip, Buffer, Header) ) else if ( IsValidDvHeaderPacket(Ip, Buffer, Header) )
{ {
// node linked and callsign muted? // node linked and callsign muted?
if ( g_GateKeeper.MayTransmit(Header->GetMyCallsign(), Ip, EProtocol::ysf, Header->GetRpt2Module()) ) if ( g_GateKeeper.MayTransmit(Header->GetMyCallsign(), Ip, EProtocol::nxdn, Header->GetRpt2Module()) )
{ {
// handle it // handle it
OnDvHeaderPacketIn(Header, Ip); OnDvHeaderPacketIn(Header, Ip);
@ -351,7 +351,7 @@ bool CNXDNProtocol::IsValidDisconnectPacket(const CBuffer &Buffer, CCallsign *ca
{ {
uint8_t tag[] = { 'N','X','D','N','U' }; uint8_t tag[] = { 'N','X','D','N','U' };
if ( (Buffer.size() == 14) && (Buffer.Compare(tag, sizeof(tag)) == 0) ) if ( (Buffer.size() == 17) && (Buffer.Compare(tag, sizeof(tag)) == 0) )
{ {
return true; return true;
} }
@ -572,6 +572,7 @@ bool CNXDNProtocol::EncodeNXDNPacket(const CDvHeaderPacket &Header, uint32_t seq
} }
get_sacch(&Buffer.data()[11U]); get_sacch(&Buffer.data()[11U]);
memset(ambe, 0, 28);
for(int i = 0; i < 4; ++i){ for(int i = 0; i < 4; ++i){
decode(DvFrames[i].GetCodecData(ECodecType::dmr), ambe+(i*7)); decode(DvFrames[i].GetCodecData(ECodecType::dmr), ambe+(i*7));
} }

Loading…
Cancel
Save

Powered by TurnKey Linux.