#pragma once #include #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 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 get_modes() const; std::vector 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; }; }