24 , m_objectType(objectType)
37 qCWarning(KWIN_DRM) <<
"Failed to get properties for object" << m_id;
41 for (uint32_t i = 0; i < properties->count_props; i++) {
44 qCWarning(KWIN_DRM,
"Getting property %d of object %d failed!", properties->props[i], m_id);
47 ret.
addProperty(std::move(prop), properties->prop_values[i]);
69 switch (m_objectType) {
70 case DRM_MODE_OBJECT_CONNECTOR:
71 return QStringLiteral(
"connector");
72 case DRM_MODE_OBJECT_CRTC:
73 return QStringLiteral(
"crtc");
74 case DRM_MODE_OBJECT_PLANE:
75 return QStringLiteral(
"plane");
77 return QStringLiteral(
"unknown?");
83 m_properties.push_back(std::make_pair(std::move(prop), value));
88 const auto it = std::find_if(m_properties.begin(), m_properties.end(), [&name](
const auto &pair) {
89 return pair.first->name == name;
91 if (it != m_properties.end()) {
92 auto ret = std::move(*it);
93 m_properties.erase(it);
103 QDebugStateSaver saver(s);
105 s.nospace() <<
"DrmObject(id=" << obj->
id() <<
", gpu=" << obj->
gpu() <<
')';
107 s <<
"DrmObject(0x0)";
DrmPropertyList queryProperties() const
virtual bool updateProperties()=0
DrmObject(const DrmObject &)=delete
void addProperty(DrmUniquePtr< drmModePropertyRes > &&prop, uint64_t value)
std::optional< std::pair< DrmUniquePtr< drmModePropertyRes >, uint64_t > > takeProperty(const QByteArray &name)
QDebug operator<<(QDebug s, const KWin::DrmObject *obj)
drmModeObjectPropertiesPtr drmModeObjectGetProperties(int fd, uint32_t object_id, uint32_t object_type)
drmModePropertyPtr drmModeGetProperty(int fd, uint32_t propertyId)
std::unique_ptr< T, DrmDeleter< T > > DrmUniquePtr