summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/libcamera/camera_manager.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/include/libcamera/camera_manager.h b/include/libcamera/camera_manager.h
index 8331898c..09419766 100644
--- a/include/libcamera/camera_manager.h
+++ b/include/libcamera/camera_manager.h
@@ -7,8 +7,10 @@
#ifndef __LIBCAMERA_CAMERA_MANAGER_H__
#define __LIBCAMERA_CAMERA_MANAGER_H__
+#include <map>
#include <memory>
#include <string>
+#include <sys/types.h>
#include <vector>
#include <libcamera/object.h>
@@ -33,8 +35,9 @@ public:
const std::vector<std::shared_ptr<Camera>> &cameras() const { return cameras_; }
std::shared_ptr<Camera> get(const std::string &name);
+ std::shared_ptr<Camera> get(dev_t devnum);
- void addCamera(std::shared_ptr<Camera> camera);
+ void addCamera(std::shared_ptr<Camera> camera, dev_t devnum);
void removeCamera(Camera *camera);
static const std::string &version() { return version_; }
@@ -46,6 +49,7 @@ private:
std::unique_ptr<DeviceEnumerator> enumerator_;
std::vector<std::shared_ptr<PipelineHandler>> pipes_;
std::vector<std::shared_ptr<Camera>> cameras_;
+ std::map<dev_t, std::weak_ptr<Camera>> camerasByDevnum_;
static const std::string version_;
static CameraManager *self_;