diff options
| author | Jordan Woyak <jordan.woyak@gmail.com> | 2013-03-03 19:56:36 -0600 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2013-03-03 19:56:36 -0600 |
| commit | fcf87f6c53fd26b4dcbba5151185f3c4f4d4bd1d (patch) | |
| tree | 08fd3277db552867f251bed449400f68387ac6f6 /Source/Core/InputCommon/Src/ControllerInterface | |
| parent | cedfa452b4497590f828306b42b1e7c24915fd58 (diff) | |
| parent | 814c2ffdfd213dfa78078471d298e2657b7e14e9 (diff) | |
Merge branch 'windows-unicode'
Fixed unicode filename handling on Windows.
Made all significant projects build with "Unicode" option on Windows.
Fixed unicode string handling in GUI code on all OSes.
From now on: std::string == UTF-8.
Fixed issue 4111.
Fixed issue 5178.
Fixed issue 5980.
Diffstat (limited to 'Source/Core/InputCommon/Src/ControllerInterface')
| -rw-r--r-- | Source/Core/InputCommon/Src/ControllerInterface/DInput/DInput.cpp | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInput.cpp b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInput.cpp index c23e9df17e..01baf9cf1a 100644 --- a/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInput.cpp +++ b/Source/Core/InputCommon/Src/ControllerInterface/DInput/DInput.cpp @@ -4,7 +4,7 @@ #include "DInput.h" -#include <StringUtil.h> +#include "StringUtil.h" #ifdef CIFACE_USE_DINPUT_JOYSTICK #include "DInputJoystick.h" @@ -41,24 +41,18 @@ BOOL CALLBACK DIEnumDevicesCallback(LPCDIDEVICEINSTANCE lpddi, LPVOID pvRef) std::string GetDeviceName(const LPDIRECTINPUTDEVICE8 device) { - std::string out; - - DIPROPSTRING str; - ZeroMemory(&str, sizeof(str)); + DIPROPSTRING str = {}; str.diph.dwSize = sizeof(str); str.diph.dwHeaderSize = sizeof(str.diph); str.diph.dwHow = DIPH_DEVICE; + std::string result; if (SUCCEEDED(device->GetProperty(DIPROP_PRODUCTNAME, &str.diph))) { - const int size = WideCharToMultiByte(CP_UTF8, 0, str.wsz, -1, NULL, 0, NULL, NULL); - char* const data = new char[size]; - if (size == WideCharToMultiByte(CP_UTF8, 0, str.wsz, -1, data, size, NULL, NULL)) - out.assign(data); - delete[] data; + result = StripSpaces(UTF16ToUTF8(str.wsz)); } - return StripSpaces(out); + return result; } void Init(std::vector<ControllerInterface::Device*>& devices, HWND hwnd) |
