KWaylandServer

screencast_v1_interface.h
1 /*
2  SPDX-FileCopyrightText: 2020 Aleix Pol Gonzalez <[email protected]>
3 
4  SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5 */
6 
7 #pragma once
8 
9 #include <KWaylandServer/kwaylandserver_export.h>
10 #include <QObject>
11 #include <QScopedPointer>
12 
13 struct wl_resource;
14 
15 namespace KWaylandServer
16 {
17 class Display;
18 class OutputInterface;
19 class ScreencastV1InterfacePrivate;
20 class ScreencastStreamV1InterfacePrivate;
21 class ScreencastStreamV1Interface;
22 
23 class KWAYLANDSERVER_EXPORT ScreencastStreamV1Interface : public QObject
24 {
25  Q_OBJECT
26 public:
27  ~ScreencastStreamV1Interface() override;
28 
29  void sendCreated(quint32 nodeid);
30  void sendFailed(const QString &error);
31  void sendClosed();
32 
33 Q_SIGNALS:
34  void finished();
35 
36 private:
37  friend class ScreencastV1InterfacePrivate;
38  explicit ScreencastStreamV1Interface(QObject *parent);
40 };
41 
42 class KWAYLANDSERVER_EXPORT ScreencastV1Interface : public QObject
43 {
44  Q_OBJECT
45 
46 public:
47  explicit ScreencastV1Interface(Display *display, QObject *parent = nullptr);
48  virtual ~ScreencastV1Interface();
49 
50  enum CursorMode {
51  Hidden = 1,
52  Embedded = 2,
53  Metadata = 4,
54  };
55  Q_ENUM(CursorMode);
56 
57 Q_SIGNALS:
58  void outputScreencastRequested(ScreencastStreamV1Interface *stream, OutputInterface *output, CursorMode mode);
59  void virtualOutputScreencastRequested(ScreencastStreamV1Interface *stream, const QString &name, const QSize &size, double scaling, CursorMode mode);
60  void windowScreencastRequested(ScreencastStreamV1Interface *stream, const QString &winid, CursorMode mode);
61 
62 private:
64 };
65 
66 }
This file is part of the KDE documentation.
Documentation copyright © 1996-2021 The KDE developers.
Generated on Sat Oct 23 2021 23:08:28 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.