]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android/external-libkmsxx.git/blobdiff - libkms++/card.h
Card: support opening specific drm device
[android/external-libkmsxx.git] / libkms++ / card.h
index e692dac40633cd389763a274110111e289f5c9fb..6cf0c0277c381c7b0a7df7566bc32940c4e26617 100644 (file)
@@ -11,8 +11,10 @@ namespace kms
 {
 class Card
 {
+       friend class Framebuffer;
 public:
        Card();
+       Card(const std::string& device);
        ~Card();
 
        Card(const Card& other) = delete;
@@ -23,9 +25,11 @@ public:
        Connector* get_first_connected_connector() const;
 
        DrmObject* get_object(uint32_t id) const;
+       Connector* get_connector(uint32_t id) const;
        Crtc* get_crtc(uint32_t id) const;
        Crtc* get_crtc_by_index(uint32_t idx) const;
        Encoder* get_encoder(uint32_t id) const;
+       Plane* get_plane(uint32_t id) const;
        Property* get_prop(uint32_t id) const;
        Property* get_prop(const std::string& name) const;
 
@@ -33,11 +37,13 @@ public:
        bool has_atomic() const { return m_has_atomic; }
        bool has_has_universal_planes() const { return m_has_universal_planes; }
 
-       void print_short() const;
+       const std::vector<Connector*> get_connectors() const { return m_connectors; }
+       const std::vector<Encoder*> get_encoders() const { return m_encoders; }
+       const std::vector<Crtc*> get_crtcs() const { return m_crtcs; }
+       const std::vector<Plane*> get_planes() const { return m_planes; }
+       const std::vector<Property*> get_properties() const { return m_properties; }
 
-       std::vector<Connector*> get_connectors() const;
-       std::vector<DrmObject*> get_objects() const;
-       std::vector<Plane*> get_planes() const;
+       const std::vector<DrmObject*> get_objects() const;
 
        std::vector<Pipeline> get_connected_pipelines();
 
@@ -48,6 +54,13 @@ private:
 
        std::map<uint32_t, DrmObject*> m_obmap;
 
+       std::vector<Connector*> m_connectors;
+       std::vector<Encoder*> m_encoders;
+       std::vector<Crtc*> m_crtcs;
+       std::vector<Plane*> m_planes;
+       std::vector<Property*> m_properties;
+       std::vector<Framebuffer*> m_framebuffers;
+
        int m_fd;
        bool m_master;