Plasma-workspace

screencastingrequest.h
1/*
2 SPDX-FileCopyrightText: 2020 Aleix Pol Gonzalez <aleixpol@kde.org>
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 "screencasting.h"
10#include <QObject>
11
12class ScreencastingStream;
13struct ScreencastingRequestPrivate;
14
15/**
16 * Allows us to request a stream for a window identified by its universally
17 * unique identifier.
18 *
19 * We will get a PipeWire node id that can be fed to any pipewire player, be it
20 * the PipeWireSourceItem, GStreamer's pipewiresink or any other.
21 */
23{
25 /**
26 * The unique identifier of the window we want to cast.
27 *
28 * @see PlasmaWindow::uuid
29 * @see PlasmaWindow::stackingOrderUuids
30 * @see PlasmaWindowModel::Uuid
31 * @see TasksModel::WinIdList
32 */
33 Q_PROPERTY(QString uuid READ uuid WRITE setUuid NOTIFY uuidChanged)
34
35 /**
36 * The output name as define in Screen.name
37 */
38 Q_PROPERTY(QString outputName READ outputName WRITE setOutputName NOTIFY outputNameChanged)
39
40 /** The offered nodeId to give to a source */
41 Q_PROPERTY(quint32 nodeId READ nodeId NOTIFY nodeIdChanged)
42public:
45
46 void setUuid(const QString &uuid);
47 QString uuid() const;
48 void setOutputName(const QString &outputName);
49 QString outputName() const;
50 quint32 nodeId() const;
51
53 void nodeIdChanged(quint32 nodeId);
54 void uuidChanged(const QString &uuid);
55 void outputNameChanged(const QString &outputNames);
56
57private:
58 void adopt(ScreencastingStream *stream);
59 void setNodeid(uint nodeId);
60
61 std::unique_ptr<ScreencastingRequestPrivate> d;
62};
Allows us to request a stream for a window identified by its universally unique identifier.
quint32 nodeId
The offered nodeId to give to a source.
QString outputName
The output name as define in Screen.name.
QString uuid
The unique identifier of the window we want to cast.
Q_OBJECTQ_OBJECT
Q_PROPERTY(...)
Q_SIGNALSQ_SIGNALS
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:17:42 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.