template <typename T> using DrmPropertyMember = DrmProperty T::*;
template <typename T> using DrmPropertyMemberMap = std::unordered_map<std::string, DrmPropertyMember<T>>;
// Helper to many DrmProperty members for DrmCrtc, DrmConnector, and DrmPlane. template <typename T> bool LoadDrmProperties(::android::base::borrowed_fd drmFd, uint32_t objectId, uint32_t objectType, const DrmPropertyMemberMap<T>& objectPropertyMap, T* object) { auto drmProperties = drmModeObjectGetProperties(drmFd.get(), objectId, objectType); if (!drmProperties) {
ALOGE("%s: Failed to get properties: %s", __FUNCTION__, strerror(errno)); returnfalse;
}
for (uint32_t i = 0; i < drmProperties->count_props; ++i) { constauto propertyId = drmProperties->props[i];
auto drmProperty = drmModeGetProperty(drmFd.get(), propertyId); if (!drmProperty) {
ALOGE("%s: Failed to get property: %s", __FUNCTION__, strerror(errno)); continue;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.