Files
external_libcamera/include/libcamera/camera_manager.h
Laurent Pinchart 1a57bcb8d1 libcamera: Add event notification infrastructure
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>
2019-01-08 16:23:16 +02:00

49 lines
951 B
C++

/* SPDX-License-Identifier: LGPL-2.1-or-later */
/*
* Copyright (C) 2018, Google Inc.
*
* camera_manager.h - Camera management
*/
#ifndef __LIBCAMERA_CAMERA_MANAGER_H__
#define __LIBCAMERA_CAMERA_MANAGER_H__
#include <string>
#include <vector>
namespace libcamera {
class Camera;
class DeviceEnumerator;
class EventDispatcher;
class PipelineHandler;
class CameraManager
{
public:
int start();
void stop();
std::vector<std::string> list() const;
Camera *get(const std::string &name);
static CameraManager *instance();
void setEventDispatcher(EventDispatcher *dispatcher);
EventDispatcher *eventDispatcher();
private:
CameraManager();
CameraManager(const CameraManager &) = delete;
void operator=(const CameraManager &) = delete;
~CameraManager();
DeviceEnumerator *enumerator_;
std::vector<PipelineHandler *> pipes_;
EventDispatcher *dispatcher_;
};
} /* namespace libcamera */
#endif /* __LIBCAMERA_CAMERA_MANAGER_H__ */