MCPcopy Create free account
hub / github.com/OpenHD/OpenHD / get_udev_adm_info

Function get_udev_adm_info

OpenHD/ohd_video/src/camera_discovery.cpp:249–276  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

247 std::string id_vendor = "unknown";
248};
249Udevaddm_info get_udev_adm_info(const std::string &v4l2_device,
250 std::shared_ptr<spdlog::logger> &m_console) {
251 Udevaddm_info ret{};
252 const auto udev_info_opt =
253 OHDUtil::run_command_out(fmt::format("udevadm info {}", v4l2_device));
254 if (udev_info_opt == std::nullopt) {
255 m_console->debug("udev_info no result");
256 return {};
257 }
258 const auto &udev_info = udev_info_opt.value();
259 // check for device name
260 std::smatch model_result;
261 const std::regex model_regex{"ID_MODEL=([\\w]+)"};
262 if (std::regex_search(udev_info, model_result, model_regex)) {
263 if (model_result.size() == 2) {
264 ret.id_model = model_result[1];
265 }
266 }
267 // check for device vendor
268 std::smatch vendor_result;
269 const std::regex vendor_regex{"ID_VENDOR=([\\w]+)"};
270 if (std::regex_search(udev_info, vendor_result, vendor_regex)) {
271 if (vendor_result.size() == 2) {
272 ret.id_vendor = vendor_result[1];
273 }
274 }
275 return ret;
276}
277
278static std::string v4l2_capability_to_string(const v4l2_capability caps) {
279 return fmt::format("driver:{},bus_info:{}", (const char *)caps.driver,

Callers

nothing calls this directly

Calls 2

debugMethod · 0.80
sizeMethod · 0.80

Tested by

no test coverage detected