diff options
-rw-r--r-- | device.cc | 21 |
1 files changed, 11 insertions, 10 deletions
@@ -209,16 +209,17 @@ std::vector<DeviceInfo> Device::enumerate(){ auto pInfo_ = pInfo; std::vector<DeviceInfo> res; while (pInfo != nullptr){ - if (pInfo->path != nullptr && pInfo->serial_number != nullptr) { - auto deviceModel = product_id_to_model(pInfo->product_id); - if (deviceModel.has_value()) { - std::string path(pInfo->path); - std::wstring serialNumberW(pInfo->serial_number); - std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; - std::string serialNumber = converter.to_bytes(serialNumberW); - DeviceInfo info = { deviceModel.value(), path, serialNumber }; - res.push_back(info); - } + if (pInfo->path == nullptr || pInfo->serial_number == nullptr) { + continue; + } + auto deviceModel = product_id_to_model(pInfo->product_id); + if (deviceModel.has_value()) { + std::string path(pInfo->path); + std::wstring serialNumberW(pInfo->serial_number); + std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; + std::string serialNumber = converter.to_bytes(serialNumberW); + DeviceInfo info = {deviceModel.value(), path, serialNumber}; + res.push_back(info); } pInfo = pInfo->next; } |