KWin
Loading...
Searching...
No Matches
output_order_v1.cpp
Go to the documentation of this file.
1/*
2 SPDX-FileCopyrightText: 2022 Xaver Hugl <xaver.hugl@gmail.com>
3
4 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
5*/
6#include "output_order_v1.h"
7#include "core/output.h"
8#include "display.h"
9
10#include "qwayland-server-kde-output-order-v1.h"
11
12namespace KWin
13{
14
15static constexpr uint32_t s_version = 1;
16
17class OutputOrderV1InterfacePrivate : public QtWaylandServer::kde_output_order_v1
18{
19public:
21
22 void sendList(wl_resource *resource);
23 QList<Output *> outputOrder;
24
25protected:
26 void kde_output_order_v1_bind_resource(Resource *resource) override;
27 void kde_output_order_v1_destroy(Resource *resource) override;
28};
29
31 : QObject(parent)
32 , d(std::make_unique<OutputOrderV1InterfacePrivate>(display))
33{
34}
35
37
38void OutputOrderV1Interface::setOutputOrder(const QList<Output *> &outputOrder)
39{
40 d->outputOrder = outputOrder;
41 const auto resources = d->resourceMap();
42 for (const auto &resource : resources) {
43 d->sendList(resource->handle);
44 }
45}
46
48 : QtWaylandServer::kde_output_order_v1(*display, s_version)
49{
50}
51
53{
54 sendList(resource->handle);
55}
56
57void OutputOrderV1InterfacePrivate::sendList(wl_resource *resource)
58{
59 for (Output *const output : std::as_const(outputOrder)) {
60 kde_output_order_v1_send_output(resource, output->name().toUtf8().constData());
61 }
62 kde_output_order_v1_send_done(resource);
63}
64
66{
67 wl_resource_destroy(resource->handle);
68}
69}
70
71#include "moc_output_order_v1.cpp"
Class holding the Wayland server display loop.
Definition display.h:34
OutputOrderV1Interface(Display *display, QObject *parent)
void setOutputOrder(const QList< Output * > &outputOrder)
void kde_output_order_v1_bind_resource(Resource *resource) override
void kde_output_order_v1_destroy(Resource *resource) override
void sendList(wl_resource *resource)