Warning, file /plasma/libkscreen/backends/kwayland/waylandoutputdevice.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /*
0002  *  SPDX-FileCopyrightText: 2014-2015 Sebastian Kügler <sebas@kde.org>
0003  *  SPDX-FileCopyrightText: 2021 Méven Car <meven.car@enioka.com>
0004  *
0005  *  SPDX-License-Identifier: LGPL-2.1-or-later
0006  */
0007 #ifndef WAYLANDOUTPUTDEVICE_H
0008 #define WAYLANDOUTPUTDEVICE_H
0009 
0010 #include "waylandoutputdevicemode.h"
0011 
0012 #include "qwayland-kde-output-device-v2.h"
0013 
0014 #include "kscreen_export.h"
0015 #include "types.h"
0016 
0017 #include <QPoint>
0018 #include <QSize>
0019 
0020 namespace KScreen
0021 {
0022 class WaylandOutputConfiguration;
0023 
0024 class WaylandOutputDevice : public QObject, public QtWayland::kde_output_device_v2
0025 {
0026     Q_OBJECT
0027 
0028 public:
0029     WaylandOutputDevice(int id);
0030 
0031     ~WaylandOutputDevice();
0032 
0033     QByteArray edid() const;
0034     bool enabled() const;
0035     int id() const;
0036     QString name() const;
0037     QString model() const;
0038     QString manufacturer() const;
0039     qreal scale() const;
0040     QPoint globalPosition() const;
0041     QSize pixelSize() const;
0042     int refreshRate() const;
0043     uint32_t vrrPolicy() const;
0044     uint32_t overscan() const;
0045     uint32_t capabilities() const;
0046     uint32_t rgbRange() const;
0047 
0048     OutputPtr toKScreenOutput();
0049     void updateKScreenOutput(OutputPtr &output);
0050     void updateKScreenModes(OutputPtr &output);
0051 
0052     bool isPrimary() const;
0053     void setPrimary(bool primary);
0054     void setIndex(uint32_t priority);
0055     uint32_t index() const;
0056     bool setWlConfig(WaylandOutputConfiguration *wlConfig, const KScreen::OutputPtr &output);
0057 
0058     QString modeId() const;
0059     QString uuid() const
0060     {
0061         return m_uuid;
0062     }
0063 
0064 Q_SIGNALS:
0065     void done();
0066 
0067 protected:
0068     void kde_output_device_v2_geometry(int32_t x,
0069                                        int32_t y,
0070                                        int32_t physical_width,
0071                                        int32_t physical_height,
0072                                        int32_t subpixel,
0073                                        const QString &make,
0074                                        const QString &model,
0075                                        int32_t transform) override;
0076     void kde_output_device_v2_current_mode(struct ::kde_output_device_mode_v2 *mode) override;
0077     void kde_output_device_v2_mode(struct ::kde_output_device_mode_v2 *mode) override;
0078     void kde_output_device_v2_done() override;
0079     void kde_output_device_v2_scale(wl_fixed_t factor) override;
0080     void kde_output_device_v2_edid(const QString &raw) override;
0081     void kde_output_device_v2_enabled(int32_t enabled) override;
0082     void kde_output_device_v2_uuid(const QString &uuid) override;
0083     void kde_output_device_v2_serial_number(const QString &serialNumber) override;
0084     void kde_output_device_v2_eisa_id(const QString &eisaId) override;
0085     void kde_output_device_v2_capabilities(uint32_t flags) override;
0086     void kde_output_device_v2_overscan(uint32_t overscan) override;
0087     void kde_output_device_v2_vrr_policy(uint32_t vrr_policy) override;
0088     void kde_output_device_v2_rgb_range(uint32_t rgb_range) override;
0089     void kde_output_device_v2_name(const QString &name) override;
0090 
0091 private:
0092     QString modeName(const WaylandOutputDeviceMode *m) const;
0093     WaylandOutputDeviceMode *deviceModeFromId(const int modeId) const;
0094 
0095     WaylandOutputDeviceMode *m_mode;
0096     QList<WaylandOutputDeviceMode *> m_modes;
0097 
0098     int m_id;
0099     QPoint m_pos;
0100     QSize m_physicalSize;
0101     int32_t m_subpixel;
0102     QString m_manufacturer;
0103     QString m_model;
0104     int32_t m_transform;
0105     qreal m_factor;
0106     QByteArray m_edid;
0107     int32_t m_enabled;
0108     QString m_uuid;
0109     QString m_serialNumber;
0110     QString m_outputName;
0111     QString m_eisaId;
0112     uint32_t m_flags;
0113     uint32_t m_overscan;
0114     uint32_t m_vrr_policy;
0115     uint32_t m_rgbRange;
0116     uint32_t m_index;
0117 };
0118 
0119 }
0120 
0121 KSCREEN_EXPORT QDebug operator<<(QDebug dbg, const KScreen::WaylandOutputDevice *output);
0122 
0123 #endif // WAYLANDOUTPUTDEVICE_H