From 18901a4dc78078998cdd6d9bade6716424b2f636 Mon Sep 17 00:00:00 2001 From: John Preston Date: Tue, 9 Mar 2021 18:49:09 +0400 Subject: [PATCH] Update tgcalls for better stream->rtc upgrade. --- Telegram/SourceFiles/calls/calls_group_call.cpp | 13 +++++++++---- Telegram/SourceFiles/calls/calls_group_call.h | 3 ++- Telegram/ThirdParty/tgcalls | 2 +- 3 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Telegram/SourceFiles/calls/calls_group_call.cpp b/Telegram/SourceFiles/calls/calls_group_call.cpp index 6b81d1ce37..8e589f32d8 100644 --- a/Telegram/SourceFiles/calls/calls_group_call.cpp +++ b/Telegram/SourceFiles/calls/calls_group_call.cpp @@ -914,8 +914,8 @@ void GroupCall::ensureControllerCreated() { tgcalls::GroupInstanceDescriptor descriptor = { .config = tgcalls::GroupConfig{ }, - .networkStateUpdated = [=](bool connected) { - crl::on_main(weak, [=] { setInstanceConnected(connected); }); + .networkStateUpdated = [=](tgcalls::GroupNetworkState networkState) { + crl::on_main(weak, [=] { setInstanceConnected(networkState); }); }, .audioLevelsUpdated = [=](const tgcalls::GroupLevelsUpdate &data) { const auto &updates = data.updates; @@ -1213,13 +1213,18 @@ void GroupCall::checkJoined() { }).send(); } -void GroupCall::setInstanceConnected(bool connected) { +void GroupCall::setInstanceConnected( + tgcalls::GroupNetworkState networkState) { + const auto connected = networkState.isConnected; if (_instanceConnected == connected) { return; } _instanceConnected = connected; if (state() == State::Connecting && connected) { setState(State::Joined); + if (networkState.isTransitioningFromBroadcastToRtc) { + // #TODO calls play sound?.. + } } else if (state() == State::Joined && !connected) { setState(State::Connecting); } @@ -1238,7 +1243,7 @@ void GroupCall::setInstanceMode(InstanceMode mode) { case InstanceMode::Stream: return Mode::GroupConnectionModeBroadcast; } Unexpected("Mode in GroupCall::setInstanceMode."); - }()); + }(), true); } void GroupCall::maybeSendMutedUpdate(MuteState previous) { diff --git a/Telegram/SourceFiles/calls/calls_group_call.h b/Telegram/SourceFiles/calls/calls_group_call.h index 536bda7b54..3f887d5bee 100644 --- a/Telegram/SourceFiles/calls/calls_group_call.h +++ b/Telegram/SourceFiles/calls/calls_group_call.h @@ -18,6 +18,7 @@ class History; namespace tgcalls { class GroupInstanceCustomImpl; struct GroupLevelsUpdate; +struct GroupNetworkState; struct GroupParticipantDescription; } // namespace tgcalls @@ -222,7 +223,7 @@ private: void rejoin(); void audioLevelsUpdated(const tgcalls::GroupLevelsUpdate &data); - void setInstanceConnected(bool connected); + void setInstanceConnected(tgcalls::GroupNetworkState networkState); void setInstanceMode(InstanceMode mode); void checkLastSpoke(); void pushToTalkCancel(); diff --git a/Telegram/ThirdParty/tgcalls b/Telegram/ThirdParty/tgcalls index c3c3473f0f..d19c74b147 160000 --- a/Telegram/ThirdParty/tgcalls +++ b/Telegram/ThirdParty/tgcalls @@ -1 +1 @@ -Subproject commit c3c3473f0f0373ff417675c8825a3b091649e563 +Subproject commit d19c74b1474e4aab01d797373f1d62e4da5f87a5