diff --git a/include/events/OsEventHandler.h b/include/events/OsEventHandler.h index 7b8952aa..f3cd590b 100644 --- a/include/events/OsEventHandler.h +++ b/include/events/OsEventHandler.h @@ -68,7 +68,7 @@ protected: #else bool nativeEventFilter(const QByteArray& eventType, void* message, long int* result) override; #endif -^ + private: bool registerOsEventHandler() override; diff --git a/include/grabber/V4L2Grabber.h b/include/grabber/V4L2Grabber.h index 341b3e6c..4993ea7c 100644 --- a/include/grabber/V4L2Grabber.h +++ b/include/grabber/V4L2Grabber.h @@ -92,7 +92,7 @@ public slots: void stop(); void newThreadFrame(Image image); - void handleEvent(Event event); + void handleEvent(Event event) override; signals: void newFrame(const Image & image); diff --git a/include/grabber/VideoWrapper.h b/include/grabber/VideoWrapper.h index 3338ea1b..61804044 100644 --- a/include/grabber/VideoWrapper.h +++ b/include/grabber/VideoWrapper.h @@ -9,8 +9,6 @@ #include #endif -#include - class VideoWrapper : public GrabberWrapper { Q_OBJECT @@ -23,8 +21,6 @@ public slots: bool start() override; void stop() override; - void handleEvent(Event event); - void handleSettingsUpdate(settings::type type, const QJsonDocument& config) override; private slots: diff --git a/include/hyperion/Grabber.h b/include/hyperion/Grabber.h index ce5b350e..e3f12604 100644 --- a/include/hyperion/Grabber.h +++ b/include/hyperion/Grabber.h @@ -11,6 +11,8 @@ #include #include +#include + /// /// @brief The Grabber class is responsible to apply image resizes (with or without ImageResampler) @@ -111,6 +113,10 @@ public: QString getGrabberName() const { return _grabberName; } +public slots: + + virtual void handleEvent(Event event) {} + protected slots: /// /// @brief Set device in error state diff --git a/include/hyperion/GrabberWrapper.h b/include/hyperion/GrabberWrapper.h index 8edf6ab0..742c7071 100644 --- a/include/hyperion/GrabberWrapper.h +++ b/include/hyperion/GrabberWrapper.h @@ -18,6 +18,8 @@ #include +#include + class Grabber; class GlobalSignals; class QTimer; @@ -139,6 +141,8 @@ public slots: /// virtual void handleSettingsUpdate(settings::type type, const QJsonDocument& config); + void handleEvent(Event event); + signals: /// /// @brief Emit the final processed image diff --git a/libsrc/events/CMakeLists.txt b/libsrc/events/CMakeLists.txt index 12fef45e..93bf17de 100644 --- a/libsrc/events/CMakeLists.txt +++ b/libsrc/events/CMakeLists.txt @@ -23,3 +23,8 @@ endif(UNIX) target_include_directories(events PUBLIC ${CURRENT_HEADER_DIR} ) + +target_link_libraries(events + Qt${QT_VERSION_MAJOR}::Core + Qt${QT_VERSION_MAJOR}::Widgets +) diff --git a/libsrc/grabber/video/VideoWrapper.cpp b/libsrc/grabber/video/VideoWrapper.cpp index 97ab0996..14009299 100644 --- a/libsrc/grabber/video/VideoWrapper.cpp +++ b/libsrc/grabber/video/VideoWrapper.cpp @@ -2,8 +2,6 @@ #include -#include - // qt includes #include @@ -24,8 +22,6 @@ VideoWrapper::VideoWrapper() connect(&_grabber, SIGNAL(readError(const char*)), this, SLOT(readError(const char*)), Qt::DirectConnection); connect(&_grabber, SIGNAL(readError(const char*)), this, SLOT(readError(const char*)), Qt::DirectConnection); - - QObject::connect(EventHandler::getInstance(), &EventHandler::signalEvent, this, &VideoWrapper::handleEvent); } VideoWrapper::~VideoWrapper() @@ -44,11 +40,6 @@ void VideoWrapper::stop() GrabberWrapper::stop(); } -void VideoWrapper::handleEvent(Event event) -{ - _grabber.handleEvent(event); -} - void VideoWrapper::handleSettingsUpdate(settings::type type, const QJsonDocument& config) { if(type == settings::V4L2 && _grabberName.startsWith("V4L2")) diff --git a/libsrc/hyperion/GrabberWrapper.cpp b/libsrc/hyperion/GrabberWrapper.cpp index e0e4a27c..11161837 100644 --- a/libsrc/hyperion/GrabberWrapper.cpp +++ b/libsrc/hyperion/GrabberWrapper.cpp @@ -5,6 +5,7 @@ // utils includes #include +#include // qt #include @@ -49,6 +50,8 @@ GrabberWrapper::GrabberWrapper(const QString& grabberName, Grabber * ggrabber, i // listen for source requests connect(GlobalSignals::getInstance(), &GlobalSignals::requestSource, this, &GrabberWrapper::handleSourceRequest); + + QObject::connect(EventHandler::getInstance(), &EventHandler::signalEvent, this, &GrabberWrapper::handleEvent); } GrabberWrapper::~GrabberWrapper() @@ -83,6 +86,11 @@ void GrabberWrapper::stop() } } +void GrabberWrapper::handleEvent(Event event) +{ + _ggrabber->handleEvent(event); +} + bool GrabberWrapper::isActive() const { return _timer->isActive();