diff options
Diffstat (limited to 'kms++')
-rw-r--r-- | kms++/inc/kms++/card.h | 1 | ||||
-rw-r--r-- | kms++/src/card.cpp | 8 |
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()) |