libcamera: controls: Use ControlValidator to validate ControlList
Replace the manual validation of controls against a Camera with usage of the new ControlValidator interface. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
|
||||
namespace libcamera {
|
||||
|
||||
class Camera;
|
||||
class ControlValidator;
|
||||
|
||||
enum ControlType {
|
||||
ControlTypeNone,
|
||||
@@ -119,7 +119,7 @@ private:
|
||||
using ControlListMap = std::unordered_map<const ControlId *, ControlValue>;
|
||||
|
||||
public:
|
||||
ControlList(Camera *camera);
|
||||
ControlList(ControlValidator *validator);
|
||||
|
||||
using iterator = ControlListMap::iterator;
|
||||
using const_iterator = ControlListMap::const_iterator;
|
||||
@@ -160,7 +160,7 @@ private:
|
||||
const ControlValue *find(const ControlId &id) const;
|
||||
ControlValue *find(const ControlId &id);
|
||||
|
||||
Camera *camera_;
|
||||
ControlValidator *validator_;
|
||||
ControlListMap controls_;
|
||||
};
|
||||
|
||||
|
||||
@@ -19,9 +19,9 @@ namespace libcamera {
|
||||
|
||||
class Buffer;
|
||||
class Camera;
|
||||
class CameraControlValidator;
|
||||
class Stream;
|
||||
|
||||
|
||||
class Request
|
||||
{
|
||||
public:
|
||||
@@ -36,7 +36,7 @@ public:
|
||||
Request &operator=(const Request &) = delete;
|
||||
~Request();
|
||||
|
||||
ControlList &controls() { return controls_; }
|
||||
ControlList &controls() { return *controls_; }
|
||||
const std::map<Stream *, Buffer *> &buffers() const { return bufferMap_; }
|
||||
int addBuffer(std::unique_ptr<Buffer> buffer);
|
||||
Buffer *findBuffer(Stream *stream) const;
|
||||
@@ -56,7 +56,8 @@ private:
|
||||
bool completeBuffer(Buffer *buffer);
|
||||
|
||||
Camera *camera_;
|
||||
ControlList controls_;
|
||||
CameraControlValidator *validator_;
|
||||
ControlList *controls_;
|
||||
std::map<Stream *, Buffer *> bufferMap_;
|
||||
std::unordered_set<Buffer *> pending_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user