summaryrefslogtreecommitdiff
path: root/Source/Core/InputCommon
diff options
context:
space:
mode:
authorMichael M <mchtly@gmail.com>2017-11-10 09:56:13 -0800
committerJordan Woyak <jordan.woyak@gmail.com>2019-03-29 08:01:39 -0500
commit92ca6e124e82f63b61982a5ecfb26ca818f2fe47 (patch)
tree01e0f81f5c549d84033b1633638d7ac2d4b27820 /Source/Core/InputCommon
parent377615b06fd61717edb39b51964e611fd2da8cdc (diff)
Add ControllerInterface::Win32 to wrap XInput and DInput
Diffstat (limited to 'Source/Core/InputCommon')
-rw-r--r--Source/Core/InputCommon/CMakeLists.txt1
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp31
-rw-r--r--Source/Core/InputCommon/ControllerInterface/ControllerInterface.h3
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp26
-rw-r--r--Source/Core/InputCommon/ControllerInterface/Win32/Win32.h15
-rw-r--r--Source/Core/InputCommon/InputCommon.vcxproj2
-rw-r--r--Source/Core/InputCommon/InputCommon.vcxproj.filters21
7 files changed, 69 insertions, 30 deletions
diff --git a/Source/Core/InputCommon/CMakeLists.txt b/Source/Core/InputCommon/CMakeLists.txt
index d67d1654b3..454e6a21ac 100644
--- a/Source/Core/InputCommon/CMakeLists.txt
+++ b/Source/Core/InputCommon/CMakeLists.txt
@@ -35,6 +35,7 @@ if(WIN32)
ControllerInterface/DInput/DInputJoystick.cpp
ControllerInterface/DInput/DInputKeyboardMouse.cpp
ControllerInterface/DInput/XInputFilter.cpp
+ ControllerInterface/Win32/Win32.cpp
ControllerInterface/XInput/XInput.cpp
ControllerInterface/ForceFeedback/ForceFeedbackDevice.cpp
)
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
index 3da92e8b75..6eeb41e8b8 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.cpp
@@ -8,11 +8,8 @@
#include "Common/Logging/Log.h"
-#ifdef CIFACE_USE_XINPUT
-#include "InputCommon/ControllerInterface/XInput/XInput.h"
-#endif
-#ifdef CIFACE_USE_DINPUT
-#include "InputCommon/ControllerInterface/DInput/DInput.h"
+#ifdef CIFACE_USE_WIN32
+#include "InputCommon/ControllerInterface/Win32/Win32.h"
#endif
#ifdef CIFACE_USE_XLIB
#include "InputCommon/ControllerInterface/Xlib/XInput2.h"
@@ -48,11 +45,8 @@ void ControllerInterface::Initialize(const WindowSystemInfo& wsi)
m_is_populating_devices = true;
-#ifdef CIFACE_USE_DINPUT
-// nothing needed
-#endif
-#ifdef CIFACE_USE_XINPUT
- ciface::XInput::Init();
+#ifdef CIFACE_USE_WIN32
+ ciface::Win32::Init();
#endif
#ifdef CIFACE_USE_XLIB
// nothing needed
@@ -99,12 +93,8 @@ void ControllerInterface::RefreshDevices()
m_is_populating_devices = true;
-#ifdef CIFACE_USE_DINPUT
- if (m_wsi.type == WindowSystemType::Windows)
- ciface::DInput::PopulateDevices(reinterpret_cast<HWND>(m_wsi.render_surface));
-#endif
-#ifdef CIFACE_USE_XINPUT
- ciface::XInput::PopulateDevices();
+#ifdef CIFACE_USE_WIN32
+ ciface::Win32::PopulateDevices(m_wsi.render_surface);
#endif
#ifdef CIFACE_USE_XLIB
if (m_wsi.type == WindowSystemType::X11)
@@ -160,14 +150,11 @@ void ControllerInterface::Shutdown()
// BEFORE we shutdown the backends.
InvokeDevicesChangedCallbacks();
-#ifdef CIFACE_USE_XINPUT
- ciface::XInput::DeInit();
-#endif
-#ifdef CIFACE_USE_DINPUT
-// nothing needed
+#ifdef CIFACE_USE_WIN32
+ ciface::Win32::DeInit();
#endif
#ifdef CIFACE_USE_XLIB
-// nothing needed
+ // nothing needed
#endif
#ifdef CIFACE_USE_OSX
ciface::OSX::DeInit();
diff --git a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
index 7330172421..2ad53fc79b 100644
--- a/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
+++ b/Source/Core/InputCommon/ControllerInterface/ControllerInterface.h
@@ -15,8 +15,7 @@
// enable disable sources
#ifdef _WIN32
-#define CIFACE_USE_XINPUT
-#define CIFACE_USE_DINPUT
+#define CIFACE_USE_WIN32
#endif
#if defined(HAVE_X11) && HAVE_X11
#define CIFACE_USE_XLIB
diff --git a/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp b/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp
new file mode 100644
index 0000000000..2ce583e608
--- /dev/null
+++ b/Source/Core/InputCommon/ControllerInterface/Win32/Win32.cpp
@@ -0,0 +1,26 @@
+// Copyright 2017 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include "InputCommon/ControllerInterface/Win32/Win32.h"
+
+#include "InputCommon/ControllerInterface/DInput/DInput.h"
+#include "InputCommon/ControllerInterface/XInput/XInput.h"
+
+void ciface::Win32::Init()
+{
+ // DInput::Init();
+ XInput::Init();
+}
+
+void ciface::Win32::PopulateDevices(void* hwnd)
+{
+ DInput::PopulateDevices(static_cast<HWND>(hwnd));
+ XInput::PopulateDevices();
+}
+
+void ciface::Win32::DeInit()
+{
+ // DInput::DeInit();
+ XInput::DeInit();
+}
diff --git a/Source/Core/InputCommon/ControllerInterface/Win32/Win32.h b/Source/Core/InputCommon/ControllerInterface/Win32/Win32.h
new file mode 100644
index 0000000000..038a792e54
--- /dev/null
+++ b/Source/Core/InputCommon/ControllerInterface/Win32/Win32.h
@@ -0,0 +1,15 @@
+// Copyright 2017 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#pragma once
+
+namespace ciface
+{
+namespace Win32
+{
+void Init();
+void PopulateDevices(void* hwnd);
+void DeInit();
+}
+}
diff --git a/Source/Core/InputCommon/InputCommon.vcxproj b/Source/Core/InputCommon/InputCommon.vcxproj
index 0c8e95d400..6bf821f032 100644
--- a/Source/Core/InputCommon/InputCommon.vcxproj
+++ b/Source/Core/InputCommon/InputCommon.vcxproj
@@ -63,6 +63,7 @@
<ClCompile Include="ControlReference\ControlReference.cpp" />
<ClCompile Include="ControlReference\ExpressionParser.cpp" />
<ClCompile Include="ControllerInterface\ForceFeedback\ForceFeedbackDevice.cpp" />
+ <ClCompile Include="ControllerInterface\Win32\Win32.cpp" />
<ClCompile Include="ControllerInterface\XInput\XInput.cpp" />
<ClCompile Include="GCAdapter.cpp">
<!--
@@ -104,6 +105,7 @@
<ClInclude Include="ControlReference\ControlReference.h" />
<ClInclude Include="ControlReference\ExpressionParser.h" />
<ClInclude Include="ControllerInterface\ForceFeedback\ForceFeedbackDevice.h" />
+ <ClInclude Include="ControllerInterface\Win32\Win32.h" />
<ClInclude Include="ControllerInterface\XInput\XInput.h" />
<ClInclude Include="GCAdapter.h" />
<ClInclude Include="GCPadStatus.h" />
diff --git a/Source/Core/InputCommon/InputCommon.vcxproj.filters b/Source/Core/InputCommon/InputCommon.vcxproj.filters
index ec95436d76..00a6211e96 100644
--- a/Source/Core/InputCommon/InputCommon.vcxproj.filters
+++ b/Source/Core/InputCommon/InputCommon.vcxproj.filters
@@ -4,12 +4,6 @@
<Filter Include="ControllerInterface">
<UniqueIdentifier>{3a755a86-0efa-4396-bf79-bb3a1910764d}</UniqueIdentifier>
</Filter>
- <Filter Include="ControllerInterface\DInput">
- <UniqueIdentifier>{0289ef91-50f5-4c16-9fa4-ff4c4d8208e7}</UniqueIdentifier>
- </Filter>
- <Filter Include="ControllerInterface\XInput">
- <UniqueIdentifier>{07bad1aa-7e03-4f5c-ade2-a44857c5cbc3}</UniqueIdentifier>
- </Filter>
<Filter Include="ControllerInterface\ForceFeedback">
<UniqueIdentifier>{e10ce316-283c-4be0-848d-578dec2b6404}</UniqueIdentifier>
</Filter>
@@ -25,6 +19,15 @@
<Filter Include="ControllerEmu\Setting">
<UniqueIdentifier>{ce661cb4-f23f-4ab2-952d-402d381735e5}</UniqueIdentifier>
</Filter>
+ <Filter Include="ControllerInterface\Win32">
+ <UniqueIdentifier>{6ca06b20-d8f6-4622-97ab-eefbc66edbd5}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="ControllerInterface\DInput">
+ <UniqueIdentifier>{0289ef91-50f5-4c16-9fa4-ff4c4d8208e7}</UniqueIdentifier>
+ </Filter>
+ <Filter Include="ControllerInterface\XInput">
+ <UniqueIdentifier>{07bad1aa-7e03-4f5c-ade2-a44857c5cbc3}</UniqueIdentifier>
+ </Filter>
</ItemGroup>
<ItemGroup>
<ClCompile Include="GCAdapter.cpp" />
@@ -104,6 +107,9 @@
<ClCompile Include="ControllerInterface\DInput\XInputFilter.cpp">
<Filter>ControllerInterface\DInput</Filter>
</ClCompile>
+ <ClCompile Include="ControllerInterface\Win32\Win32.cpp">
+ <Filter>ControllerInterface\Win32</Filter>
+ </ClCompile>
<ClCompile Include="ControlReference\ExpressionParser.cpp">
<Filter>ControllerInterface</Filter>
</ClCompile>
@@ -200,6 +206,9 @@
<ClInclude Include="ControllerInterface\DInput\XInputFilter.h">
<Filter>ControllerInterface\DInput</Filter>
</ClInclude>
+ <ClInclude Include="ControllerInterface\Win32\Win32.h">
+ <Filter>ControllerInterface\Win32</Filter>
+ </ClInclude>
<ClInclude Include="ControlReference\ExpressionParser.h">
<Filter>ControllerInterface</Filter>
</ClInclude>