Add u16string to string conversion function for CMKeyboardV2Controller.cpp

This commit is contained in:
Adam Honse 2024-08-25 20:49:31 -05:00
parent c6fe58e635
commit 511c266178
3 changed files with 10 additions and 1 deletions

View file

@ -14,6 +14,7 @@
#include <string> #include <string>
#include "CMKeyboardV2Controller.h" #include "CMKeyboardV2Controller.h"
#include "LogManager.h" #include "LogManager.h"
#include "StringUtils.h"
CMKeyboardV2Controller::CMKeyboardV2Controller(hid_device* dev_handle, hid_device_info* dev_info) : CMKeyboardAbstractController(dev_handle, dev_info) CMKeyboardV2Controller::CMKeyboardV2Controller(hid_device* dev_handle, hid_device_info* dev_info) : CMKeyboardAbstractController(dev_handle, dev_info)
{ {
@ -98,7 +99,7 @@ std::string CMKeyboardV2Controller::_GetFirmwareVersion()
} }
std::u16string usFirmwareVersion(reinterpret_cast<const char16_t*>(cVersionStr+8)); std::u16string usFirmwareVersion(reinterpret_cast<const char16_t*>(cVersionStr+8));
std::string sFirmwareVersion(usFirmwareVersion.begin(), usFirmwareVersion.end()); std::string sFirmwareVersion(StringUtils::u16string_to_string(usFirmwareVersion));
LOG_VERBOSE("[%s] GetFirmwareVersion(): [%s]", m_deviceName.c_str(), sFirmwareVersion.c_str()); LOG_VERBOSE("[%s] GetFirmwareVersion(): [%s]", m_deviceName.c_str(), sFirmwareVersion.c_str());

View file

@ -57,6 +57,13 @@ std::string StringUtils::wstring_to_string(const std::wstring wstring)
return(converter.to_bytes(wstring)); return(converter.to_bytes(wstring));
} }
std::string StringUtils::u16string_to_string(const std::u16string wstring)
{
std::wstring_convert<std::codecvt_utf8_utf16<char16_t>,char16_t> converter;
return(converter.to_bytes(wstring));
}
const std::string StringUtils::remove_null_terminating_chars(std::string input) const std::string StringUtils::remove_null_terminating_chars(std::string input)
{ {
while (!input.empty() && input.back() == 0) while (!input.empty() && input.back() == 0)

View file

@ -16,5 +16,6 @@ class StringUtils
public: public:
static const char* wchar_to_char(const wchar_t* pwchar); static const char* wchar_to_char(const wchar_t* pwchar);
static std::string wstring_to_string(const std::wstring wstring); static std::string wstring_to_string(const std::wstring wstring);
static std::string u16string_to_string(const std::u16string wstring);
static const std::string remove_null_terminating_chars(std::string input); static const std::string remove_null_terminating_chars(std::string input);
}; };