diff options
| author | Michael M <mchtly@gmail.com> | 2017-11-10 09:56:13 -0800 |
|---|---|---|
| committer | Jordan Woyak <jordan.woyak@gmail.com> | 2019-03-29 08:01:39 -0500 |
| commit | 92ca6e124e82f63b61982a5ecfb26ca818f2fe47 (patch) | |
| tree | 01e0f81f5c549d84033b1633638d7ac2d4b27820 /Source/Core/InputCommon | |
| parent | 377615b06fd61717edb39b51964e611fd2da8cdc (diff) | |
Add ControllerInterface::Win32 to wrap XInput and DInput
Diffstat (limited to 'Source/Core/InputCommon')
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> |
