diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-01-25 13:19:44 +0200 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2017-01-25 13:20:20 +0200 |
commit | 526c26ceec669e4b317f9dc7dc1270ca8a3b4478 (patch) | |
tree | e2ab0497eaf649792f1e1bc2f7d482e6719f251d /kms++/src/connector.cpp | |
parent | 8e93fa0bb51744cb3c33ce7308c204caa68e40f8 (diff) |
Add refresh() to connector, crtc and encoder
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'kms++/src/connector.cpp')
-rw-r--r-- | kms++/src/connector.cpp | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/kms++/src/connector.cpp b/kms++/src/connector.cpp index 7c6c179..48c5815 100644 --- a/kms++/src/connector.cpp +++ b/kms++/src/connector.cpp @@ -73,13 +73,27 @@ Connector::Connector(Card &card, uint32_t id, uint32_t idx) m_fullname = name + "-" + to_string(m_priv->drm_connector->connector_type_id); } - Connector::~Connector() { drmModeFreeConnector(m_priv->drm_connector); delete m_priv; } +void Connector::refresh() +{ + drmModeFreeConnector(m_priv->drm_connector); + + m_priv->drm_connector = drmModeGetConnector(this->card().fd(), this->id()); + assert(m_priv->drm_connector); + + // XXX drmModeGetConnector() does forced probe, which seems to change (at least) EDID blob id. + // XXX So refresh the props again here. + refresh_props(); + + const auto& name = connector_names.at(m_priv->drm_connector->connector_type); + m_fullname = name + "-" + to_string(m_priv->drm_connector->connector_type_id); +} + void Connector::setup() { if (m_priv->drm_connector->encoder_id != 0) |