diff --git a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp b/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp index 4b8a50f7..93d06965 100644 --- a/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp +++ b/Controllers/LenovoControllers/Lenovo4ZoneUSBController/Lenovo4ZoneUSBController.cpp @@ -10,23 +10,24 @@ #include #include "Lenovo4ZoneUSBController.h" #include "LogManager.h" +#include "StringUtils.h" Lenovo4ZoneUSBController::Lenovo4ZoneUSBController(hid_device* dev_handle, const char* path, uint16_t in_pid) { - const uint8_t sz = HID_MAX_STR; - wchar_t tmp[sz]; - dev = dev_handle; location = path; pid = in_pid; - hid_get_manufacturer_string(dev, tmp, sz); - std::wstring w_tmp = std::wstring(tmp); - name = std::string(w_tmp.begin(), w_tmp.end()); + /*---------------------------------------------------------*\ + | Get device name from HID manufacturer and product strings | + \*---------------------------------------------------------*/ + wchar_t name_string[HID_MAX_STR]; - hid_get_product_string(dev, tmp, sz); - w_tmp = std::wstring(tmp); - name.append(" ").append(std::string(w_tmp.begin(), w_tmp.end())); + hid_get_manufacturer_string(dev, name_string, HID_MAX_STR); + name = StringUtils::wstring_to_string(name_string); + + hid_get_product_string(dev, name_string, HID_MAX_STR); + name.append(" ").append(StringUtils::wstring_to_string(name_string)); } Lenovo4ZoneUSBController::~Lenovo4ZoneUSBController()