@@ -37,6 +37,7 @@ public:
~Request();
ControlList &controls() { return *controls_; }
+ ControlList &metadata() { return *metadata_; }
const std::map<Stream *, Buffer *> &buffers() const { return bufferMap_; }
int addBuffer(std::unique_ptr<Buffer> buffer);
Buffer *findBuffer(Stream *stream) const;
@@ -58,6 +59,7 @@ private:
Camera *camera_;
CameraControlValidator *validator_;
ControlList *controls_;
+ ControlList *metadata_;
std::map<Stream *, Buffer *> bufferMap_;
std::unordered_set<Buffer *> pending_;
@@ -65,6 +65,11 @@ Request::Request(Camera *camera, uint64_t cookie)
*/
validator_ = new CameraControlValidator(camera);
controls_ = new ControlList(validator_);
+
+ /**
+ * \todo: Add a validator for metadata controls.
+ */
+ metadata_ = new ControlList(nullptr);
}
Request::~Request()
@@ -74,6 +79,7 @@ Request::~Request()
delete buffer;
}
+ delete metadata_;
delete controls_;
delete validator_;
}
@@ -161,6 +167,14 @@ Buffer *Request::findBuffer(Stream *stream) const
return it->second;
}
+/**
+ * \fn Request::metadata()
+ * \brief Retrieve the request's metadata
+ * \todo Offer a read-only API towards applications while keeping a read/write
+ * API internally.
+ * \return The metadata associated with the request
+ */
+
/**
* \fn Request::cookie()
* \brief Retrieve the cookie set when the request was created