/* This file is part of Telegram Desktop, the official desktop application for the Telegram messaging service. For license and copyright information please follow this link: https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL */ #pragma once #include "base/object_ptr.h" class UserData; namespace Ui { class GenericBox; } // namespace Ui namespace Calls::Group { constexpr auto kDefaultVolume = 10000; constexpr auto kMaxVolume = 20000; constexpr auto kBlobsEnterDuration = crl::time(250); struct MuteRequest { not_null peer; bool mute = false; bool locallyOnly = false; }; struct VolumeRequest { not_null peer; int volume = kDefaultVolume; bool finalized = true; bool locallyOnly = false; }; struct ParticipantState { not_null peer; std::optional volume; bool mutedByMe = false; bool locallyOnly = false; }; struct RejoinEvent { not_null wasJoinAs; not_null nowJoinAs; }; struct RtmpInfo { QString url; QString key; }; struct JoinInfo { not_null peer; not_null joinAs; std::vector> possibleJoinAs; QString joinHash; RtmpInfo rtmpInfo; TimeId scheduleDate = 0; bool rtmp = false; }; enum class PanelMode { Default, Wide, }; enum class VideoQuality { Thumbnail, Medium, Full, }; enum class Error { NoCamera, CameraFailed, ScreenFailed, MutedNoCamera, MutedNoScreen, DisabledNoCamera, DisabledNoScreen, }; enum class StickedTooltip { Camera = 0x01, Microphone = 0x02, }; constexpr inline bool is_flag_type(StickedTooltip) { return true; } using StickedTooltips = base::flags; [[nodiscard]] object_ptr ScreenSharingPrivacyRequestBox(); } // namespace Calls::Group