/* 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/weak_ptr.h" #include "base/object_ptr.h" class PeerData; namespace Ui { class BoxContent; } // namespace Ui namespace Calls::Group { struct JoinInfo; class StartRtmpProcess final { public: StartRtmpProcess() = default; ~StartRtmpProcess(); struct Data { QString url; QString key; }; void start( not_null peer, Fn)> showBox, Fn showToast, Fn done); private: void requestUrl(bool revoke); void processUrl(Data data); void createBox(); void finish(JoinInfo info); struct RtmpRequest { not_null peer; rpl::variable data; Fn)> showBox; Fn showToast; Fn done; base::has_weak_ptr guard; QPointer box; rpl::lifetime lifetime; mtpRequestId id = 0; }; std::unique_ptr _request; }; } // namespace Calls::Group