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>
37 lines
614 B
C++
37 lines
614 B
C++
/* SPDX-License-Identifier: LGPL-2.1-or-later */
|
|
/*
|
|
* Copyright (C) 2019, Google Inc.
|
|
*
|
|
* timer.h - Generic timer
|
|
*/
|
|
#ifndef __LIBCAMERA_TIMER_H__
|
|
#define __LIBCAMERA_TIMER_H__
|
|
|
|
#include <cstdint>
|
|
|
|
#include <libcamera/signal.h>
|
|
|
|
namespace libcamera {
|
|
|
|
class Timer
|
|
{
|
|
public:
|
|
Timer();
|
|
|
|
void start(unsigned int msec);
|
|
void stop();
|
|
bool isRunning() const;
|
|
|
|
unsigned int interval() const { return interval_; }
|
|
uint64_t deadline() const { return deadline_; }
|
|
|
|
Signal<Timer *> timeout;
|
|
|
|
private:
|
|
unsigned int interval_;
|
|
uint64_t deadline_;
|
|
};
|
|
|
|
} /* namespace libcamera */
|
|
|
|
#endif /* __LIBCAMERA_TIMER_H__ */
|