diff options
author | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2021-10-25 22:54:20 +0300 |
---|---|---|
committer | Roman Stratiienko <roman.o.stratiienko@globallogic.com> | 2021-11-10 19:30:24 +0200 |
commit | 1e053b4e1913beeddc74b423cbd3a753192822c0 (patch) | |
tree | 0574a41802b58be8de9a050a507c55383ce22674 /drm/ResourceManager.h | |
parent | 2a1f1ae02d31dcb0ca39de2da103539cb7e4aae7 (diff) | |
download | drm_hwcomposer-1e053b4e1913beeddc74b423cbd3a753192822c0.tar.gz |
drm_hwcomposer: Make uevent listener standalone
1. DRM event listener doesn't work in this conditions, uevent blocks
the thread and non-blocking select() doesn't make any sense.
Remove DRM event handling for now.
2. UEvent listeren is common for all DrmDevices, therefore put it into
ResourceManager class.
Signed-off-by: Roman Stratiienko <roman.o.stratiienko@globallogic.com>
Diffstat (limited to 'drm/ResourceManager.h')
-rw-r--r-- | drm/ResourceManager.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drm/ResourceManager.h b/drm/ResourceManager.h index d9e0712..5ffe92c 100644 --- a/drm/ResourceManager.h +++ b/drm/ResourceManager.h @@ -20,6 +20,7 @@ #include <string.h> #include "DrmDevice.h" +#include "UEventListener.h" #include "DrmFbImporter.h" namespace android { @@ -29,6 +30,10 @@ class ResourceManager { ResourceManager(); ResourceManager(const ResourceManager &) = delete; ResourceManager &operator=(const ResourceManager &) = delete; + ~ResourceManager() { + uevent_listener_.Exit(); + } + int Init(); DrmDevice *GetDrmDevice(int display); const std::vector<std::unique_ptr<DrmDevice>> &getDrmDevices() const { @@ -41,6 +46,10 @@ class ResourceManager { return scale_with_gpu_; } + UEventListener *GetUEventListener() { + return &uevent_listener_; + } + private: int AddDrmDevice(std::string const &path); @@ -48,6 +57,8 @@ class ResourceManager { std::vector<std::unique_ptr<DrmDevice>> drms_; bool scale_with_gpu_{}; + + UEventListener uevent_listener_; }; } // namespace android |