mirror of
https://git.libcamera.org/libcamera/libcamera.git
synced 2025-07-25 17:45:06 +03:00
libcamera: request: Add a ControlList
Provide a ControlList on request objects to facilitate setting controls. Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
parent
0adc13ff76
commit
b69ea51c7c
2 changed files with 20 additions and 1 deletions
|
@ -10,6 +10,7 @@
|
|||
#include <map>
|
||||
#include <unordered_set>
|
||||
|
||||
#include <libcamera/controls.h>
|
||||
#include <libcamera/signal.h>
|
||||
|
||||
namespace libcamera {
|
||||
|
@ -32,6 +33,7 @@ public:
|
|||
Request(const Request &) = delete;
|
||||
Request &operator=(const Request &) = delete;
|
||||
|
||||
ControlList &controls() { return controls_; }
|
||||
const std::map<Stream *, Buffer *> &buffers() const { return bufferMap_; }
|
||||
int setBuffers(const std::map<Stream *, Buffer *> &streamMap);
|
||||
Buffer *findBuffer(Stream *stream) const;
|
||||
|
@ -50,6 +52,7 @@ private:
|
|||
bool completeBuffer(Buffer *buffer);
|
||||
|
||||
Camera *camera_;
|
||||
ControlList controls_;
|
||||
std::map<Stream *, Buffer *> bufferMap_;
|
||||
std::unordered_set<Buffer *> pending_;
|
||||
|
||||
|
|
|
@ -48,10 +48,26 @@ LOG_DEFINE_CATEGORY(Request)
|
|||
* \param[in] camera The camera that creates the request
|
||||
*/
|
||||
Request::Request(Camera *camera)
|
||||
: camera_(camera), status_(RequestPending)
|
||||
: camera_(camera), controls_(camera), status_(RequestPending)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* \fn Request::controls()
|
||||
* \brief Retrieve the request's ControlList
|
||||
*
|
||||
* Requests store a list of controls to be applied to all frames captured for
|
||||
* the request. They are created with an empty list of controls that can be
|
||||
* accessed through this method and updated with ControlList::operator[]() or
|
||||
* ControlList::update().
|
||||
*
|
||||
* Only controls supported by the camera to which this request will be
|
||||
* submitted shall be included in the controls list. Attempting to add an
|
||||
* unsupported control causes undefined behaviour.
|
||||
*
|
||||
* \return A reference to the ControlList in this request
|
||||
*/
|
||||
|
||||
/**
|
||||
* \fn Request::buffers()
|
||||
* \brief Retrieve the request's streams to buffers map
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue