aboutsummaryrefslogtreecommitdiff
path: root/drm/DrmDevice.h
diff options
context:
space:
mode:
Diffstat (limited to 'drm/DrmDevice.h')
-rw-r--r--drm/DrmDevice.h18
1 files changed, 14 insertions, 4 deletions
diff --git a/drm/DrmDevice.h b/drm/DrmDevice.h
index f2530ee..4cf0132 100644
--- a/drm/DrmDevice.h
+++ b/drm/DrmDevice.h
@@ -31,18 +31,23 @@ namespace android {
class DrmFbImporter;
class DrmPlane;
+class ResourceManager;
class DrmDevice {
public:
- DrmDevice();
~DrmDevice() = default;
- auto Init(const char *path) -> int;
+ static auto CreateInstance(std::string const &path, ResourceManager *res_man)
+ -> std::unique_ptr<DrmDevice>;
auto GetFd() const {
return fd_.Get();
}
+ auto &GetResMan() {
+ return *res_man_;
+ }
+
auto GetConnectors() -> const std::vector<std::unique_ptr<DrmConnector>> &;
auto GetPlanes() -> const std::vector<std::unique_ptr<DrmPlane>> &;
auto GetCrtcs() -> const std::vector<std::unique_ptr<DrmCrtc>> &;
@@ -69,8 +74,6 @@ class DrmDevice {
return *drm_fb_importer_;
}
- static auto IsKMSDev(const char *path) -> bool;
-
auto FindCrtcById(uint32_t id) const -> DrmCrtc * {
for (const auto &crtc : crtcs_) {
if (crtc->GetId() == id) {
@@ -95,6 +98,11 @@ class DrmDevice {
DrmProperty *property) const;
private:
+ explicit DrmDevice(ResourceManager *res_man);
+ auto Init(const char *path) -> int;
+
+ static auto IsKMSDev(const char *path) -> bool;
+
UniqueFd fd_;
std::vector<std::unique_ptr<DrmConnector>> connectors_;
@@ -109,6 +117,8 @@ class DrmDevice {
bool HasAddFb2ModifiersSupport_{};
std::unique_ptr<DrmFbImporter> drm_fb_importer_;
+
+ ResourceManager *const res_man_;
};
} // namespace android