summaryrefslogtreecommitdiff
path: root/include/libcamera/camera.h
diff options
context:
space:
mode:
authorNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-02-26 02:46:33 +0100
committerNiklas Söderlund <niklas.soderlund@ragnatech.se>2019-02-28 18:41:52 +0100
commit132ce9c1cf6951d8cba8ff6ff5fbccadead385c1 (patch)
treed01cf52e2e68f468456907b335e24f8a6c85273d /include/libcamera/camera.h
parentdc01a5bc43787ac8bf8f16683383f60265326f27 (diff)
libcamera: store stream pointers in sets instead of a vectors
The arrays that store Stream pointers shall always contain unique values. Storing them in vectors opens up for the same stream pointer appearing twice. Remove this possibility by storing them in a set which guarantees each element is unique. Signed-off-by: Niklas Söderlund <niklas.soderlund@ragnatech.se> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Diffstat (limited to 'include/libcamera/camera.h')
-rw-r--r--include/libcamera/camera.h11
1 files changed, 6 insertions, 5 deletions
diff --git a/include/libcamera/camera.h b/include/libcamera/camera.h
index bf70255a..9c8ae01e 100644
--- a/include/libcamera/camera.h
+++ b/include/libcamera/camera.h
@@ -9,6 +9,7 @@
#include <map>
#include <memory>
+#include <set>
#include <string>
#include <libcamera/request.h>
@@ -27,7 +28,7 @@ class Camera final
public:
static std::shared_ptr<Camera> create(PipelineHandler *pipe,
const std::string &name,
- const std::vector<Stream *> &streams);
+ const std::set<Stream *> &streams);
Camera(const Camera &) = delete;
Camera &operator=(const Camera &) = delete;
@@ -40,9 +41,9 @@ public:
int acquire();
void release();
- const std::vector<Stream *> &streams() const;
+ const std::set<Stream *> &streams() const;
std::map<Stream *, StreamConfiguration>
- streamConfiguration(std::vector<Stream *> &streams);
+ streamConfiguration(std::set<Stream *> &streams);
int configureStreams(std::map<Stream *, StreamConfiguration> &config);
int allocateBuffers();
@@ -64,8 +65,8 @@ private:
std::shared_ptr<PipelineHandler> pipe_;
std::string name_;
- std::vector<Stream *> streams_;
- std::vector<Stream *> activeStreams_;
+ std::set<Stream *> streams_;
+ std::set<Stream *> activeStreams_;
bool acquired_;
bool disconnected_;