mirror of
https://github.com/AyuGram/AyuGramDesktop.git
synced 2025-04-18 15:17:07 +02:00
Hide members in RTMP streams.
This commit is contained in:
parent
39c10b9e1c
commit
25e29d3dd5
5 changed files with 35 additions and 8 deletions
Telegram/SourceFiles
|
@ -582,6 +582,7 @@ GroupCall::GroupCall(
|
|||
, _checkJoinedTimer([=] { checkJoined(); })
|
||||
, _pushToTalkCancelTimer([=] { pushToTalkCancel(); })
|
||||
, _connectingSoundTimer([=] { playConnectingSoundOnce(); })
|
||||
, _listenersHidden(info.rtmp)
|
||||
, _rtmp(info.rtmp)
|
||||
, _mediaDevices(CreateMediaDevices()) {
|
||||
_muted.value(
|
||||
|
@ -693,7 +694,9 @@ bool GroupCall::screenSharingWithAudio() const {
|
|||
|
||||
bool GroupCall::mutedByAdmin() const {
|
||||
const auto mute = muted();
|
||||
return mute == MuteState::ForceMuted || mute == MuteState::RaisedHand;
|
||||
return _rtmp
|
||||
|| (mute == MuteState::ForceMuted)
|
||||
|| (mute == MuteState::RaisedHand);
|
||||
}
|
||||
|
||||
bool GroupCall::canManage() const {
|
||||
|
@ -756,6 +759,8 @@ void GroupCall::setScheduledDate(TimeId date) {
|
|||
}
|
||||
|
||||
void GroupCall::subscribeToReal(not_null<Data::GroupCall*> real) {
|
||||
_listenersHidden = real->listenersHidden();
|
||||
|
||||
real->scheduleDateValue(
|
||||
) | rpl::start_with_next([=](TimeId date) {
|
||||
setScheduledDate(date);
|
||||
|
@ -1001,6 +1006,10 @@ bool GroupCall::rtmp() const {
|
|||
return _rtmp;
|
||||
}
|
||||
|
||||
bool GroupCall::listenersHidden() const {
|
||||
return _listenersHidden;
|
||||
}
|
||||
|
||||
Data::GroupCall *GroupCall::lookupReal() const {
|
||||
const auto real = _peer->groupCall();
|
||||
return (real && real->id() == _id) ? real : nullptr;
|
||||
|
|
|
@ -232,6 +232,7 @@ public:
|
|||
}
|
||||
[[nodiscard]] bool scheduleStartSubscribed() const;
|
||||
[[nodiscard]] bool rtmp() const;
|
||||
[[nodiscard]] bool listenersHidden() const;
|
||||
|
||||
[[nodiscard]] Data::GroupCall *lookupReal() const;
|
||||
[[nodiscard]] rpl::producer<not_null<Data::GroupCall*>> real() const;
|
||||
|
@ -659,6 +660,7 @@ private:
|
|||
base::Timer _pushToTalkCancelTimer;
|
||||
base::Timer _connectingSoundTimer;
|
||||
bool _hadJoinedState = false;
|
||||
bool _listenersHidden = false;
|
||||
bool _rtmp = false;
|
||||
|
||||
std::unique_ptr<Webrtc::MediaDevices> _mediaDevices;
|
||||
|
|
|
@ -1433,8 +1433,9 @@ bool Panel::updateMode() {
|
|||
if (!_viewport) {
|
||||
return false;
|
||||
}
|
||||
const auto wide = _call->hasVideoWithFrames()
|
||||
&& (widget()->width() >= st::groupCallWideModeWidthMin);
|
||||
const auto wide = _call->rtmp()
|
||||
|| (_call->hasVideoWithFrames()
|
||||
&& (widget()->width() >= st::groupCallWideModeWidthMin));
|
||||
const auto mode = wide ? PanelMode::Wide : PanelMode::Default;
|
||||
if (_mode.current() == mode) {
|
||||
return false;
|
||||
|
@ -1457,6 +1458,8 @@ bool Panel::updateMode() {
|
|||
_subtitle.destroy();
|
||||
} else if (!wide && !_subtitle) {
|
||||
refreshTitle();
|
||||
} else if (!_members) {
|
||||
setupMembers();
|
||||
}
|
||||
_wideControlsShown = _showWideControls = true;
|
||||
_wideControlsAnimation.stop();
|
||||
|
@ -1934,7 +1937,7 @@ void Panel::updateButtonsGeometry() {
|
|||
const auto hidden = (shown == 0.);
|
||||
|
||||
if (_viewport) {
|
||||
_viewport->setControlsShown(shown);
|
||||
_viewport->setControlsShown(_call->rtmp() ? 0. : shown);
|
||||
}
|
||||
|
||||
const auto buttonsTop = widget()->height() - anim::interpolate(
|
||||
|
@ -1950,8 +1953,9 @@ void Panel::updateButtonsGeometry() {
|
|||
+ (_settings ->width() + skip)
|
||||
+ _hangup->width();
|
||||
const auto membersSkip = st::groupCallNarrowSkip;
|
||||
const auto membersWidth = st::groupCallNarrowMembersWidth
|
||||
+ 2 * membersSkip;
|
||||
const auto membersWidth = _call->rtmp()
|
||||
? membersSkip
|
||||
: (st::groupCallNarrowMembersWidth + 2 * membersSkip);
|
||||
auto left = membersSkip + (widget()->width()
|
||||
- membersWidth
|
||||
- membersSkip
|
||||
|
@ -2046,6 +2050,7 @@ void Panel::updateMembersGeometry() {
|
|||
if (!_members) {
|
||||
return;
|
||||
}
|
||||
_members->setVisible(!_call->rtmp());
|
||||
const auto desiredHeight = _members->desiredHeight();
|
||||
if (mode() == PanelMode::Wide) {
|
||||
const auto skip = st::groupCallNarrowSkip;
|
||||
|
@ -2056,10 +2061,13 @@ void Panel::updateMembersGeometry() {
|
|||
top,
|
||||
membersWidth,
|
||||
std::min(desiredHeight, widget()->height() - top - skip));
|
||||
const auto viewportSkip = _call->rtmp()
|
||||
? 0
|
||||
: (skip + membersWidth);
|
||||
_viewport->setGeometry({
|
||||
skip,
|
||||
top,
|
||||
widget()->width() - membersWidth - 3 * skip,
|
||||
widget()->width() - viewportSkip - 2 * skip,
|
||||
widget()->height() - top - skip,
|
||||
});
|
||||
} else {
|
||||
|
|
|
@ -68,7 +68,8 @@ GroupCall::GroupCall(
|
|||
, _reloadByQueuedUpdatesTimer([=] { reload(); })
|
||||
, _speakingByActiveFinishTimer([=] { checkFinishSpeakingByActive(); })
|
||||
, _scheduleDate(scheduleDate)
|
||||
, _rtmp(rtmp) {
|
||||
, _rtmp(rtmp)
|
||||
, _listenersHidden(rtmp) {
|
||||
}
|
||||
|
||||
GroupCall::~GroupCall() {
|
||||
|
@ -89,6 +90,10 @@ bool GroupCall::rtmp() const {
|
|||
return _rtmp;
|
||||
}
|
||||
|
||||
bool GroupCall::listenersHidden() const {
|
||||
return _listenersHidden;
|
||||
}
|
||||
|
||||
not_null<PeerData*> GroupCall::peer() const {
|
||||
return _peer;
|
||||
}
|
||||
|
@ -395,6 +400,7 @@ void GroupCall::applyCallFields(const MTPDgroupCall &data) {
|
|||
_version = 1;
|
||||
}
|
||||
_rtmp = data.is_rtmp_stream();
|
||||
_listenersHidden = data.is_listeners_hidden();
|
||||
_joinMuted = data.is_join_muted();
|
||||
_canChangeJoinMuted = data.is_can_change_join_muted();
|
||||
_joinedToTop = !data.is_join_date_asc();
|
||||
|
|
|
@ -64,6 +64,7 @@ public:
|
|||
[[nodiscard]] CallId id() const;
|
||||
[[nodiscard]] bool loaded() const;
|
||||
[[nodiscard]] bool rtmp() const;
|
||||
[[nodiscard]] bool listenersHidden() const;
|
||||
[[nodiscard]] not_null<PeerData*> peer() const;
|
||||
[[nodiscard]] MTPInputGroupCall input() const;
|
||||
[[nodiscard]] QString title() const {
|
||||
|
@ -244,6 +245,7 @@ private:
|
|||
bool _joinedToTop = false;
|
||||
bool _applyingQueuedUpdates = false;
|
||||
bool _rtmp = false;
|
||||
bool _listenersHidden = false;
|
||||
|
||||
};
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue