diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-08-11 15:42:18 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-08-17 18:32:38 +0300 |
commit | 0c3fd6eb14fe83e62793eaed552529d21790195f (patch) | |
tree | f584806387e8d732275e962d9e8d25cd9731082c /include | |
parent | b566e97aacd4d4c023526671bafc371ed2eca2c3 (diff) |
libcamera: event_notifier: Bind event notifiers to threads
The EventNotifier instances are registered with the event dispatcher
instance of the CameraManager. This makes it impossible to use event
notifiers in other threads.
Fix this by inheriting from Object, which allows binding instances to a
thread, and register them with the event dispatcher for the thread they
are bound to.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include')
-rw-r--r-- | include/libcamera/event_notifier.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/include/libcamera/event_notifier.h b/include/libcamera/event_notifier.h index 1e9b6da1..f80945c7 100644 --- a/include/libcamera/event_notifier.h +++ b/include/libcamera/event_notifier.h @@ -7,11 +7,14 @@ #ifndef __LIBCAMERA_EVENT_NOTIFIER_H__ #define __LIBCAMERA_EVENT_NOTIFIER_H__ +#include <libcamera/object.h> #include <libcamera/signal.h> namespace libcamera { -class EventNotifier +class Message; + +class EventNotifier : public Object { public: enum Type { @@ -31,6 +34,9 @@ public: Signal<EventNotifier *> activated; +protected: + void message(Message *msg) override; + private: int fd_; Type type_; |