From d0c7d0826f14b37ce06582eb3cb20915275caea5 Mon Sep 17 00:00:00 2001 From: Tomi Valkeinen Date: Fri, 6 Nov 2015 22:19:44 +0200 Subject: card: use object vectors --- libkms++/card.cpp | 19 ++++--------------- libkms++/card.h | 2 +- 2 files changed, 5 insertions(+), 16 deletions(-) diff --git a/libkms++/card.cpp b/libkms++/card.cpp index 038d494..06a237f 100644 --- a/libkms++/card.cpp +++ b/libkms++/card.cpp @@ -153,11 +153,7 @@ void Card::print_short() const Property* Card::get_prop(const string& name) const { - for (auto pair : m_obmap) { - auto prop = dynamic_cast(pair.second); - if (!prop) - continue; - + for (auto prop : m_properties) { if (name == prop->name()) return prop; } @@ -167,10 +163,8 @@ Property* Card::get_prop(const string& name) const Connector* Card::get_first_connected_connector() const { - for(auto pair : m_obmap) { - auto c = dynamic_cast(pair.second); - - if (c && c->connected()) + for(auto c : m_connectors) { + if (c->connected()) return c; } @@ -192,12 +186,7 @@ const vector Card::get_objects() const Crtc* Card::get_crtc_by_index(uint32_t idx) const { - for(auto pair : m_obmap) { - auto crtc = dynamic_cast(pair.second); - if (crtc && crtc->idx() == idx) - return crtc; - } - throw invalid_argument(string("Crtc #") + to_string(idx) + " not found"); + return m_crtcs[idx]; } Connector* Card::get_connector(uint32_t id) const { return dynamic_cast(get_object(id)); } diff --git a/libkms++/card.h b/libkms++/card.h index cfc1cf2..7232467 100644 --- a/libkms++/card.h +++ b/libkms++/card.h @@ -27,9 +27,9 @@ public: Crtc* get_crtc(uint32_t id) const; Crtc* get_crtc_by_index(uint32_t idx) const; Encoder* get_encoder(uint32_t id) const; + Plane* get_plane(uint32_t id) const; Property* get_prop(uint32_t id) const; Property* get_prop(const std::string& name) const; - Plane* get_plane(uint32_t id) const; bool master() const { return m_master; } bool has_atomic() const { return m_has_atomic; } -- cgit v1.2.3