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