summaryrefslogtreecommitdiff
path: root/src/libcamera/event_notifier.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/event_notifier.cpp')
-rw-r--r--src/libcamera/event_notifier.cpp17
1 files changed, 16 insertions, 1 deletions
diff --git a/src/libcamera/event_notifier.cpp b/src/libcamera/event_notifier.cpp
index b32c7ed2..96be2760 100644
--- a/src/libcamera/event_notifier.cpp
+++ b/src/libcamera/event_notifier.cpp
@@ -10,6 +10,9 @@
#include <libcamera/camera_manager.h>
#include <libcamera/event_dispatcher.h>
+#include "message.h"
+#include "thread.h"
+
/**
* \file event_notifier.h
* \brief File descriptor event notifier
@@ -103,7 +106,7 @@ void EventNotifier::setEnabled(bool enable)
enabled_ = enable;
- EventDispatcher *dispatcher = CameraManager::instance()->eventDispatcher();
+ EventDispatcher *dispatcher = thread()->eventDispatcher();
if (enable)
dispatcher->registerEventNotifier(this);
else
@@ -119,4 +122,16 @@ void EventNotifier::setEnabled(bool enable)
* parameter.
*/
+void EventNotifier::message(Message *msg)
+{
+ if (msg->type() == Message::ThreadMoveMessage) {
+ if (enabled_) {
+ setEnabled(false);
+ invokeMethod(&EventNotifier::setEnabled, true);
+ }
+ }
+
+ Object::message(msg);
+}
+
} /* namespace libcamera */