96 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
	
		
			1.7 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/*
 | 
						|
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<PeerData*> peer;
 | 
						|
	bool mute = false;
 | 
						|
	bool locallyOnly = false;
 | 
						|
};
 | 
						|
 | 
						|
struct VolumeRequest {
 | 
						|
	not_null<PeerData*> peer;
 | 
						|
	int volume = kDefaultVolume;
 | 
						|
	bool finalized = true;
 | 
						|
	bool locallyOnly = false;
 | 
						|
};
 | 
						|
 | 
						|
struct ParticipantState {
 | 
						|
	not_null<PeerData*> peer;
 | 
						|
	std::optional<int> volume;
 | 
						|
	bool mutedByMe = false;
 | 
						|
	bool locallyOnly = false;
 | 
						|
};
 | 
						|
 | 
						|
struct RejoinEvent {
 | 
						|
	not_null<PeerData*> wasJoinAs;
 | 
						|
	not_null<PeerData*> nowJoinAs;
 | 
						|
};
 | 
						|
 | 
						|
struct RtmpInfo {
 | 
						|
	QString url;
 | 
						|
	QString key;
 | 
						|
};
 | 
						|
 | 
						|
struct JoinInfo {
 | 
						|
	not_null<PeerData*> peer;
 | 
						|
	not_null<PeerData*> joinAs;
 | 
						|
	std::vector<not_null<PeerData*>> 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<StickedTooltip>;
 | 
						|
 | 
						|
[[nodiscard]] object_ptr<Ui::GenericBox> ScreenSharingPrivacyRequestBox();
 | 
						|
 | 
						|
} // namespace Calls::Group
 |