summaryrefslogtreecommitdiff
path: root/src/gstreamer/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/gstreamer/meson.build')
0 files changed, 0 insertions, 0 deletions
m"> * * device_enumerator.h - API to enumerate and find media devices */ #ifndef __LIBCAMERA_INTERNAL_DEVICE_ENUMERATOR_H__ #define __LIBCAMERA_INTERNAL_DEVICE_ENUMERATOR_H__ #include <memory> #include <string> #include <vector> #include <linux/media.h> #include <libcamera/base/signal.h> namespace libcamera { class MediaDevice; class DeviceMatch { public: DeviceMatch(const std::string &driver); void add(const std::string &entity); bool match(const MediaDevice *device) const; private: std::string driver_; std::vector<std::string> entities_; }; class DeviceEnumerator { public: static std::unique_ptr<DeviceEnumerator> create(); virtual ~DeviceEnumerator(); virtual int init() = 0; virtual int enumerate() = 0; std::shared_ptr<MediaDevice> search(const DeviceMatch &dm); Signal<> devicesAdded; protected: std::unique_ptr<MediaDevice> createDevice(const std::string &deviceNode); void addDevice(std::unique_ptr<MediaDevice> media); void removeDevice(const std::string &deviceNode); private: std::vector<std::shared_ptr<MediaDevice>> devices_; }; } /* namespace libcamera */ #endif /* __LIBCAMERA_INTERNAL_DEVICE_ENUMERATOR_H__ */