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 <map>
|
||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
|
|
||||||
|
#include <libcamera/controls.h>
|
||||||
#include <libcamera/signal.h>
|
#include <libcamera/signal.h>
|
||||||
|
|
||||||
namespace libcamera {
|
namespace libcamera {
|
||||||
|
@ -32,6 +33,7 @@ public:
|
||||||
Request(const Request &) = delete;
|
Request(const Request &) = delete;
|
||||||
Request &operator=(const Request &) = delete;
|
Request &operator=(const Request &) = delete;
|
||||||
|
|
||||||
|
ControlList &controls() { return controls_; }
|
||||||
const std::map<Stream *, Buffer *> &buffers() const { return bufferMap_; }
|
const std::map<Stream *, Buffer *> &buffers() const { return bufferMap_; }
|
||||||
int setBuffers(const std::map<Stream *, Buffer *> &streamMap);
|
int setBuffers(const std::map<Stream *, Buffer *> &streamMap);
|
||||||
Buffer *findBuffer(Stream *stream) const;
|
Buffer *findBuffer(Stream *stream) const;
|
||||||
|
@ -50,6 +52,7 @@ private:
|
||||||
bool completeBuffer(Buffer *buffer);
|
bool completeBuffer(Buffer *buffer);
|
||||||
|
|
||||||
Camera *camera_;
|
Camera *camera_;
|
||||||
|
ControlList controls_;
|
||||||
std::map<Stream *, Buffer *> bufferMap_;
|
std::map<Stream *, Buffer *> bufferMap_;
|
||||||
std::unordered_set<Buffer *> pending_;
|
std::unordered_set<Buffer *> pending_;
|
||||||
|
|
||||||
|
|
|
@ -48,10 +48,26 @@ LOG_DEFINE_CATEGORY(Request)
|
||||||
* \param[in] camera The camera that creates the request
|
* \param[in] camera The camera that creates the request
|
||||||
*/
|
*/
|
||||||
Request::Request(Camera *camera)
|
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()
|
* \fn Request::buffers()
|
||||||
* \brief Retrieve the request's streams to buffers map
|
* \brief Retrieve the request's streams to buffers map
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue