KWin
Loading...
Searching...
No Matches
screencastmanager.h
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2018-2020 Red Hat Inc
3 SPDX-FileCopyrightText: 2020 Aleix Pol Gonzalez <aleixpol@kde.org>
4 SPDX-FileContributor: Jan Grulich <jgrulich@redhat.com>
5
6 SPDX-License-Identifier: LGPL-2.0-or-later
7*/
8
9#pragma once
10
11#include "plugin.h"
12
14
15namespace KWin
16{
17class Output;
18class ScreenCastStream;
19class PipeWireCore;
20
22{
23 Q_OBJECT
24
25public:
26 explicit ScreencastManager();
27
28private:
29 void streamWindow(ScreencastStreamV1Interface *stream,
30 const QString &winid,
32 void streamWaylandOutput(ScreencastStreamV1Interface *stream,
33 OutputInterface *output,
35 void
36 streamOutput(ScreencastStreamV1Interface *stream, Output *output, ScreencastV1Interface::CursorMode mode);
37 void streamVirtualOutput(ScreencastStreamV1Interface *stream,
38 const QString &name,
39 const QSize &size,
40 double scale,
42 void streamRegion(ScreencastStreamV1Interface *stream,
43 const QRect &geometry,
44 qreal scale,
46
47 void integrateStreams(ScreencastStreamV1Interface *waylandStream, ScreenCastStream *stream);
48
49 ScreencastV1Interface *m_screencast;
50 std::shared_ptr<PipeWireCore> m_core;
51};
52
53} // namespace KWin