From 65adb71ef5d73c66c41d6dac9e3a02f49682c9f4 Mon Sep 17 00:00:00 2001 From: Christian Hoffmann Date: Wed, 17 Feb 2021 01:14:15 +0100 Subject: [PATCH 1/2] Server: Send empty channel list on connect This ensures that clients will reset their audio mixer board state upon reconnect. Otherwise, gain levels may not be sent reliably to the server. Fixes #955. Signed-off-by: Christian Hoffmann --- src/server.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/server.cpp b/src/server.cpp index 12051cd1df..bd9635882f 100755 --- a/src/server.cpp +++ b/src/server.cpp @@ -594,6 +594,11 @@ void CServer::OnNewConnection ( int iChID, // must be the first message to be sent for a new connection) vecChannels[iChID].CreateClientIDMes ( iChID ); + // Send an empty channel list in order to force clients to reset their + // audio mixer state. This is required to trigger clients to re-send their + // gain levels upon reconnecting after server restarts. + vecChannels[iChID].CreateConClientListMes ( CVector (0) ); + // query support for split messages in the client vecChannels[iChID].CreateReqSplitMessSupportMes(); From 978609915a5ef20224aa97011044f1dfa825d808 Mon Sep 17 00:00:00 2001 From: Christian Hoffmann Date: Mon, 1 Mar 2021 23:22:14 +0100 Subject: [PATCH 2/2] Changelog: Document #955, #1009, #1010 Signed-off-by: Christian Hoffmann --- ChangeLog | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ChangeLog b/ChangeLog index 6d19785809..a12a0522cb 100644 --- a/ChangeLog +++ b/ChangeLog @@ -47,6 +47,10 @@ - stop sending traffic to CloudFlare as part of the external IP detection logic (#633, #1092), suggested by atsampson, coded by hoffie +- bug fix: properly restore mixer levels after reconnecting to a restarted + server. updating the server or the client is sufficient to fix this. coded + by hoffie (#955, #1009, #1010) + ### 3.6.2 (2020-12-12) ###