File indexing completed on 2024-05-05 17:39:39

0001 /*
0002  *  SPDX-FileCopyrightText: 2012 Alejandro Fiestas Olivares <afiestas@kde.org>
0003  *
0004  *  SPDX-License-Identifier: LGPL-2.1-or-later
0005  */
0006 
0007 #ifndef XRANDR11_BACKEND_H
0008 #define XRANDR11_BACKEND_H
0009 
0010 #include "abstractbackend.h"
0011 
0012 #include <QLoggingCategory>
0013 #include <QObject>
0014 
0015 #include <xcb/xcb.h>
0016 
0017 class XCBEventListener;
0018 
0019 class XRandR11 : public KScreen::AbstractBackend
0020 {
0021     Q_OBJECT
0022     Q_PLUGIN_METADATA(IID "org.kf5.kscreen.backends.xrandr11")
0023 
0024 public:
0025     explicit XRandR11();
0026     ~XRandR11() override;
0027 
0028     QString name() const override;
0029     QString serviceName() const override;
0030     KScreen::ConfigPtr config() const override;
0031     void setConfig(const KScreen::ConfigPtr &config) override;
0032     bool isValid() const override;
0033 
0034 private Q_SLOTS:
0035     void updateConfig();
0036 
0037 private:
0038     bool m_valid;
0039     XCBEventListener *m_x11Helper;
0040     KScreen::ConfigPtr m_currentConfig;
0041     xcb_timestamp_t m_currentTimestamp;
0042 };
0043 
0044 Q_DECLARE_LOGGING_CATEGORY(KSCREEN_XRANDR11)
0045 
0046 #endif // FAKE_BACKEND_H