7 #ifndef __LIBCAMERA_INTERNAL_DEVICE_ENUMERATOR_H__
8 #define __LIBCAMERA_INTERNAL_DEVICE_ENUMERATOR_H__
14 #include <linux/media.h>
27 void add(
const std::string &entity);
33 std::vector<std::string> entities_;
39 static std::unique_ptr<DeviceEnumerator>
create();
51 std::unique_ptr<MediaDevice>
createDevice(
const std::string &deviceNode);
52 void addDevice(std::unique_ptr<MediaDevice> &&media);
56 std::vector<std::shared_ptr<MediaDevice>> devices_;
Enumerate, store and search media devices.
Definition: device_enumerator.h:37
std::shared_ptr< MediaDevice > search(const DeviceMatch &dm)
Search available media devices for a pattern match.
Definition: device_enumerator.cpp:304
static std::unique_ptr< DeviceEnumerator > create()
Create a new device enumerator matching the systems capabilities.
Definition: device_enumerator.cpp:140
Signal devicesAdded
Notify of new media devices being found.
Definition: device_enumerator.h:48
virtual int enumerate()=0
Enumerate all media devices in the system.
void removeDevice(const std::string &deviceNode)
Remove a media device from the enumerator.
Definition: device_enumerator.cpp:268
void addDevice(std::unique_ptr< MediaDevice > &&media)
Add a media device to the enumerator.
Definition: device_enumerator.cpp:249
std::unique_ptr< MediaDevice > createDevice(const std::string &deviceNode)
Create a media device instance.
Definition: device_enumerator.cpp:211
virtual int init()=0
Initialize the enumerator.
Description of a media device search pattern.
Definition: device_enumerator.h:23
DeviceMatch(const std::string &driver)
Construct a media device search pattern.
Definition: device_enumerator.cpp:69
void add(const std::string &entity)
Add a media entity name to the search pattern.
Definition: device_enumerator.cpp:78
bool match(const MediaDevice *device) const
Compare a search pattern with a media device.
Definition: device_enumerator.cpp:93
Generic signal and slot communication mechanism.
Definition: signal.h:39
Signal & slot implementation.