summaryrefslogtreecommitdiff
path: root/src/qcam/qt_event_dispatcher.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/qcam/qt_event_dispatcher.cpp')
-rw-r--r--src/qcam/qt_event_dispatcher.cpp152
1 files changed, 0 insertions, 152 deletions
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();
-}