added version in network properties protocol message
This commit is contained in:
parent
f53d28fc11
commit
16baee490a
4 changed files with 43 additions and 22 deletions
|
@ -3,8 +3,6 @@ bin_PROGRAMS = llcon
|
||||||
llcon_SOURCES = ../src/buffer.cpp \
|
llcon_SOURCES = ../src/buffer.cpp \
|
||||||
../src/main.cpp \
|
../src/main.cpp \
|
||||||
../src/socket.cpp \
|
../src/socket.cpp \
|
||||||
../src/audiocompr.cpp \
|
|
||||||
../src/resample.cpp \
|
|
||||||
../src/channel.cpp \
|
../src/channel.cpp \
|
||||||
../src/util.cpp \
|
../src/util.cpp \
|
||||||
../src/llconclientdlg.cpp \
|
../src/llconclientdlg.cpp \
|
||||||
|
@ -24,9 +22,6 @@ llcon_SOURCES = ../src/buffer.cpp \
|
||||||
../src/buffer.h \
|
../src/buffer.h \
|
||||||
../src/global.h \
|
../src/global.h \
|
||||||
../src/socket.h \
|
../src/socket.h \
|
||||||
../src/audiocompr.h \
|
|
||||||
../src/resample.h \
|
|
||||||
../src/resamplefilter.h \
|
|
||||||
../src/channel.h \
|
../src/channel.h \
|
||||||
../src/util.h \
|
../src/util.h \
|
||||||
../src/client.h \
|
../src/client.h \
|
||||||
|
|
|
@ -844,6 +844,7 @@ void CChannel::CreateNetTranspPropsMessFromCurrentSettings()
|
||||||
1, // right now we only use mono
|
1, // right now we only use mono
|
||||||
SYSTEM_SAMPLE_RATE, // right now only one sample rate is supported
|
SYSTEM_SAMPLE_RATE, // right now only one sample rate is supported
|
||||||
CT_CELT, // always CELT coding
|
CT_CELT, // always CELT coding
|
||||||
|
0,
|
||||||
0 );
|
0 );
|
||||||
|
|
||||||
// send current network transport properties
|
// send current network transport properties
|
||||||
|
|
|
@ -15,9 +15,12 @@ Protocol message definition
|
||||||
MAIN FRAME
|
MAIN FRAME
|
||||||
----------
|
----------
|
||||||
|
|
||||||
+-------------+------------+------------+------------------+--------------+-------------+
|
+-------------+------------+------------+------------------+ ...
|
||||||
| 2 bytes TAG | 2 bytes ID | 1 byte cnt | 2 bytes length n | n bytes data | 2 bytes CRC |
|
| 2 bytes TAG | 2 bytes ID | 1 byte cnt | 2 bytes length n | ...
|
||||||
+-------------+------------+------------+------------------+--------------+-------------+
|
+-------------+------------+------------+------------------+ ...
|
||||||
|
... --------------+-------------+
|
||||||
|
... n bytes data | 2 bytes CRC |
|
||||||
|
... --------------+-------------+
|
||||||
|
|
||||||
- TAG is an all zero bit word to identify protocol messages
|
- TAG is an all zero bit word to identify protocol messages
|
||||||
- message ID defined by the defines PROTMESSID_x
|
- message ID defined by the defines PROTMESSID_x
|
||||||
|
@ -77,10 +80,12 @@ MESSAGES
|
||||||
|
|
||||||
for each connected client append following data:
|
for each connected client append following data:
|
||||||
|
|
||||||
+-------------------+--------------------+------------------+----------------------+
|
+-------------------+--------------------+------------------+ ...
|
||||||
| 1 byte channel ID | 4 bytes IP address | 2 bytes number n | n bytes UTF-8 string |
|
| 1 byte channel ID | 4 bytes IP address | 2 bytes number n | ...
|
||||||
+-------------------+--------------------+------------------+----------------------+
|
+-------------------+--------------------+------------------+ ...
|
||||||
|
... ----------------------+
|
||||||
|
... n bytes UTF-8 string |
|
||||||
|
... ----------------------+
|
||||||
|
|
||||||
- Request connected clients list: PROTMESSID_REQ_CONN_CLIENTS_LIST
|
- Request connected clients list: PROTMESSID_REQ_CONN_CLIENTS_LIST
|
||||||
|
|
||||||
|
@ -112,9 +117,15 @@ MESSAGES
|
||||||
|
|
||||||
- Properties for network transport: PROTMESSID_NETW_TRANSPORT_PROPS
|
- Properties for network transport: PROTMESSID_NETW_TRANSPORT_PROPS
|
||||||
|
|
||||||
+-------------------+------------------+-----------------+------------------+-----------------------+----------------------+
|
+-------------------+------------------+-----------------+ ...
|
||||||
| 4 bytes netw size | 4 bytes aud size | 1 byte num chan | 4 bytes sam rate | 2 bytes audiocod type | 4 bytes audiocod arg |
|
| 4 bytes netw size | 4 bytes aud size | 1 byte num chan | ...
|
||||||
+-------------------+------------------+-----------------+------------------+-----------------------+----------------------+
|
+-------------------+------------------+-----------------+ ...
|
||||||
|
... ------------------+-----------------------+ ...
|
||||||
|
... 4 bytes sam rate | 2 bytes audiocod type | ...
|
||||||
|
... ------------------+-----------------------+ ...
|
||||||
|
... -----------------+----------------------+
|
||||||
|
... 2 bytes version | 4 bytes audiocod arg |
|
||||||
|
... -----------------+----------------------+
|
||||||
|
|
||||||
- "netw size": length of the network packet in bytes
|
- "netw size": length of the network packet in bytes
|
||||||
- "aud size": length of the mono audio block size in samples
|
- "aud size": length of the mono audio block size in samples
|
||||||
|
@ -125,6 +136,7 @@ MESSAGES
|
||||||
- 1: IMA-ADPCM
|
- 1: IMA-ADPCM
|
||||||
- 2: MS-ADPCM
|
- 2: MS-ADPCM
|
||||||
- 3: CELT
|
- 3: CELT
|
||||||
|
- "version": version of the audio coder, if not used this value shall be set to 0
|
||||||
- "audiocod arg": argument for the audio coder, if not used this value shall be set to 0
|
- "audiocod arg": argument for the audio coder, if not used this value shall be set to 0
|
||||||
|
|
||||||
|
|
||||||
|
@ -810,8 +822,9 @@ void CProtocol::CreateNetwTranspPropsMes ( const CNetworkTransportProps& NetTrPr
|
||||||
unsigned int iPos = 0; // init position pointer
|
unsigned int iPos = 0; // init position pointer
|
||||||
|
|
||||||
// size of current message body
|
// size of current message body
|
||||||
const int iEntrLen = 4 /* netw size */ + 4 /* aud size */ + 1 /* num chan */ +
|
const int iEntrLen = 4 /* netw size */ + 4 /* aud size */ +
|
||||||
4 /* sam rate */ + 2 /* audiocod type */ + 4 /* audiocod arg */;
|
1 /* num chan */ + 4 /* sam rate */ + 2 /* audiocod type */ +
|
||||||
|
2 /* version */ + 4 /* audiocod arg */;
|
||||||
|
|
||||||
// build data vector
|
// build data vector
|
||||||
CVector<uint8_t> vecData ( iEntrLen );
|
CVector<uint8_t> vecData ( iEntrLen );
|
||||||
|
@ -836,6 +849,10 @@ void CProtocol::CreateNetwTranspPropsMes ( const CNetworkTransportProps& NetTrPr
|
||||||
PutValOnStream ( vecData, iPos,
|
PutValOnStream ( vecData, iPos,
|
||||||
static_cast<uint32_t> ( NetTrProps.eAudioCodingType ), 2 );
|
static_cast<uint32_t> ( NetTrProps.eAudioCodingType ), 2 );
|
||||||
|
|
||||||
|
// version (2 bytes)
|
||||||
|
PutValOnStream ( vecData, iPos,
|
||||||
|
static_cast<uint32_t> ( NetTrProps.iVersion ), 2 );
|
||||||
|
|
||||||
// argument for the audio coder (4 bytes)
|
// argument for the audio coder (4 bytes)
|
||||||
PutValOnStream ( vecData, iPos,
|
PutValOnStream ( vecData, iPos,
|
||||||
static_cast<uint32_t> ( NetTrProps.iAudioCodingArg ), 4 );
|
static_cast<uint32_t> ( NetTrProps.iAudioCodingArg ), 4 );
|
||||||
|
@ -849,8 +866,9 @@ bool CProtocol::EvaluateNetwTranspPropsMes ( const CVector<uint8_t>& vecData )
|
||||||
CNetworkTransportProps ReceivedNetwTranspProps;
|
CNetworkTransportProps ReceivedNetwTranspProps;
|
||||||
|
|
||||||
// size of current message body
|
// size of current message body
|
||||||
const int iEntrLen = 4 /* netw size */ + 4 /* aud size */ + 1 /* num chan */ +
|
const int iEntrLen = 4 /* netw size */ + 4 /* aud size */ +
|
||||||
4 /* sam rate */ + 2 /* audiocod type */ + 4 /* audiocod arg */;
|
1 /* num chan */ + 4 /* sam rate */ + 2 /* audiocod type */ +
|
||||||
|
2 /* version */ + 4 /* audiocod arg */;
|
||||||
|
|
||||||
// check size
|
// check size
|
||||||
if ( vecData.Size() != iEntrLen )
|
if ( vecData.Size() != iEntrLen )
|
||||||
|
@ -885,7 +903,8 @@ bool CProtocol::EvaluateNetwTranspPropsMes ( const CVector<uint8_t>& vecData )
|
||||||
|
|
||||||
if ( ( iRecCodingType != CT_NONE ) &&
|
if ( ( iRecCodingType != CT_NONE ) &&
|
||||||
( iRecCodingType != CT_IMAADPCM ) &&
|
( iRecCodingType != CT_IMAADPCM ) &&
|
||||||
( iRecCodingType != CT_MSADPCM ) )
|
( iRecCodingType != CT_MSADPCM ) &&
|
||||||
|
( iRecCodingType != CT_CELT ) )
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -893,6 +912,10 @@ bool CProtocol::EvaluateNetwTranspPropsMes ( const CVector<uint8_t>& vecData )
|
||||||
ReceivedNetwTranspProps.eAudioCodingType =
|
ReceivedNetwTranspProps.eAudioCodingType =
|
||||||
static_cast<EAudComprType> ( iRecCodingType );
|
static_cast<EAudComprType> ( iRecCodingType );
|
||||||
|
|
||||||
|
// version (2 bytes)
|
||||||
|
ReceivedNetwTranspProps.iVersion =
|
||||||
|
static_cast<unsigned int> ( GetValFromStream ( vecData, iPos, 2 ) );
|
||||||
|
|
||||||
// argument for the audio coder (4 bytes)
|
// argument for the audio coder (4 bytes)
|
||||||
ReceivedNetwTranspProps.iAudioCodingArg =
|
ReceivedNetwTranspProps.iAudioCodingArg =
|
||||||
static_cast<unsigned int> ( GetValFromStream ( vecData, iPos, 4 ) );
|
static_cast<unsigned int> ( GetValFromStream ( vecData, iPos, 4 ) );
|
||||||
|
|
|
@ -430,9 +430,10 @@ public:
|
||||||
|
|
||||||
CNetworkTransportProps ( const unsigned int iNNPS, const unsigned int iNMABS,
|
CNetworkTransportProps ( const unsigned int iNNPS, const unsigned int iNMABS,
|
||||||
const unsigned int iNNACH, const unsigned int iNSR,
|
const unsigned int iNNACH, const unsigned int iNSR,
|
||||||
const EAudComprType eNACT, const int iNACA ) :
|
const EAudComprType eNACT, const unsigned int iNVers, const int iNACA ) :
|
||||||
iNetworkPacketSize ( iNNPS ), iMonoAudioBlockSize ( iNMABS ),
|
iNetworkPacketSize ( iNNPS ), iMonoAudioBlockSize ( iNMABS ),
|
||||||
iNumAudioChannels ( iNNACH ), iSampleRate ( iNSR ), eAudioCodingType ( eNACT ),
|
iNumAudioChannels ( iNNACH ), iSampleRate ( iNSR ),
|
||||||
|
eAudioCodingType ( eNACT ), iVersion ( iNVers ),
|
||||||
iAudioCodingArg ( iNACA ) {}
|
iAudioCodingArg ( iNACA ) {}
|
||||||
|
|
||||||
unsigned int iNetworkPacketSize;
|
unsigned int iNetworkPacketSize;
|
||||||
|
@ -440,6 +441,7 @@ public:
|
||||||
unsigned int iNumAudioChannels;
|
unsigned int iNumAudioChannels;
|
||||||
unsigned int iSampleRate;
|
unsigned int iSampleRate;
|
||||||
EAudComprType eAudioCodingType;
|
EAudComprType eAudioCodingType;
|
||||||
|
unsigned int iVersion;
|
||||||
int iAudioCodingArg;
|
int iAudioCodingArg;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue