diff options
Diffstat (limited to 'kms++/connector.h')
-rw-r--r-- | kms++/connector.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/kms++/connector.h b/kms++/connector.h new file mode 100644 index 0000000..6ccc959 --- /dev/null +++ b/kms++/connector.h @@ -0,0 +1,51 @@ +#pragma once + +#include <vector> + +#include "drmpropobject.h" +#include "videomode.h" + +namespace kms +{ + +struct ConnectorPriv; + +class Connector : public DrmPropObject +{ + friend class Card; +public: + Videomode get_default_mode() const; + + Videomode get_mode(const std::string& mode) const; + Videomode get_mode(unsigned xres, unsigned yres, unsigned refresh, bool ilace) const; + + Crtc* get_current_crtc() const; + std::vector<Crtc*> get_possible_crtcs() const; + + bool connected() const; + + const std::string& fullname() const { return m_fullname; } + uint32_t connector_type() const; + uint32_t connector_type_id() const; + uint32_t mmWidth() const; + uint32_t mmHeight() const; + uint32_t subpixel() const; + const std::string& subpixel_str() const; + std::vector<Videomode> get_modes() const; + std::vector<Encoder*> get_encoders() const; +private: + Connector(Card& card, uint32_t id, uint32_t idx); + ~Connector(); + + void setup(); + void restore_mode(); + + ConnectorPriv* m_priv; + + std::string m_fullname; + + Encoder* m_current_encoder; + + Crtc* m_saved_crtc; +}; +} |