diff --git a/libkms++/drmobject.cpp b/libkms++/drmobject.cpp
index 063ae327faba5d49413055344ea7a8ffc6dc0165..76a7e8c2b992c6dfb579436fcd7087e8ccb34896 100644 (file)
--- a/libkms++/drmobject.cpp
+++ b/libkms++/drmobject.cpp
{
DrmObject::DrmObject(Card& card, uint32_t object_type)
- :m_card(card), m_id(-1), m_object_type(object_type)
+ :m_card(card), m_id(-1), m_object_type(object_type), m_idx(0)
{
}
return m_prop_values.at(prop->id());
}
- throw invalid_argument(string(name) + ": property not found");
+ throw invalid_argument("property not found: " + name);
+}
+
+int DrmObject::set_prop_value(uint32_t id, uint64_t value)
+{
+ return drmModeObjectSetProperty(card().fd(), this->id(), this->object_type(), id, value);
+}
+
+int DrmObject::set_prop_value(const string &name, uint64_t value)
+{
+ Property* prop = card().get_prop(name);
+
+ if (prop == nullptr)
+ throw invalid_argument("property not found: " + name);
+
+ return set_prop_value(prop->id(), value);
}
void DrmObject::set_id(uint32_t id)