8e7a8c5a11
AbstractOutput is not so Abstract and it's common to avoid the word "Abstract" in class names as it doesn't contribute any new information. It also significantly reduces the line width in some places.
43 lines
947 B
C++
43 lines
947 B
C++
/*
|
|
SPDX-FileCopyrightText: 2021 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include "output.h"
|
|
|
|
#include <KWaylandServer/output_interface.h>
|
|
#include <KWaylandServer/utils.h>
|
|
#include <KWaylandServer/xdgoutput_v1_interface.h>
|
|
|
|
#include <QTimer>
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
class WaylandOutput : public QObject
|
|
{
|
|
Q_OBJECT
|
|
|
|
public:
|
|
explicit WaylandOutput(Output *output, QObject *parent = nullptr);
|
|
|
|
KWaylandServer::OutputInterface *waylandOutput() const;
|
|
|
|
private Q_SLOTS:
|
|
void handleDpmsModeChanged();
|
|
void handleDpmsModeRequested(KWaylandServer::OutputInterface::DpmsMode dpmsMode);
|
|
|
|
void update();
|
|
void scheduleUpdate();
|
|
|
|
private:
|
|
Output *m_platformOutput;
|
|
QTimer m_updateTimer;
|
|
KWaylandServer::ScopedGlobalPointer<KWaylandServer::OutputInterface> m_waylandOutput;
|
|
KWaylandServer::XdgOutputV1Interface *m_xdgOutputV1;
|
|
};
|
|
|
|
} // namespace KWin
|