diff options
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__ */ |