#include "modules/desktop_capture/linux/x11/window_capturer_x11.h"
#include <X11/Xutil.h>
#include <X11/extensions/Xcomposite.h>
#include <X11/extensions/composite.h>
#include <string.h>
#include <memory>
#include <string>
#include <utility>
#include "api/scoped_refptr.h"
#include "modules/desktop_capture/desktop_capture_types.h"
#include "modules/desktop_capture/desktop_frame.h"
#include "modules/desktop_capture/desktop_region.h"
#include "modules/desktop_capture/linux/x11/shared_x_display.h"
#include "modules/desktop_capture/linux/x11/window_finder_x11.h"
#include "modules/desktop_capture/linux/x11/window_list_utils.h"
#include "rtc_base/checks.h"
#include "rtc_base/logging.h"
#include "rtc_base/trace_event.h"
namespace webrtc {
WindowCapturerX11::WindowCapturerX11(const DesktopCaptureOptions& options)
: … { … }
WindowCapturerX11::~WindowCapturerX11() { … }
bool WindowCapturerX11::GetSourceList(SourceList* sources) { … }
bool WindowCapturerX11::SelectSource(SourceId id) { … }
bool WindowCapturerX11::FocusOnSelectedSource() { … }
void WindowCapturerX11::Start(Callback* callback) { … }
void WindowCapturerX11::CaptureFrame() { … }
bool WindowCapturerX11::IsOccluded(const DesktopVector& pos) { … }
bool WindowCapturerX11::HandleXEvent(const XEvent& event) { … }
bool WindowCapturerX11::GetWindowTitle(::Window window, std::string* title) { … }
std::unique_ptr<DesktopCapturer> WindowCapturerX11::CreateRawWindowCapturer(
const DesktopCaptureOptions& options) { … }
}