diff options
author | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-10-20 01:25:45 +0300 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2022-10-24 23:11:37 +0300 |
commit | a8113fb3a89984cc65d51436480cee45b60543e8 (patch) | |
tree | f54e072d0b169004bcf2fc4b6262fccf2759e60a /src/apps/cam/event_loop.h | |
parent | 11f5c3ad0561a4e4b1e06f477ab2022c69803ad2 (diff) |
apps: Share common source between applications
Multiple source files in the src/apps/cam/ directory are used by cam,
qcam and lc-compliance. They are compiled separately for each
application. Move them to a new src/apps/common/ directory and compile
them in a static library to decrease the number of compilation
operations.
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Diffstat (limited to 'src/apps/cam/event_loop.h')
-rw-r--r-- | src/apps/cam/event_loop.h | 68 |
1 files changed, 0 insertions, 68 deletions
diff --git a/src/apps/cam/event_loop.h b/src/apps/cam/event_loop.h deleted file mode 100644 index ef79e8e5..00000000 --- a/src/apps/cam/event_loop.h +++ /dev/null @@ -1,68 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-or-later */ -/* - * Copyright (C) 2019, Google Inc. - * - * event_loop.h - cam - Event loop - */ - -#pragma once - -#include <chrono> -#include <functional> -#include <list> -#include <memory> -#include <mutex> - -#include <event2/util.h> - -struct event_base; - -class EventLoop -{ -public: - enum EventType { - Read = 1, - Write = 2, - }; - - EventLoop(); - ~EventLoop(); - - static EventLoop *instance(); - - int exec(); - void exit(int code = 0); - - void callLater(const std::function<void()> &func); - - void addFdEvent(int fd, EventType type, - const std::function<void()> &handler); - - using duration = std::chrono::steady_clock::duration; - void addTimerEvent(const std::chrono::microseconds period, - const std::function<void()> &handler); - -private: - struct Event { - Event(const std::function<void()> &callback); - ~Event(); - - static void dispatch(int fd, short events, void *arg); - - std::function<void()> callback_; - struct event *event_; - }; - - static EventLoop *instance_; - - struct event_base *base_; - int exitCode_; - - std::list<std::function<void()>> calls_; - std::list<std::unique_ptr<Event>> events_; - std::mutex lock_; - - static void dispatchCallback(evutil_socket_t fd, short flags, - void *param); - void dispatchCall(); -}; |