summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/qcam/main.cpp3
-rw-r--r--src/qcam/meson.build1
-rw-r--r--src/qcam/qt_event_dispatcher.cpp152
-rw-r--r--src/qcam/qt_event_dispatcher.h62
4 files changed, 0 insertions, 218 deletions
diff --git a/src/qcam/main.cpp b/src/qcam/main.cpp
index a7ff5c52..29745391 100644
--- a/src/qcam/main.cpp
+++ b/src/qcam/main.cpp
@@ -15,7 +15,6 @@
#include "main_window.h"
#include "../cam/options.h"
-#include "qt_event_dispatcher.h"
void signalHandler(int signal)
{
@@ -62,9 +61,7 @@ int main(int argc, char **argv)
sa.sa_handler = &signalHandler;
sigaction(SIGINT, &sa, nullptr);
- std::unique_ptr<EventDispatcher> dispatcher(new QtEventDispatcher());
CameraManager *cm = new CameraManager();
- cm->setEventDispatcher(std::move(dispatcher));
ret = cm->start();
if (ret) {
diff --git a/src/qcam/meson.build b/src/qcam/meson.build
index 5150631b..214bfb12 100644
--- a/src/qcam/meson.build
+++ b/src/qcam/meson.build
@@ -3,7 +3,6 @@ qcam_sources = files([
'main.cpp',
'main_window.cpp',
'../cam/options.cpp',
- 'qt_event_dispatcher.cpp',
'viewfinder.cpp',
])
diff --git a/src/qcam/qt_event_dispatcher.cpp b/src/qcam/qt_event_dispatcher.cpp
deleted file mode 100644
index 2780c912..00000000
--- a/src/qcam/qt_event_dispatcher.cpp
+++ /dev/null
@@ -1,152 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2019, Google Inc.
- *
- * qt_event_dispatcher.cpp - qcam - Qt-based event dispatcher
- */
-
-#include <chrono>
-#include <iostream>
-
-#include <QAbstractEventDispatcher>
-#include <QCoreApplication>
-#include <QSocketNotifier>
-#include <QTimerEvent>
-
-#include <libcamera/event_notifier.h>
-#include <libcamera/timer.h>
-
-#include "qt_event_dispatcher.h"
-
-using namespace libcamera;
-
-QtEventDispatcher::QtEventDispatcher()
-{
-}
-
-QtEventDispatcher::~QtEventDispatcher()
-{
- for (auto &it : notifiers_) {
- NotifierSet &set = it.second;
- delete set.read.qnotifier;
- delete set.write.qnotifier;
- delete set.exception.qnotifier;
- }
-}
-
-void QtEventDispatcher::registerEventNotifier(EventNotifier *notifier)
-{
- NotifierSet &set = notifiers_[notifier->fd()];
- QSocketNotifier::Type qtype;
- void (QtEventDispatcher::*method)(int);
- NotifierPair *pair;
-
- switch (notifier->type()) {
- case EventNotifier::Read:
- default:
- qtype = QSocketNotifier::Read;
- method = &QtEventDispatcher::readNotifierActivated;
- pair = &set.read;
- break;
-
- case EventNotifier::Write:
- qtype = QSocketNotifier::Write;
- method = &QtEventDispatcher::writeNotifierActivated;
- pair = &set.write;
- break;
-
- case EventNotifier::Exception:
- qtype = QSocketNotifier::Exception;
- method = &QtEventDispatcher::exceptionNotifierActivated;
- pair = &set.exception;
- break;
- }
-
- QSocketNotifier *qnotifier = new QSocketNotifier(notifier->fd(), qtype);
- connect(qnotifier, &QSocketNotifier::activated, this, method);
- pair->notifier = notifier;
- pair->qnotifier = qnotifier;
-}
-
-void QtEventDispatcher::unregisterEventNotifier(EventNotifier *notifier)
-{
- NotifierSet &set = notifiers_[notifier->fd()];
- NotifierPair *pair;
-
- switch (notifier->type()) {
- case EventNotifier::Read:
- default:
- pair = &set.read;
- break;
-
- case EventNotifier::Write:
- pair = &set.write;
- break;
-
- case EventNotifier::Exception:
- pair = &set.exception;
- break;
- }
-
- delete pair->qnotifier;
- pair->qnotifier = nullptr;
- pair->notifier = nullptr;
-}
-
-void QtEventDispatcher::readNotifierActivated(int socket)
-{
- EventNotifier *notifier = notifiers_[socket].read.notifier;
- notifier->activated.emit(notifier);
-}
-
-void QtEventDispatcher::writeNotifierActivated(int socket)
-{
- EventNotifier *notifier = notifiers_[socket].write.notifier;
- notifier->activated.emit(notifier);
-}
-
-void QtEventDispatcher::exceptionNotifierActivated(int socket)
-{
- EventNotifier *notifier = notifiers_[socket].exception.notifier;
- notifier->activated.emit(notifier);
-}
-
-void QtEventDispatcher::registerTimer(Timer *timer)
-{
- std::chrono::steady_clock::time_point now = std::chrono::steady_clock::now();
- std::chrono::steady_clock::duration duration = timer->deadline() - now;
- std::chrono::milliseconds msec =
- std::chrono::duration_cast<std::chrono::milliseconds>(duration);
- int timerId = startTimer(msec.count());
- timers_[timerId] = timer;
- timerIds_[timer] = timerId;
-}
-
-void QtEventDispatcher::unregisterTimer(Timer *timer)
-{
- auto it = timerIds_.find(timer);
- if (it == timerIds_.end())
- return;
-
- timers_.erase(it->second);
- killTimer(it->second);
- timerIds_.erase(it);
-}
-
-void QtEventDispatcher::timerEvent(QTimerEvent *event)
-{
- Timer *timer = timers_[event->timerId()];
- timer->stop();
- timer->timeout.emit(timer);
-}
-
-void QtEventDispatcher::processEvents()
-{
- std::cout << "QtEventDispatcher::processEvents() should not be called"
- << std::endl;
-}
-
-void QtEventDispatcher::interrupt()
-{
- QCoreApplication::eventDispatcher()->interrupt();
-}
diff --git a/src/qcam/qt_event_dispatcher.h b/src/qcam/qt_event_dispatcher.h
deleted file mode 100644
index b0f123e5..00000000
--- a/src/qcam/qt_event_dispatcher.h
+++ /dev/null
@@ -1,62 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-or-later */
-/*
- * Copyright (C) 2019, Google Inc.
- *
- * qt_event_dispatcher.h - qcam - Qt-based event dispatcher
- */
-#ifndef __QCAM_QT_EVENT_DISPATCHER_H__
-#define __QCAM_QT_EVENT_DISPATCHER_H__
-
-#include <map>
-
-#include <libcamera/event_dispatcher.h>
-
-using namespace libcamera;
-
-class QSocketNotifier;
-
-class QtEventDispatcher final : public EventDispatcher, public QObject
-{
-public:
- QtEventDispatcher();
- ~QtEventDispatcher();
-
- void registerEventNotifier(EventNotifier *notifier);
- void unregisterEventNotifier(EventNotifier *notifier);
-
- void registerTimer(Timer *timer);
- void unregisterTimer(Timer *timer);
-
- void processEvents();
-
- void interrupt();
-
-protected:
- void timerEvent(QTimerEvent *event);
-
-private:
- void readNotifierActivated(int socket);
- void writeNotifierActivated(int socket);
- void exceptionNotifierActivated(int socket);
-
- struct NotifierPair {
- NotifierPair()
- : notifier(nullptr), qnotifier(nullptr)
- {
- }
- EventNotifier *notifier;
- QSocketNotifier *qnotifier;
- };
-
- struct NotifierSet {
- NotifierPair read;
- NotifierPair write;
- NotifierPair exception;
- };
-
- std::map<int, NotifierSet> notifiers_;
- std::map<int, Timer *> timers_;
- std::map<Timer *, int> timerIds_;
-};
-
-#endif /* __QCAM_QT_EVENT_DISPATCHER_H__ */