33class RegisteredDeviceCollection
39 std::string description;
42 std::vector<DeviceInfo> devices_;
50 if (!deviceDescription)
52 deviceDescription =
"(Null description)";
54 auto it = std::find_if(devices_.begin(), devices_.end(),
55 [&](
const DeviceInfo& dev) { return dev.name == deviceName; });
56 if (it != devices_.end())
63 devices_.push_back(DeviceInfo{ deviceName, deviceType, deviceDescription });
69 return static_cast<unsigned>(devices_.size());
72 bool GetDeviceName(
unsigned deviceIndex,
char* name,
unsigned bufSize)
const
74 if (deviceIndex >= devices_.size())
77 const std::string& deviceName = devices_[deviceIndex].name;
79 if (deviceName.size() >= bufSize)
82 std::snprintf(name, bufSize,
"%s", deviceName.c_str());
88 auto it = std::find_if(devices_.begin(), devices_.end(),
89 [&](
const DeviceInfo& dev) { return dev.name == deviceName; });
90 if (it == devices_.end())
98 *type =
static_cast<int>(it->type);
105 auto it = std::find_if(devices_.begin(), devices_.end(),
106 [&](
const DeviceInfo& dev) { return dev.name == deviceName; });
107 if (it == devices_.end())
110 std::snprintf(description, bufSize,
"%s", it->description.c_str());
void RegisterDevice(const char *deviceName, MM::DeviceType deviceType, const char *deviceDescription)
Register a device class provided by the device adapter library.
Definition ModuleInterface.cpp:75
MODULE_API unsigned GetNumberOfDevices()
Definition ModuleInterface.cpp:55
MODULE_API bool GetDeviceName(unsigned deviceIndex, char *name, unsigned bufLen)
Definition ModuleInterface.cpp:60
MODULE_API bool GetDeviceDescription(const char *deviceName, char *description, unsigned bufLen)
Definition ModuleInterface.cpp:70
MODULE_API bool GetDeviceType(const char *deviceName, int *type)
Definition ModuleInterface.cpp:65
Definition CameraImageMetadata.h:25
DeviceType
Definition MMDeviceConstants.h:236
@ UnknownType
Definition MMDeviceConstants.h:237