diff options
author | Jacopo Mondi <jacopo@jmondi.org> | 2019-02-04 16:33:01 +0100 |
---|---|---|
committer | Laurent Pinchart <laurent.pinchart@ideasonboard.com> | 2019-02-06 07:41:51 +0200 |
commit | 5aef8257643bc2c70adaa59cc8ef0f2780595cbc (patch) | |
tree | 7c622f850453552a274ee3b49d93bf768674782a /include/libcamera/request.h | |
parent | 1d7b6297f2ff01c71ebc44788d25545caa6e84e3 (diff) |
libcamera: Provide a Request object
Implement a Request object used by applications to queue image capture
requests to a camera.
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Diffstat (limited to 'include/libcamera/request.h')
-rw-r--r-- | include/libcamera/request.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/include/libcamera/request.h b/include/libcamera/request.h new file mode 100644 index 00000000..ef081177 --- /dev/null +++ b/include/libcamera/request.h @@ -0,0 +1,44 @@ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ +/* + * Copyright (C) 2019, Google Inc. + * + * request.h - Capture request handling + */ +#ifndef __LIBCAMERA_REQUEST_H__ +#define __LIBCAMERA_REQUEST_H__ + +#include <map> +#include <unordered_set> + +#include <libcamera/signal.h> + +namespace libcamera { + +class Buffer; +class Camera; +class Stream; + +class Request +{ +public: + explicit Request(Camera *camera); + Request(const Request &) = delete; + Request &operator=(const Request &) = delete; + + int setBuffers(const std::map<Stream *, Buffer *> &streamMap); + Buffer *findBuffer(Stream *stream) const; + +private: + friend class Camera; + + int prepare(); + void bufferCompleted(Buffer *buffer); + + Camera *camera_; + std::map<Stream *, Buffer *> bufferMap_; + std::unordered_set<Buffer *> pending_; +}; + +} /* namespace libcamera */ + +#endif /* __LIBCAMERA_REQUEST_H__ */ |