@ -268,52 +268,15 @@ void HostBridge::processP25Network(uint8_t* buffer, uint32_t length)
}
}
int count = 0 ;
int count = 0 ;
switch ( duid )
switch ( duid ) {
{
case DUID : : LDU1 :
case DUID : : LDU1 :
if ( ( data [ 0U ] = = DFSIFrameType : : LDU1_VOICE1 ) & & ( data [ 22U ] = = DFSIFrameType : : LDU1_VOICE2 ) & &
{
( data [ 36U ] = = DFSIFrameType : : LDU1_VOICE3 ) & & ( data [ 53U ] = = DFSIFrameType : : LDU1_VOICE4 ) & &
( data [ 70U ] = = DFSIFrameType : : LDU1_VOICE5 ) & & ( data [ 87U ] = = DFSIFrameType : : LDU1_VOICE6 ) & &
( data [ 104U ] = = DFSIFrameType : : LDU1_VOICE7 ) & & ( data [ 121U ] = = DFSIFrameType : : LDU1_VOICE8 ) & &
( data [ 138U ] = = DFSIFrameType : : LDU1_VOICE9 ) ) {
dfsi : : LC dfsiLC = dfsi : : LC ( control , lsd ) ;
dfsi : : LC dfsiLC = dfsi : : LC ( control , lsd ) ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE1 ) ;
uint8_t missing = BaseNetwork : : reconstructLDUVectors ( data . get ( ) , frameLength , & dfsiLC , DUID : : LDU1 , m_netLDU1 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 10U ) ;
if ( missing > 0U ) {
count + = DFSI_LDU1_VOICE1_FRAME_LENGTH_BYTES ;
LogWarning ( LOG_NET , P25_LDU1_STR " , missing %u LDU1 voice frames, srcId = %u, dstId = %u " , missing , srcId , dstId ) ;
}
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE2 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 26U ) ;
count + = DFSI_LDU1_VOICE2_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE3 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 55U ) ;
count + = DFSI_LDU1_VOICE3_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE4 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 80U ) ;
count + = DFSI_LDU1_VOICE4_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE5 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 105U ) ;
count + = DFSI_LDU1_VOICE5_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE6 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 130U ) ;
count + = DFSI_LDU1_VOICE6_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE7 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 155U ) ;
count + = DFSI_LDU1_VOICE7_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE8 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 180U ) ;
count + = DFSI_LDU1_VOICE8_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU1_VOICE9 ) ;
dfsiLC . decodeLDU1 ( data . get ( ) + count , m_netLDU1 + 204U ) ;
count + = DFSI_LDU1_VOICE9_FRAME_LENGTH_BYTES ;
LogInfoEx ( LOG_NET , P25_LDU1_STR " audio, srcId = %u, dstId = %u " , srcId , dstId ) ;
LogInfoEx ( LOG_NET , P25_LDU1_STR " audio, srcId = %u, dstId = %u " , srcId , dstId ) ;
@ -322,49 +285,13 @@ void HostBridge::processP25Network(uint8_t* buffer, uint32_t length)
}
}
break ;
break ;
case DUID : : LDU2 :
case DUID : : LDU2 :
if ( ( data [ 0U ] = = DFSIFrameType : : LDU2_VOICE10 ) & & ( data [ 22U ] = = DFSIFrameType : : LDU2_VOICE11 ) & &
{
( data [ 36U ] = = DFSIFrameType : : LDU2_VOICE12 ) & & ( data [ 53U ] = = DFSIFrameType : : LDU2_VOICE13 ) & &
( data [ 70U ] = = DFSIFrameType : : LDU2_VOICE14 ) & & ( data [ 87U ] = = DFSIFrameType : : LDU2_VOICE15 ) & &
( data [ 104U ] = = DFSIFrameType : : LDU2_VOICE16 ) & & ( data [ 121U ] = = DFSIFrameType : : LDU2_VOICE17 ) & &
( data [ 138U ] = = DFSIFrameType : : LDU2_VOICE18 ) ) {
dfsi : : LC dfsiLC = dfsi : : LC ( control , lsd ) ;
dfsi : : LC dfsiLC = dfsi : : LC ( control , lsd ) ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE10 ) ;
uint8_t missing = BaseNetwork : : reconstructLDUVectors ( data . get ( ) , frameLength , & dfsiLC , DUID : : LDU2 , m_netLDU2 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 10U ) ;
if ( missing > 0U ) {
count + = DFSI_LDU2_VOICE10_FRAME_LENGTH_BYTES ;
LogWarning ( LOG_NET , P25_LDU2_STR " , missing %u LDU2 voice frames, srcId = %u, dstId = %u " , missing , srcId , dstId ) ;
}
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE11 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 26U ) ;
count + = DFSI_LDU2_VOICE11_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE12 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 55U ) ;
count + = DFSI_LDU2_VOICE12_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE13 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 80U ) ;
count + = DFSI_LDU2_VOICE13_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE14 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 105U ) ;
count + = DFSI_LDU2_VOICE14_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE15 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 130U ) ;
count + = DFSI_LDU2_VOICE15_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE16 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 155U ) ;
count + = DFSI_LDU2_VOICE16_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE17 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 180U ) ;
count + = DFSI_LDU2_VOICE17_FRAME_LENGTH_BYTES ;
dfsiLC . setFrameType ( DFSIFrameType : : LDU2_VOICE18 ) ;
dfsiLC . decodeLDU2 ( data . get ( ) + count , m_netLDU2 + 204U ) ;
count + = DFSI_LDU2_VOICE18_FRAME_LENGTH_BYTES ;
LogInfoEx ( LOG_NET , P25_LDU2_STR " audio, algo = $%02X, kid = $%04X " , dfsiLC . control ( ) - > getAlgId ( ) , dfsiLC . control ( ) - > getKId ( ) ) ;
LogInfoEx ( LOG_NET , P25_LDU2_STR " audio, algo = $%02X, kid = $%04X " , dfsiLC . control ( ) - > getAlgId ( ) , dfsiLC . control ( ) - > getKId ( ) ) ;