InputCommon: Add Windows.Gaming.Input to ControllerInterface.

This commit is contained in:
Jordan Woyak
2022-04-03 19:03:35 -05:00
parent a4445fa1b0
commit 076a262b9e
5 changed files with 718 additions and 0 deletions
+6
View File
@@ -27,6 +27,12 @@
<Project>{41279555-f94f-4ebc-99de-af863c10c5c4}</Project>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="InputCommon\ControllerInterface\WGInput\WGInput.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="InputCommon\ControllerInterface\WGInput\WGInput.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets" />
</Project>
+2
View File
@@ -94,6 +94,8 @@ if(WIN32)
ControllerInterface/DInput/XInputFilter.h
ControllerInterface/Win32/Win32.cpp
ControllerInterface/Win32/Win32.h
ControllerInterface/WGInput/WGInput.cpp
ControllerInterface/WGInput/WGInput.h
ControllerInterface/XInput/XInput.cpp
ControllerInterface/XInput/XInput.h
ControllerInterface/ForceFeedback/ForceFeedbackDevice.cpp
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,12 @@
// Copyright 2020 Dolphin Emulator Project
// SPDX-License-Identifier: GPL-2.0-or-later
#pragma once
namespace ciface::WGInput
{
void Init();
void DeInit();
void PopulateDevices();
} // namespace ciface::WGInput
@@ -16,6 +16,7 @@
#include "Common/ScopeGuard.h"
#include "Common/Thread.h"
#include "InputCommon/ControllerInterface/DInput/DInput.h"
#include "InputCommon/ControllerInterface/WGInput/WGInput.h"
#include "InputCommon/ControllerInterface/XInput/XInput.h"
constexpr UINT WM_DOLPHIN_STOP = WM_USER;
@@ -42,6 +43,7 @@ static LRESULT CALLBACK WindowProc(HWND hwnd, UINT message, WPARAM wparam, LPARA
g_controller_interface.PlatformPopulateDevices([] {
ciface::DInput::PopulateDevices(s_hwnd);
ciface::XInput::PopulateDevices();
ciface::WGInput::PopulateDevices();
});
}
}
@@ -53,6 +55,7 @@ void ciface::Win32::Init(void* hwnd)
{
s_hwnd = static_cast<HWND>(hwnd);
XInput::Init();
WGInput::Init();
std::promise<HWND> message_window_promise;
@@ -147,6 +150,7 @@ void ciface::Win32::PopulateDevices(void* hwnd)
s_first_populate_devices_asked.Set();
ciface::DInput::PopulateDevices(s_hwnd);
ciface::XInput::PopulateDevices();
ciface::WGInput::PopulateDevices();
}
else
{
@@ -179,4 +183,5 @@ void ciface::Win32::DeInit()
s_hwnd = nullptr;
XInput::DeInit();
WGInput::DeInit();
}