diff options
Diffstat (limited to 'drm/DrmDevice.h')
-rw-r--r-- | drm/DrmDevice.h | 29 |
1 files changed, 24 insertions, 5 deletions
diff --git a/drm/DrmDevice.h b/drm/DrmDevice.h index be68aa6..dfca263 100644 --- a/drm/DrmDevice.h +++ b/drm/DrmDevice.h @@ -26,10 +26,15 @@ #include "DrmCrtc.h" #include "DrmEncoder.h" #include "DrmEventListener.h" +#include "DrmFbImporter.h" #include "DrmPlane.h" +#include "utils/UniqueFd.h" namespace android { +class DrmFbImporter; +class DrmPlane; + class DrmDevice { public: DrmDevice(); @@ -38,7 +43,7 @@ class DrmDevice { std::tuple<int, int> Init(const char *path, int num_displays); int fd() const { - return fd_.get(); + return fd_.Get(); } const std::vector<std::unique_ptr<DrmConnector>> &connectors() const { @@ -71,22 +76,30 @@ class DrmDevice { int GetConnectorProperty(const DrmConnector &connector, const char *prop_name, DrmProperty *property); - const std::string GetName() const; + std::string GetName() const; const std::vector<std::unique_ptr<DrmCrtc>> &crtcs() const; uint32_t next_mode_id(); - int CreatePropertyBlob(void *data, size_t length, uint32_t *blob_id); - int DestroyPropertyBlob(uint32_t blob_id); + int CreatePropertyBlob(void *data, size_t length, uint32_t *blob_id) const; + int DestroyPropertyBlob(uint32_t blob_id) const; bool HandlesDisplay(int display) const; void RegisterHotplugHandler(DrmEventHandler *handler) { event_listener_.RegisterHotplugHandler(handler); } + bool HasAddFb2ModifiersSupport() const { + return HasAddFb2ModifiersSupport_; + } + + DrmFbImporter &GetDrmFbImporter() { + return *mDrmFbImporter.get(); + } + private: int TryEncoderForDisplay(int display, DrmEncoder *enc); int GetProperty(uint32_t obj_id, uint32_t obj_type, const char *prop_name, - DrmProperty *property); + DrmProperty *property) const; int CreateDisplayPipe(DrmConnector *connector); int AttachWriteback(DrmConnector *display_conn); @@ -104,6 +117,12 @@ class DrmDevice { std::pair<uint32_t, uint32_t> min_resolution_; std::pair<uint32_t, uint32_t> max_resolution_; std::map<int, int> displays_; + + bool HasAddFb2ModifiersSupport_{}; + + std::shared_ptr<DrmDevice> self; + + std::unique_ptr<DrmFbImporter> mDrmFbImporter; }; } // namespace android |