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:
Laurent Pinchart
2019-09-28 02:45:49 +03:00
parent f671d84ceb
commit ecf1c2e57b
5 changed files with 43 additions and 26 deletions
+3 -3
View File
@@ -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_;
};
+4 -3
View File
@@ -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_;