a897d31d7d79bfad828b57bfd23298a480d94ac0
1 #pragma once
3 #include <vector>
5 #include "drmobject.h"
6 #include "videomode.h"
8 namespace kms
9 {
11 struct ConnectorPriv;
13 class Connector : public DrmObject
14 {
15 friend class Card;
16 public:
17 Videomode get_default_mode() const;
19 Videomode get_mode(const std::string& mode) const;
21 Crtc* get_current_crtc() const;
22 std::vector<Crtc*> get_possible_crtcs() const;
24 bool connected() const;
26 const std::string& fullname() const { return m_fullname; }
27 uint32_t connector_type() const;
28 uint32_t connector_type_id() const;
29 uint32_t mmWidth() const;
30 uint32_t mmHeight() const;
31 uint32_t subpixel() const;
32 const std::string& subpixel_str() const;
33 std::vector<Videomode> get_modes() const;
34 std::vector<Encoder*> get_encoders() const;
35 private:
36 Connector(Card& card, uint32_t id, uint32_t idx);
37 ~Connector();
39 void setup();
40 void restore_mode();
42 ConnectorPriv* m_priv;
44 std::string m_fullname;
46 Encoder* m_current_encoder;
48 Crtc* m_saved_crtc;
49 };
50 }