summaryrefslogtreecommitdiff
path: root/kms++
diff options
context:
space:
mode:
Diffstat (limited to 'kms++')
-rw-r--r--kms++/inc/kms++/card.h1
-rw-r--r--kms++/src/card.cpp8
2 files changed, 7 insertions, 2 deletions
diff --git a/kms++/inc/kms++/card.h b/kms++/inc/kms++/card.h
index 4b0d877..a2c27f8 100644
--- a/kms++/inc/kms++/card.h
+++ b/kms++/inc/kms++/card.h
@@ -41,6 +41,7 @@ public:
bool has_atomic() const { return m_has_atomic; }
bool has_has_universal_planes() const { return m_has_universal_planes; }
bool has_dumb_buffers() const { return m_has_dumb; }
+ bool has_kms() const;
const std::vector<Connector*> get_connectors() const { return m_connectors; }
const std::vector<Encoder*> get_encoders() const { return m_encoders; }
diff --git a/kms++/src/card.cpp b/kms++/src/card.cpp
index f404d3a..85c693b 100644
--- a/kms++/src/card.cpp
+++ b/kms++/src/card.cpp
@@ -46,8 +46,7 @@ unique_ptr<Card> Card::open_modesetting_card()
for (const string& path : paths) {
unique_ptr<Card> card = unique_ptr<Card>(new Card(path));
- if (card->get_connectors().size() > 0 &&
- card->get_crtcs().size() > 0)
+ if (card->has_kms())
return card;
}
@@ -259,6 +258,11 @@ void Card::drop_master()
m_is_master = false;
}
+bool Card::has_kms() const
+{
+ return m_connectors.size() > 0 && m_encoders.size() > 0 && m_crtcs.size() > 0;
+}
+
void Card::restore_modes()
{
for (auto conn : get_connectors())