From 77fdfcaa0cdedc095b36b08d682ddf3704f8977d Mon Sep 17 00:00:00 2001 From: Daniel Masato Date: Sat, 18 Apr 2020 11:20:31 +0100 Subject: [PATCH] Refactor signal to slot connections using recursive templates This change allows the maximum number of supported clients to be adjusted in a single place rather than in multiple places. Note that this change requires Qt5's new signal/slot syntax (https://wiki.qt.io/New_Signal_Slot_Syntax), but is still backwards compatible with Qt4. Code bloat will be eventually reduced by removing support for Qt4. --- src/audiomixerboard.cpp | 33 +++++++- src/audiomixerboard.h | 145 ++++++++++++++++++++------------- src/global.h | 6 +- src/server.cpp | 60 +++++++++++++- src/server.h | 175 +++++++++++++++++++++++++++------------- 5 files changed, 305 insertions(+), 114 deletions(-) diff --git a/src/audiomixerboard.cpp b/src/audiomixerboard.cpp index a52858f6..6569c3f6 100755 --- a/src/audiomixerboard.cpp +++ b/src/audiomixerboard.cpp @@ -562,6 +562,10 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : // Connections ------------------------------------------------------------- +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + connectFaderSignalsToMixerBoardSlots(); + +#else // CODE TAG: MAX_NUM_CHANNELS_TAG // make sure we have MAX_NUM_CHANNELS connections!!! QObject::connect ( vecpChanFader[0], SIGNAL ( gainValueChanged ( double ) ), this, SLOT ( OnGainValueChangedCh0 ( double ) ) ); @@ -665,8 +669,33 @@ CAudioMixerBoard::CAudioMixerBoard ( QWidget* parent, Qt::WindowFlags ) : QObject::connect ( vecpChanFader[47], SIGNAL ( soloStateChanged ( int ) ), this, SLOT ( OnChSoloStateChanged() ) ); QObject::connect ( vecpChanFader[48], SIGNAL ( soloStateChanged ( int ) ), this, SLOT ( OnChSoloStateChanged() ) ); QObject::connect ( vecpChanFader[49], SIGNAL ( soloStateChanged ( int ) ), this, SLOT ( OnChSoloStateChanged() ) ); + +#endif } +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +template +inline void CAudioMixerBoard::connectFaderSignalsToMixerBoardSlots() +{ + int iCurChanID = slotId - 1; + + void ( CAudioMixerBoard::* pGainValueChanged )( double ) = + &CAudioMixerBoardSlots::OnChGainValueChanged; + + QObject::connect ( vecpChanFader[iCurChanID], &CChannelFader::soloStateChanged, + this, &CAudioMixerBoard::UpdateSoloStates ); + + QObject::connect ( vecpChanFader[iCurChanID], &CChannelFader::gainValueChanged, + this, pGainValueChanged ); + + connectFaderSignalsToMixerBoardSlots(); +}; + +template<> +inline void CAudioMixerBoard::connectFaderSignalsToMixerBoardSlots<0>() {}; + +#endif + void CAudioMixerBoard::SetServerName ( const QString& strNewServerName ) { // store the current server name @@ -875,8 +904,8 @@ void CAudioMixerBoard::UpdateSoloStates() } } -void CAudioMixerBoard::OnGainValueChanged ( const int iChannelIdx, - const double dValue ) +void CAudioMixerBoard::UpdateGainValue ( const int iChannelIdx, + const double dValue ) { emit ChangeChanGain ( iChannelIdx, dValue ); } diff --git a/src/audiomixerboard.h b/src/audiomixerboard.h index a5c13557..f5d04393 100755 --- a/src/audiomixerboard.h +++ b/src/audiomixerboard.h @@ -102,7 +102,31 @@ signals: }; -class CAudioMixerBoard : public QScrollArea +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +template +class CAudioMixerBoardSlots : public CAudioMixerBoardSlots +{ + +public: + void OnChGainValueChanged ( double dValue ) { UpdateGainValue ( slotId - 1, dValue ); } + +protected: + virtual void UpdateGainValue ( const int iChannelIdx, + const double dValue ) = 0; +}; + +template<> +class CAudioMixerBoardSlots<0> {}; + +#else +template +class CAudioMixerBoardSlots {}; + +#endif + +class CAudioMixerBoard : + public QScrollArea, + public CAudioMixerBoardSlots { Q_OBJECT @@ -136,9 +160,6 @@ protected: void StoreFaderSettings ( CChannelFader* pChanFader ); void UpdateSoloStates(); - void OnGainValueChanged ( const int iChannelIdx, - const double dValue ); - CVector vecpChanFader; QGroupBox* pGroupBox; QHBoxLayout* pMainLayout; @@ -146,62 +167,78 @@ protected: bool bNoFaderVisible; QString strServerName; +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + virtual void UpdateGainValue ( const int iChannelIdx, + const double dValue ); + + template + inline void connectFaderSignalsToMixerBoardSlots(); + +#else + void UpdateGainValue ( const int iChannelIdx, + const double dValue ); + +#endif + +#if QT_VERSION < 0x50000 // MOC does not expand macros in Qt 4, so we cannot use QT_VERSION_CHECK(5, 0, 0) public slots: // CODE TAG: MAX_NUM_CHANNELS_TAG // make sure we have MAX_NUM_CHANNELS connections!!! - void OnGainValueChangedCh0 ( double dValue ) { OnGainValueChanged ( 0, dValue ); } - void OnGainValueChangedCh1 ( double dValue ) { OnGainValueChanged ( 1, dValue ); } - void OnGainValueChangedCh2 ( double dValue ) { OnGainValueChanged ( 2, dValue ); } - void OnGainValueChangedCh3 ( double dValue ) { OnGainValueChanged ( 3, dValue ); } - void OnGainValueChangedCh4 ( double dValue ) { OnGainValueChanged ( 4, dValue ); } - void OnGainValueChangedCh5 ( double dValue ) { OnGainValueChanged ( 5, dValue ); } - void OnGainValueChangedCh6 ( double dValue ) { OnGainValueChanged ( 6, dValue ); } - void OnGainValueChangedCh7 ( double dValue ) { OnGainValueChanged ( 7, dValue ); } - void OnGainValueChangedCh8 ( double dValue ) { OnGainValueChanged ( 8, dValue ); } - void OnGainValueChangedCh9 ( double dValue ) { OnGainValueChanged ( 9, dValue ); } - void OnGainValueChangedCh10 ( double dValue ) { OnGainValueChanged ( 10, dValue ); } - void OnGainValueChangedCh11 ( double dValue ) { OnGainValueChanged ( 11, dValue ); } - void OnGainValueChangedCh12 ( double dValue ) { OnGainValueChanged ( 12, dValue ); } - void OnGainValueChangedCh13 ( double dValue ) { OnGainValueChanged ( 13, dValue ); } - void OnGainValueChangedCh14 ( double dValue ) { OnGainValueChanged ( 14, dValue ); } - void OnGainValueChangedCh15 ( double dValue ) { OnGainValueChanged ( 15, dValue ); } - void OnGainValueChangedCh16 ( double dValue ) { OnGainValueChanged ( 16, dValue ); } - void OnGainValueChangedCh17 ( double dValue ) { OnGainValueChanged ( 17, dValue ); } - void OnGainValueChangedCh18 ( double dValue ) { OnGainValueChanged ( 18, dValue ); } - void OnGainValueChangedCh19 ( double dValue ) { OnGainValueChanged ( 19, dValue ); } - void OnGainValueChangedCh20 ( double dValue ) { OnGainValueChanged ( 20, dValue ); } - void OnGainValueChangedCh21 ( double dValue ) { OnGainValueChanged ( 21, dValue ); } - void OnGainValueChangedCh22 ( double dValue ) { OnGainValueChanged ( 22, dValue ); } - void OnGainValueChangedCh23 ( double dValue ) { OnGainValueChanged ( 23, dValue ); } - void OnGainValueChangedCh24 ( double dValue ) { OnGainValueChanged ( 24, dValue ); } - void OnGainValueChangedCh25 ( double dValue ) { OnGainValueChanged ( 25, dValue ); } - void OnGainValueChangedCh26 ( double dValue ) { OnGainValueChanged ( 26, dValue ); } - void OnGainValueChangedCh27 ( double dValue ) { OnGainValueChanged ( 27, dValue ); } - void OnGainValueChangedCh28 ( double dValue ) { OnGainValueChanged ( 28, dValue ); } - void OnGainValueChangedCh29 ( double dValue ) { OnGainValueChanged ( 29, dValue ); } - void OnGainValueChangedCh30 ( double dValue ) { OnGainValueChanged ( 30, dValue ); } - void OnGainValueChangedCh31 ( double dValue ) { OnGainValueChanged ( 31, dValue ); } - void OnGainValueChangedCh32 ( double dValue ) { OnGainValueChanged ( 32, dValue ); } - void OnGainValueChangedCh33 ( double dValue ) { OnGainValueChanged ( 33, dValue ); } - void OnGainValueChangedCh34 ( double dValue ) { OnGainValueChanged ( 34, dValue ); } - void OnGainValueChangedCh35 ( double dValue ) { OnGainValueChanged ( 35, dValue ); } - void OnGainValueChangedCh36 ( double dValue ) { OnGainValueChanged ( 36, dValue ); } - void OnGainValueChangedCh37 ( double dValue ) { OnGainValueChanged ( 37, dValue ); } - void OnGainValueChangedCh38 ( double dValue ) { OnGainValueChanged ( 38, dValue ); } - void OnGainValueChangedCh39 ( double dValue ) { OnGainValueChanged ( 39, dValue ); } - void OnGainValueChangedCh40 ( double dValue ) { OnGainValueChanged ( 40, dValue ); } - void OnGainValueChangedCh41 ( double dValue ) { OnGainValueChanged ( 41, dValue ); } - void OnGainValueChangedCh42 ( double dValue ) { OnGainValueChanged ( 42, dValue ); } - void OnGainValueChangedCh43 ( double dValue ) { OnGainValueChanged ( 43, dValue ); } - void OnGainValueChangedCh44 ( double dValue ) { OnGainValueChanged ( 44, dValue ); } - void OnGainValueChangedCh45 ( double dValue ) { OnGainValueChanged ( 45, dValue ); } - void OnGainValueChangedCh46 ( double dValue ) { OnGainValueChanged ( 46, dValue ); } - void OnGainValueChangedCh47 ( double dValue ) { OnGainValueChanged ( 47, dValue ); } - void OnGainValueChangedCh48 ( double dValue ) { OnGainValueChanged ( 48, dValue ); } - void OnGainValueChangedCh49 ( double dValue ) { OnGainValueChanged ( 49, dValue ); } + void OnGainValueChangedCh0 ( double dValue ) { UpdateGainValue ( 0, dValue ); } + void OnGainValueChangedCh1 ( double dValue ) { UpdateGainValue ( 1, dValue ); } + void OnGainValueChangedCh2 ( double dValue ) { UpdateGainValue ( 2, dValue ); } + void OnGainValueChangedCh3 ( double dValue ) { UpdateGainValue ( 3, dValue ); } + void OnGainValueChangedCh4 ( double dValue ) { UpdateGainValue ( 4, dValue ); } + void OnGainValueChangedCh5 ( double dValue ) { UpdateGainValue ( 5, dValue ); } + void OnGainValueChangedCh6 ( double dValue ) { UpdateGainValue ( 6, dValue ); } + void OnGainValueChangedCh7 ( double dValue ) { UpdateGainValue ( 7, dValue ); } + void OnGainValueChangedCh8 ( double dValue ) { UpdateGainValue ( 8, dValue ); } + void OnGainValueChangedCh9 ( double dValue ) { UpdateGainValue ( 9, dValue ); } + void OnGainValueChangedCh10 ( double dValue ) { UpdateGainValue ( 10, dValue ); } + void OnGainValueChangedCh11 ( double dValue ) { UpdateGainValue ( 11, dValue ); } + void OnGainValueChangedCh12 ( double dValue ) { UpdateGainValue ( 12, dValue ); } + void OnGainValueChangedCh13 ( double dValue ) { UpdateGainValue ( 13, dValue ); } + void OnGainValueChangedCh14 ( double dValue ) { UpdateGainValue ( 14, dValue ); } + void OnGainValueChangedCh15 ( double dValue ) { UpdateGainValue ( 15, dValue ); } + void OnGainValueChangedCh16 ( double dValue ) { UpdateGainValue ( 16, dValue ); } + void OnGainValueChangedCh17 ( double dValue ) { UpdateGainValue ( 17, dValue ); } + void OnGainValueChangedCh18 ( double dValue ) { UpdateGainValue ( 18, dValue ); } + void OnGainValueChangedCh19 ( double dValue ) { UpdateGainValue ( 19, dValue ); } + void OnGainValueChangedCh20 ( double dValue ) { UpdateGainValue ( 20, dValue ); } + void OnGainValueChangedCh21 ( double dValue ) { UpdateGainValue ( 21, dValue ); } + void OnGainValueChangedCh22 ( double dValue ) { UpdateGainValue ( 22, dValue ); } + void OnGainValueChangedCh23 ( double dValue ) { UpdateGainValue ( 23, dValue ); } + void OnGainValueChangedCh24 ( double dValue ) { UpdateGainValue ( 24, dValue ); } + void OnGainValueChangedCh25 ( double dValue ) { UpdateGainValue ( 25, dValue ); } + void OnGainValueChangedCh26 ( double dValue ) { UpdateGainValue ( 26, dValue ); } + void OnGainValueChangedCh27 ( double dValue ) { UpdateGainValue ( 27, dValue ); } + void OnGainValueChangedCh28 ( double dValue ) { UpdateGainValue ( 28, dValue ); } + void OnGainValueChangedCh29 ( double dValue ) { UpdateGainValue ( 29, dValue ); } + void OnGainValueChangedCh30 ( double dValue ) { UpdateGainValue ( 30, dValue ); } + void OnGainValueChangedCh31 ( double dValue ) { UpdateGainValue ( 31, dValue ); } + void OnGainValueChangedCh32 ( double dValue ) { UpdateGainValue ( 32, dValue ); } + void OnGainValueChangedCh33 ( double dValue ) { UpdateGainValue ( 33, dValue ); } + void OnGainValueChangedCh34 ( double dValue ) { UpdateGainValue ( 34, dValue ); } + void OnGainValueChangedCh35 ( double dValue ) { UpdateGainValue ( 35, dValue ); } + void OnGainValueChangedCh36 ( double dValue ) { UpdateGainValue ( 36, dValue ); } + void OnGainValueChangedCh37 ( double dValue ) { UpdateGainValue ( 37, dValue ); } + void OnGainValueChangedCh38 ( double dValue ) { UpdateGainValue ( 38, dValue ); } + void OnGainValueChangedCh39 ( double dValue ) { UpdateGainValue ( 39, dValue ); } + void OnGainValueChangedCh40 ( double dValue ) { UpdateGainValue ( 40, dValue ); } + void OnGainValueChangedCh41 ( double dValue ) { UpdateGainValue ( 41, dValue ); } + void OnGainValueChangedCh42 ( double dValue ) { UpdateGainValue ( 42, dValue ); } + void OnGainValueChangedCh43 ( double dValue ) { UpdateGainValue ( 43, dValue ); } + void OnGainValueChangedCh44 ( double dValue ) { UpdateGainValue ( 44, dValue ); } + void OnGainValueChangedCh45 ( double dValue ) { UpdateGainValue ( 45, dValue ); } + void OnGainValueChangedCh46 ( double dValue ) { UpdateGainValue ( 46, dValue ); } + void OnGainValueChangedCh47 ( double dValue ) { UpdateGainValue ( 47, dValue ); } + void OnGainValueChangedCh48 ( double dValue ) { UpdateGainValue ( 48, dValue ); } + void OnGainValueChangedCh49 ( double dValue ) { UpdateGainValue ( 49, dValue ); } void OnChSoloStateChanged() { UpdateSoloStates(); } +#endif + signals: void ChangeChanGain ( int iId, double dGain ); void NumClientsChanged ( int iNewNumClients ); diff --git a/src/global.h b/src/global.h index 85fbec22..f40c9393 100755 --- a/src/global.h +++ b/src/global.h @@ -175,9 +175,11 @@ LED bar: lbr #define LOW_BOUND_SIG_METER ( -50.0 ) // dB #define UPPER_BOUND_SIG_METER ( 0.0 ) // dB -// Maximum number of connected clients at the server. If you want to change this -// paramter you have to modify the code on some places, too! The code tag +// Maximum number of connected clients at the server. +#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0) +// If you want to change this paramter you have to modify the code on some places, too! The code tag // "MAX_NUM_CHANNELS_TAG" shows these places (just search for the tag in the entire code) +#endif #define MAX_NUM_CHANNELS 50 // max number channels for server // actual number of used channels in the server diff --git a/src/server.cpp b/src/server.cpp index da5edff8..4c93c723 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -462,6 +462,10 @@ CServer::CServer ( const int iNewMaxNumChan, SIGNAL ( SvrRegStatusChanged() ), this, SLOT ( OnSvrRegStatusChanged() ) ); +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + connectChannelSignalsToServerSlots(); + +#else // CODE TAG: MAX_NUM_CHANNELS_TAG // make sure we have MAX_NUM_CHANNELS connections!!! // send message @@ -724,13 +728,67 @@ CServer::CServer ( const int iNewMaxNumChan, QObject::connect ( &vecChannels[48], SIGNAL ( ServerAutoSockBufSizeChange ( int ) ), this, SLOT ( OnServerAutoSockBufSizeChangeCh48 ( int ) ) ); QObject::connect ( &vecChannels[49], SIGNAL ( ServerAutoSockBufSizeChange ( int ) ), this, SLOT ( OnServerAutoSockBufSizeChangeCh49 ( int ) ) ); +#endif // start the socket (it is important to start the socket after all // initializations and connections) Socket.Start(); } -void CServer::OnSendProtMessage ( int iChID, CVector vecMessage ) +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + +template +inline void CServer::connectChannelSignalsToServerSlots() +{ + int iCurChanID = slotId - 1; + + void ( CServer::* pOnSendProtMessCh )( CVector ) = + &CServerSlots::OnSendProtMessCh; + + void ( CServer::* pOnReqConnClientsListCh )() = + &CServerSlots::OnReqConnClientsListCh; + + void ( CServer::* pOnChatTextReceivedCh )( QString ) = + &CServerSlots::OnChatTextReceivedCh; + + void ( CServer::* pOnServerAutoSockBufSizeChangeCh )( int ) = + &CServerSlots::OnServerAutoSockBufSizeChangeCh; + + // send message + QObject::connect ( &vecChannels[iCurChanID], &CChannel::MessReadyForSending, + this, pOnSendProtMessCh ); + + // request connected clients list + QObject::connect ( &vecChannels[iCurChanID], &CChannel::ReqConnClientsList, + this, pOnReqConnClientsListCh ); + + // channel info has changed + QObject::connect ( &vecChannels[iCurChanID], &CChannel::ChanInfoHasChanged, + this, &CServer::CreateAndSendChanListForAllConChannels ); + + // chat text received + QObject::connect ( &vecChannels[iCurChanID], &CChannel::ChatTextReceived, + this, pOnChatTextReceivedCh ); + + // auto socket buffer size change + QObject::connect ( &vecChannels[iCurChanID], &CChannel::ServerAutoSockBufSizeChange, + this, pOnServerAutoSockBufSizeChangeCh ); + + connectChannelSignalsToServerSlots(); +}; + +template<> +inline void CServer::connectChannelSignalsToServerSlots<0>() {}; + +void CServer::CreateAndSendJitBufMessage ( const int iCurChanID, + const int iNNumFra ) +{ + vecChannels[iCurChanID].CreateJitBufMes ( iNNumFra ); +} + +#endif + +void CServer::SendProtMessage ( int iChID, CVector vecMessage ) { // the protocol queries me to call the function to send the message // send it through the network diff --git a/src/server.h b/src/server.h index c58b550b..4559089b 100755 --- a/src/server.h +++ b/src/server.h @@ -116,7 +116,50 @@ signals: #endif -class CServer : public QObject +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) +template +class CServerSlots : public CServerSlots +{ + +public: + void OnSendProtMessCh( CVector mess ) { SendProtMessage ( slotId - 1, mess ); } + void OnReqConnClientsListCh() { CreateAndSendChanListForThisChan ( slotId - 1 ); } + + void OnChatTextReceivedCh( QString strChatText ) + { + CreateAndSendChatTextForAllConChannels ( slotId - 1, strChatText ); + } + + void OnServerAutoSockBufSizeChangeCh( int iNNumFra ) + { + CreateAndSendJitBufMessage( slotId - 1, iNNumFra ); + } + +protected: + virtual void SendProtMessage ( int iChID, + CVector vecMessage ) = 0; + + virtual void CreateAndSendChanListForThisChan ( const int iCurChanID ) = 0; + + virtual void CreateAndSendChatTextForAllConChannels ( const int iCurChanID, + const QString& strChatText ) = 0; + + virtual void CreateAndSendJitBufMessage ( const int iCurChanID, + const int iNNumFra ) = 0; +}; + +template<> +class CServerSlots<0> {}; + +#else +template +class CServerSlots {}; + +#endif + +class CServer : + public QObject, + public CServerSlots { Q_OBJECT @@ -212,10 +255,33 @@ protected: int FindChannel ( const CHostAddress& CheckAddr ); int GetNumberOfConnectedClients(); CVector CreateChannelList(); + +#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0) + virtual void CreateAndSendChanListForAllConChannels(); + virtual void CreateAndSendChanListForThisChan ( const int iCurChanID ); + virtual void CreateAndSendChatTextForAllConChannels ( const int iCurChanID, + const QString& strChatText ); + + virtual void CreateAndSendJitBufMessage ( const int iCurChanID, + const int iNNumFra ); + + virtual void SendProtMessage ( int iChID, + CVector vecMessage ); + + template + inline void connectChannelSignalsToServerSlots(); + +#else void CreateAndSendChanListForAllConChannels(); void CreateAndSendChanListForThisChan ( const int iCurChanID ); void CreateAndSendChatTextForAllConChannels ( const int iCurChanID, const QString& strChatText ); + + void SendProtMessage ( int iChID, + CVector vecMessage ); + +#endif + void WriteHTMLChannelList(); void ProcessData ( const CVector >& vecvecsData, @@ -317,9 +383,6 @@ signals: public slots: void OnTimer(); - void OnSendProtMessage ( int iChID, - CVector vecMessage ); - void OnNewConnection ( int iChID, CHostAddress RecHostAddr ); @@ -391,60 +454,60 @@ public slots: void OnCLDisconnection ( CHostAddress InetAddr ); - +#if QT_VERSION < 0x50000 // MOC does not expand macros in Qt 4, so we cannot use QT_VERSION_CHECK(5, 0, 0) // CODE TAG: MAX_NUM_CHANNELS_TAG // make sure we have MAX_NUM_CHANNELS connections!!! // send message - void OnSendProtMessCh0 ( CVector mess ) { OnSendProtMessage ( 0, mess ); } - void OnSendProtMessCh1 ( CVector mess ) { OnSendProtMessage ( 1, mess ); } - void OnSendProtMessCh2 ( CVector mess ) { OnSendProtMessage ( 2, mess ); } - void OnSendProtMessCh3 ( CVector mess ) { OnSendProtMessage ( 3, mess ); } - void OnSendProtMessCh4 ( CVector mess ) { OnSendProtMessage ( 4, mess ); } - void OnSendProtMessCh5 ( CVector mess ) { OnSendProtMessage ( 5, mess ); } - void OnSendProtMessCh6 ( CVector mess ) { OnSendProtMessage ( 6, mess ); } - void OnSendProtMessCh7 ( CVector mess ) { OnSendProtMessage ( 7, mess ); } - void OnSendProtMessCh8 ( CVector mess ) { OnSendProtMessage ( 8, mess ); } - void OnSendProtMessCh9 ( CVector mess ) { OnSendProtMessage ( 9, mess ); } - void OnSendProtMessCh10 ( CVector mess ) { OnSendProtMessage ( 10, mess ); } - void OnSendProtMessCh11 ( CVector mess ) { OnSendProtMessage ( 11, mess ); } - void OnSendProtMessCh12 ( CVector mess ) { OnSendProtMessage ( 12, mess ); } - void OnSendProtMessCh13 ( CVector mess ) { OnSendProtMessage ( 13, mess ); } - void OnSendProtMessCh14 ( CVector mess ) { OnSendProtMessage ( 14, mess ); } - void OnSendProtMessCh15 ( CVector mess ) { OnSendProtMessage ( 15, mess ); } - void OnSendProtMessCh16 ( CVector mess ) { OnSendProtMessage ( 16, mess ); } - void OnSendProtMessCh17 ( CVector mess ) { OnSendProtMessage ( 17, mess ); } - void OnSendProtMessCh18 ( CVector mess ) { OnSendProtMessage ( 18, mess ); } - void OnSendProtMessCh19 ( CVector mess ) { OnSendProtMessage ( 19, mess ); } - void OnSendProtMessCh20 ( CVector mess ) { OnSendProtMessage ( 20, mess ); } - void OnSendProtMessCh21 ( CVector mess ) { OnSendProtMessage ( 21, mess ); } - void OnSendProtMessCh22 ( CVector mess ) { OnSendProtMessage ( 22, mess ); } - void OnSendProtMessCh23 ( CVector mess ) { OnSendProtMessage ( 23, mess ); } - void OnSendProtMessCh24 ( CVector mess ) { OnSendProtMessage ( 24, mess ); } - void OnSendProtMessCh25 ( CVector mess ) { OnSendProtMessage ( 25, mess ); } - void OnSendProtMessCh26 ( CVector mess ) { OnSendProtMessage ( 26, mess ); } - void OnSendProtMessCh27 ( CVector mess ) { OnSendProtMessage ( 27, mess ); } - void OnSendProtMessCh28 ( CVector mess ) { OnSendProtMessage ( 28, mess ); } - void OnSendProtMessCh29 ( CVector mess ) { OnSendProtMessage ( 29, mess ); } - void OnSendProtMessCh30 ( CVector mess ) { OnSendProtMessage ( 30, mess ); } - void OnSendProtMessCh31 ( CVector mess ) { OnSendProtMessage ( 31, mess ); } - void OnSendProtMessCh32 ( CVector mess ) { OnSendProtMessage ( 32, mess ); } - void OnSendProtMessCh33 ( CVector mess ) { OnSendProtMessage ( 33, mess ); } - void OnSendProtMessCh34 ( CVector mess ) { OnSendProtMessage ( 34, mess ); } - void OnSendProtMessCh35 ( CVector mess ) { OnSendProtMessage ( 35, mess ); } - void OnSendProtMessCh36 ( CVector mess ) { OnSendProtMessage ( 36, mess ); } - void OnSendProtMessCh37 ( CVector mess ) { OnSendProtMessage ( 37, mess ); } - void OnSendProtMessCh38 ( CVector mess ) { OnSendProtMessage ( 38, mess ); } - void OnSendProtMessCh39 ( CVector mess ) { OnSendProtMessage ( 39, mess ); } - void OnSendProtMessCh40 ( CVector mess ) { OnSendProtMessage ( 40, mess ); } - void OnSendProtMessCh41 ( CVector mess ) { OnSendProtMessage ( 41, mess ); } - void OnSendProtMessCh42 ( CVector mess ) { OnSendProtMessage ( 42, mess ); } - void OnSendProtMessCh43 ( CVector mess ) { OnSendProtMessage ( 43, mess ); } - void OnSendProtMessCh44 ( CVector mess ) { OnSendProtMessage ( 44, mess ); } - void OnSendProtMessCh45 ( CVector mess ) { OnSendProtMessage ( 45, mess ); } - void OnSendProtMessCh46 ( CVector mess ) { OnSendProtMessage ( 46, mess ); } - void OnSendProtMessCh47 ( CVector mess ) { OnSendProtMessage ( 47, mess ); } - void OnSendProtMessCh48 ( CVector mess ) { OnSendProtMessage ( 48, mess ); } - void OnSendProtMessCh49 ( CVector mess ) { OnSendProtMessage ( 49, mess ); } + void OnSendProtMessCh0 ( CVector mess ) { SendProtMessage ( 0, mess ); } + void OnSendProtMessCh1 ( CVector mess ) { SendProtMessage ( 1, mess ); } + void OnSendProtMessCh2 ( CVector mess ) { SendProtMessage ( 2, mess ); } + void OnSendProtMessCh3 ( CVector mess ) { SendProtMessage ( 3, mess ); } + void OnSendProtMessCh4 ( CVector mess ) { SendProtMessage ( 4, mess ); } + void OnSendProtMessCh5 ( CVector mess ) { SendProtMessage ( 5, mess ); } + void OnSendProtMessCh6 ( CVector mess ) { SendProtMessage ( 6, mess ); } + void OnSendProtMessCh7 ( CVector mess ) { SendProtMessage ( 7, mess ); } + void OnSendProtMessCh8 ( CVector mess ) { SendProtMessage ( 8, mess ); } + void OnSendProtMessCh9 ( CVector mess ) { SendProtMessage ( 9, mess ); } + void OnSendProtMessCh10 ( CVector mess ) { SendProtMessage ( 10, mess ); } + void OnSendProtMessCh11 ( CVector mess ) { SendProtMessage ( 11, mess ); } + void OnSendProtMessCh12 ( CVector mess ) { SendProtMessage ( 12, mess ); } + void OnSendProtMessCh13 ( CVector mess ) { SendProtMessage ( 13, mess ); } + void OnSendProtMessCh14 ( CVector mess ) { SendProtMessage ( 14, mess ); } + void OnSendProtMessCh15 ( CVector mess ) { SendProtMessage ( 15, mess ); } + void OnSendProtMessCh16 ( CVector mess ) { SendProtMessage ( 16, mess ); } + void OnSendProtMessCh17 ( CVector mess ) { SendProtMessage ( 17, mess ); } + void OnSendProtMessCh18 ( CVector mess ) { SendProtMessage ( 18, mess ); } + void OnSendProtMessCh19 ( CVector mess ) { SendProtMessage ( 19, mess ); } + void OnSendProtMessCh20 ( CVector mess ) { SendProtMessage ( 20, mess ); } + void OnSendProtMessCh21 ( CVector mess ) { SendProtMessage ( 21, mess ); } + void OnSendProtMessCh22 ( CVector mess ) { SendProtMessage ( 22, mess ); } + void OnSendProtMessCh23 ( CVector mess ) { SendProtMessage ( 23, mess ); } + void OnSendProtMessCh24 ( CVector mess ) { SendProtMessage ( 24, mess ); } + void OnSendProtMessCh25 ( CVector mess ) { SendProtMessage ( 25, mess ); } + void OnSendProtMessCh26 ( CVector mess ) { SendProtMessage ( 26, mess ); } + void OnSendProtMessCh27 ( CVector mess ) { SendProtMessage ( 27, mess ); } + void OnSendProtMessCh28 ( CVector mess ) { SendProtMessage ( 28, mess ); } + void OnSendProtMessCh29 ( CVector mess ) { SendProtMessage ( 29, mess ); } + void OnSendProtMessCh30 ( CVector mess ) { SendProtMessage ( 30, mess ); } + void OnSendProtMessCh31 ( CVector mess ) { SendProtMessage ( 31, mess ); } + void OnSendProtMessCh32 ( CVector mess ) { SendProtMessage ( 32, mess ); } + void OnSendProtMessCh33 ( CVector mess ) { SendProtMessage ( 33, mess ); } + void OnSendProtMessCh34 ( CVector mess ) { SendProtMessage ( 34, mess ); } + void OnSendProtMessCh35 ( CVector mess ) { SendProtMessage ( 35, mess ); } + void OnSendProtMessCh36 ( CVector mess ) { SendProtMessage ( 36, mess ); } + void OnSendProtMessCh37 ( CVector mess ) { SendProtMessage ( 37, mess ); } + void OnSendProtMessCh38 ( CVector mess ) { SendProtMessage ( 38, mess ); } + void OnSendProtMessCh39 ( CVector mess ) { SendProtMessage ( 39, mess ); } + void OnSendProtMessCh40 ( CVector mess ) { SendProtMessage ( 40, mess ); } + void OnSendProtMessCh41 ( CVector mess ) { SendProtMessage ( 41, mess ); } + void OnSendProtMessCh42 ( CVector mess ) { SendProtMessage ( 42, mess ); } + void OnSendProtMessCh43 ( CVector mess ) { SendProtMessage ( 43, mess ); } + void OnSendProtMessCh44 ( CVector mess ) { SendProtMessage ( 44, mess ); } + void OnSendProtMessCh45 ( CVector mess ) { SendProtMessage ( 45, mess ); } + void OnSendProtMessCh46 ( CVector mess ) { SendProtMessage ( 46, mess ); } + void OnSendProtMessCh47 ( CVector mess ) { SendProtMessage ( 47, mess ); } + void OnSendProtMessCh48 ( CVector mess ) { SendProtMessage ( 48, mess ); } + void OnSendProtMessCh49 ( CVector mess ) { SendProtMessage ( 49, mess ); } void OnReqConnClientsListCh0() { CreateAndSendChanListForThisChan ( 0 ); } void OnReqConnClientsListCh1() { CreateAndSendChanListForThisChan ( 1 ); } @@ -649,4 +712,6 @@ public slots: void OnServerAutoSockBufSizeChangeCh47 ( int iNNumFra ) { vecChannels[47].CreateJitBufMes ( iNNumFra ); } void OnServerAutoSockBufSizeChangeCh48 ( int iNNumFra ) { vecChannels[48].CreateJitBufMes ( iNNumFra ); } void OnServerAutoSockBufSizeChangeCh49 ( int iNNumFra ) { vecChannels[49].CreateJitBufMes ( iNNumFra ); } + +#endif };