mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-17 17:35:06 +03:00
Add three new classes, EventDispatcher, EventNotifier and Timer, that define APIs for file descriptor event notification and timers. The implementation of the EventDispatcher is meant to be provided to libcamera by the application. The event dispatcher is integrated twith the camera manager to implement automatic registration of timers and events. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org>
42 lines
728 B
C++
42 lines
728 B
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2019, Google Inc.
|
|
*
|
|
* event_notifier.h - File descriptor event notifier
|
|
*/
|
|
#ifndef __LIBCAMERA_EVENT_NOTIFIER_H__
|
|
#define __LIBCAMERA_EVENT_NOTIFIER_H__
|
|
|
|
#include <libcamera/signal.h>
|
|
|
|
namespace libcamera {
|
|
|
|
class EventNotifier
|
|
{
|
|
public:
|
|
enum Type {
|
|
Read,
|
|
Write,
|
|
Exception,
|
|
};
|
|
|
|
EventNotifier(int fd, Type type);
|
|
virtual ~EventNotifier();
|
|
|
|
Type type() const { return type_; }
|
|
int fd() const { return fd_; }
|
|
|
|
bool enabled() const { return enabled_; }
|
|
void setEnabled(bool enable);
|
|
|
|
Signal<EventNotifier *> activated;
|
|
|
|
private:
|
|
int fd_;
|
|
Type type_;
|
|
bool enabled_;
|
|
};
|
|
|
|
} /* namespace libcamera */
|
|
|
|
#endif /* __LIBCAMERA_EVENT_NOTIFIER_H__ */
|