summaryrefslogtreecommitdiff
path: root/src/libcamera/include/device_enumerator.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libcamera/include/device_enumerator.h')
-rw-r--r--src/libcamera/include/device_enumerator.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/libcamera/include/device_enumerator.h b/src/libcamera/include/device_enumerator.h
index ed1e986f..1f8cef33 100644
--- a/src/libcamera/include/device_enumerator.h
+++ b/src/libcamera/include/device_enumerator.h
@@ -53,6 +53,28 @@ private:
std::vector<std::string> entities_;
};
+class DeviceEnumerator
+{
+public:
+ virtual ~DeviceEnumerator();
+
+ virtual int init() = 0;
+ virtual int enumerate() = 0;
+
+ DeviceInfo *search(DeviceMatch &dm) const;
+
+protected:
+ int addDevice(const std::string &devnode);
+
+private:
+ std::vector<DeviceInfo *> devices_;
+
+ int readInfo(int fd, struct media_device_info &info);
+ int readTopology(int fd, std::map<std::string, std::string> &entities);
+
+ virtual std::string lookupDevnode(int major, int minor) = 0;
+};
+
} /* namespace libcamera */
#endif /* __LIBCAMERA_DEVICE_ENUMERATOR_H__ */