summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp')
-rw-r--r--Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp19
1 files changed, 14 insertions, 5 deletions
diff --git a/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp b/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp
index e65da0eb78..cb484cc6ca 100644
--- a/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/DInput/DInput.cpp
@@ -3,9 +3,11 @@
// Refer to the license.txt file included.
#include "InputCommon/ControllerInterface/DInput/DInput.h"
+
+#include "Common/Logging/Log.h"
#include "Common/StringUtil.h"
-#include "InputCommon/ControllerInterface/ControllerInterface.h"
+#include "InputCommon/ControllerInterface/ControllerInterface.h"
#include "InputCommon/ControllerInterface/DInput/DInputJoystick.h"
#include "InputCommon/ControllerInterface/DInput/DInputKeyboardMouse.h"
@@ -40,25 +42,32 @@ std::string GetDeviceName(const LPDIRECTINPUTDEVICE8 device)
{
result = StripSpaces(UTF16ToUTF8(str.wsz));
}
+ else
+ {
+ ERROR_LOG(PAD, "GetProperty(DIPROP_PRODUCTNAME) failed.");
+ }
return result;
}
void PopulateDevices(HWND hwnd)
{
- g_controller_interface.RemoveDevice([](const auto* dev) { return dev->GetSource() == "DInput"; });
+ // Remove unplugged devices.
+ g_controller_interface.RemoveDevice(
+ [](const auto* dev) { return dev->GetSource() == DINPUT_SOURCE_NAME && !dev->IsValid(); });
IDirectInput8* idi8;
if (FAILED(DirectInput8Create(GetModuleHandle(nullptr), DIRECTINPUT_VERSION, IID_IDirectInput8,
(LPVOID*)&idi8, nullptr)))
{
+ ERROR_LOG(PAD, "DirectInput8Create failed.");
return;
}
- InitKeyboardMouse(idi8, hwnd);
+ InitKeyboardMouse(idi8);
InitJoystick(idi8, hwnd);
idi8->Release();
}
-}
-}
+} // namespace DInput
+} // namespace ciface