[TLAC] DIVALLER WinUSB mode support #7

Merged
TinkoLiu merged 4 commits from dev into dev 2022-06-25 17:28:53 +03:00
11 changed files with 1075 additions and 597 deletions
@@ -8,6 +8,7 @@
#include "../../Input/Bindings/XinputBinding.h"
#include "../../Input/Bindings/MouseBinding.h"
#include "../../Input/Bindings/Ds4Binding.h"
#include "../../Input/Bindings/DVLBinding.h"
#include "../../Input/KeyConfig/Config.h"
#include "../../Utilities/Operations.h"
#include "../../Utilities/EnumBitwiseOperations.h"
@@ -107,6 +108,15 @@ namespace TLAC::Components
Config::BindConfigKeys(configFile.ConfigMap, "WIREFRAME", *WireframeBinding, { "Backspace" });
mouseScrollPvSelection = configFile.GetBooleanValue("mouse_scroll_pv_selection");
TestBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_L3));
ServiceBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_L2));
CoinBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_L1));
StartBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_FN));
SankakuBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_TRIANGLE));
ShikakuBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_SQUARE));
BatsuBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_CROSS));
MaruBinding->AddBinding(new DivallerBinding(DivallerButton::DVL_CIRCLE));
}
void InputEmulator::Update()
@@ -7,6 +7,7 @@
#include "../../Input/Bindings/KeyboardBinding.h"
#include "../../Input/KeyConfig/Config.h"
#include "../../Input/DirectInput/Ds4/DualShock4.h"
#include "../../Input/Divaller/Divaller.h"
#include "../../FileSystem/ConfigFile.h"
#include "../../Utilities/Math.h"
#include <algorithm>
@@ -100,7 +101,11 @@ namespace TLAC::Components
if (!componentsManager->GetUpdateGameInput() || componentsManager->IsDwGuiActive() || (!enableInMenus && !(*(GameState*)CURRENT_GAME_STATE_ADDRESS == GS_GAME && *(SubGameState*)CURRENT_GAME_SUB_STATE_ADDRESS == SUB_GAME_MAIN)))
return;
if (usePs4OfficialSlider)
if (Input::Divaller::GetInstance() != nullptr)
{
ApplyBitfieldState(Input::Divaller::GetInstance()->GetSlider());
}
else if (usePs4OfficialSlider)
{
DualShock4* ds4 = DualShock4::GetInstance();
if (ds4 == nullptr)
@@ -140,7 +145,7 @@ namespace TLAC::Components
void TouchSliderEmulator::OnFocusLost()
{
if (usePs4OfficialSlider)
if (usePs4OfficialSlider || Input::Divaller::GetInstance() != nullptr)
sliderState->ResetSensors(TouchSliderState::SENSOR_SET_MODE_RAW);
else
sliderState->ResetSensors(TouchSliderState::SENSOR_SET_MODE_SECTIONS);
@@ -0,0 +1,29 @@
#include "DVLBinding.h"
namespace TLAC::Input
{
#define DivallerInstanceCheckDefault(checkFunc) (Divaller::InstanceInitialized() ? Divaller::GetInstance()->checkFunc : false)
DivallerBinding::DivallerBinding(DivallerButton button) : Button(button)
{
}
DivallerBinding::~DivallerBinding()
{
}
bool DivallerBinding::IsDown()
{
return DivallerInstanceCheckDefault(IsDown(Button));
}
bool DivallerBinding::IsTapped()
{
return DivallerInstanceCheckDefault(IsTapped(Button));
}
bool DivallerBinding::IsReleased()
{
return DivallerInstanceCheckDefault(IsReleased(Button));
}
}
@@ -0,0 +1,19 @@
#pragma once
#include "IInputBinding.h"
#include "../Divaller/Divaller.h"
namespace TLAC::Input
{
class DivallerBinding : public IInputBinding
{
public:
DivallerButton Button;
DivallerBinding(DivallerButton button);
~DivallerBinding();
bool IsDown() override;
bool IsTapped() override;
bool IsReleased() override;
};
}
@@ -0,0 +1,272 @@
#include "Divaller.h"
#include "../../framework.h"
#include "DivallerButton.h"
#include "DivallerState.h"
#include <stdio.h>
#include <string>
#include <iostream>
namespace TLAC::Input
{
Divaller *Divaller::instance;
Divaller::Divaller()
{
memset(outputBuffer, 0, sizeof(outputBuffer));
outputBuffer[0] = 0x44;
outputBuffer[1] = 0x4c;
outputBuffer[2] = 0x61;
}
Divaller::~Divaller()
{
CloseHandle(hDeviceHandle);
}
bool Divaller::TryInitializeInstance()
{
if (InstanceInitialized())
return true;
Divaller *divaller = new Divaller();
BOOL success = divaller->Initialize();
instance = success ? divaller : nullptr;
if (!success)
delete divaller;
return success;
}
bool Divaller::Initialize()
{
HDEVINFO hDevInfo = SetupDiGetClassDevs(&GUID_DEVINTERFACE_USB_DEVICE, NULL, NULL, DIGCF_PRESENT | DIGCF_DEVICEINTERFACE);
if (hDevInfo == INVALID_HANDLE_VALUE)
{
printf("[TLAC] Divaller::Initialize(): SetupDiGetClassDevs returned INVALID_HANDLE_VALUE\n");
return false;
}
LPCWSTR devPath = NULL;
for (size_t i = 0;; i++)
{
SP_DEVICE_INTERFACE_DATA device_interface_data = {0};
device_interface_data.cbSize = sizeof(SP_DEVICE_INTERFACE_DATA);
BOOL success = SetupDiEnumDeviceInterfaces(
hDevInfo,
NULL,
&GUID_DEVINTERFACE_USB_DEVICE,
(DWORD)i,
&device_interface_data);
if (!success)
{
break;
}
ULONG required_length = 0;
success = SetupDiGetDeviceInterfaceDetail(
hDevInfo,
&device_interface_data,
NULL,
0,
&required_length,
NULL);
UINT8 *interface_data = (UINT8 *)calloc(required_length, sizeof(UINT8));
PSP_DEVICE_INTERFACE_DETAIL_DATA device_interface_detail_data = (PSP_DEVICE_INTERFACE_DETAIL_DATA)interface_data;
device_interface_detail_data->cbSize = sizeof(SP_DEVICE_INTERFACE_DETAIL_DATA);
ULONG actual_length = required_length;
success = SetupDiGetDeviceInterfaceDetail(
hDevInfo,
&device_interface_data,
device_interface_detail_data,
actual_length,
&required_length,
NULL);
if (!success)
{
continue;
}
if (
wcsstr(device_interface_detail_data->DevicePath, L"vid_0e8f") == 0 ||
wcsstr(device_interface_detail_data->DevicePath, L"pid_2213") == 0)
{
continue;
}
devPath = device_interface_detail_data->DevicePath;
break;
}
if (devPath == NULL)
{
SetupDiDestroyDeviceInfoList(hDevInfo);
return false;
}
hDeviceHandle = CreateFile(
devPath,
GENERIC_READ | GENERIC_WRITE,
FILE_SHARE_READ | FILE_SHARE_WRITE,
NULL,
OPEN_EXISTING,
FILE_FLAG_OVERLAPPED,
NULL);
if (hDeviceHandle == INVALID_HANDLE_VALUE)
{
printf("[TLAC] Divaller::Initialize(): Open device failed.\n");
SetupDiDestroyDeviceInfoList(hDevInfo);
return false;
}
if (!WinUsb_Initialize(hDeviceHandle, &hInterfaceHandle))
{
printf("[TLAC] Divaller::Initialize(): WinUsb_Initialize failed.\n");
std::cout << GetLastError() << std::endl;
SetupDiDestroyDeviceInfoList(hDevInfo);
CloseHandle(hDeviceHandle);
return false;
}
USB_INTERFACE_DESCRIPTOR USBInterfaceDescriptor;
if (!WinUsb_QueryInterfaceSettings(hInterfaceHandle, 0, &USBInterfaceDescriptor))
{
std::cout << GetLastError() << std::endl;
SetupDiDestroyDeviceInfoList(hDevInfo);
CloseHandle(hDeviceHandle);
return false;
}
SetupDiDestroyDeviceInfoList(hDevInfo);
return true;
}
bool Divaller::PollInput()
{
lastState = currentState;
ULONG len = 0;
memset(currentState.state, 0, sizeof(currentState.state));
BOOL bResult = WinUsb_ReadPipe(hInterfaceHandle, (UCHAR)132, currentState.state, _countof(currentState.state), &len, nullptr);
if (!bResult || currentState.state[0] != 0x42 || currentState.state[1] != 0x56 || currentState.state[2] != 0x5a)
{
printf("[TLAC] Divaller::PollInput(): WinUsb_ReadPipe failed.\n");
std::cout << GetLastError() << std::endl;
}
SetLED();
return bResult;
}
bool Divaller::SetLED()
{
outputBuffer[3] &= 0x0F; // Reset Button LED
outputBuffer[3] |= (!(*buttonLed >> 1 & 0x0001)) << 4; // SQUARE
outputBuffer[3] |= (!(*buttonLed >> 3 & 0x0001)) << 5; // CIRCLE
outputBuffer[3] |= (!(*buttonLed & 0x0001)) << 6; // TRIANGLE
outputBuffer[3] |= (!(*buttonLed >> 2 & 0x0001)) << 7; // CROSS
if (*sliderLedInit && !sliderLedData)
{
sliderLedData = reinterpret_cast<UCHAR *>(*(uint64_t *)(0x14cc5de40 + 0x68) + 0x189c);
}
if (sliderLedData)
{
for (int n = 0; n < 32; n++)
{
// LED number + 3 bytes header + color offset
outputBuffer[(31 - n) * 3 + 3 + 3] = sliderLedData[n * 3 + 1]; // BLUE
outputBuffer[(31 - n) * 3 + 3 + 2] = sliderLedData[n * 3 + 2]; // RED
outputBuffer[(31 - n) * 3 + 3 + 1] = sliderLedData[n * 3 + 3]; // GREEN
}
}
ULONG len = 0;
BOOL bResult = WinUsb_WritePipe(hInterfaceHandle, (UCHAR)0x03, outputBuffer, 100, &len, NULL);
if (!bResult)
{
printf("[TLAC] Divaller::SetLED(): WinUsb_WritePipe failed.\n");
std::cout << GetLastError() << std::endl;
}
return bResult;
}
bool Divaller::IsDown(DivallerButton button)
{
switch (button)
{
case DivallerButton::DVL_L1:
return (currentState.state[5] >> 0) & 1;
case DivallerButton::DVL_L2:
return (currentState.state[4] >> 7) & 1;
case DivallerButton::DVL_L3:
return (currentState.state[4] >> 6) & 1;
case DivallerButton::DVL_FN:
return (currentState.state[3] >> 1) & 1;
case DivallerButton::DVL_TRIANGLE:
return (currentState.state[3] >> 4) & 1;
case DivallerButton::DVL_SQUARE:
return (currentState.state[3] >> 2) & 1;
case DivallerButton::DVL_CROSS:
return (currentState.state[3] >> 5) & 1;
case DivallerButton::DVL_CIRCLE:
return (currentState.state[3] >> 3) & 1;
}
return false;
}
bool Divaller::IsUp(DivallerButton button)
{
return !IsDown(button);
}
bool Divaller::IsTapped(DivallerButton button)
{
return IsDown(button) && WasUp(button);
}
bool Divaller::IsReleased(DivallerButton button)
{
return IsUp(button) && WasDown(button);
}
bool Divaller::WasDown(DivallerButton button)
{
switch (button)
{
case DivallerButton::DVL_L1:
return (lastState.state[5] >> 0) & 1;
case DivallerButton::DVL_L2:
return (lastState.state[4] >> 7) & 1;
case DivallerButton::DVL_L3:
return (lastState.state[4] >> 6) & 1;
case DivallerButton::DVL_FN:
return (lastState.state[3] >> 1) & 1;
case DivallerButton::DVL_TRIANGLE:
return (lastState.state[3] >> 4) & 1;
case DivallerButton::DVL_SQUARE:
return (lastState.state[3] >> 2) & 1;
case DivallerButton::DVL_CROSS:
return (lastState.state[3] >> 5) & 1;
case DivallerButton::DVL_CIRCLE:
return (lastState.state[3] >> 3) & 1;
}
return false;
}
bool Divaller::WasUp(DivallerButton button)
{
return !WasDown(button);
}
uint32_t Divaller::GetSlider()
{
uint32_t i = 0;
i |= currentState.state[5] >> 4;
i |= currentState.state[6] << 4;
i |= currentState.state[7] << 12;
i |= currentState.state[8] << 20;
i |= currentState.state[9] << 28;
// Reverse the bit order of uint32
i = (i & 0xaaaaaaaa) >> 1 | (i & 0x55555555) << 1;
i = (i & 0xcccccccc) >> 2 | (i & 0x33333333) << 2;
i = (i & 0xf0f0f0f0) >> 4 | (i & 0x0f0f0f0f) << 4;
i = (i & 0xff00ff00) >> 8 | (i & 0x00ff00ff) << 8;
return i >> 16 | i << 16;
};
}
@@ -0,0 +1,52 @@
#pragma once
#include "../IInputDevice.h"
#include "DivallerState.h"
#include "DivallerButton.h"
#include <SetupAPI.h>
#include <initguid.h>
#include <usbiodef.h>
#include <winusb.h>
namespace TLAC::Input
{
class Divaller : public IInputDevice
{
public:
Divaller();
~Divaller();
static bool TryInitializeInstance();
bool Initialize();
bool PollInput() override;
bool SetLED();
bool IsDown(DivallerButton button);
bool IsUp(DivallerButton button);
bool IsTapped(DivallerButton button);
bool IsReleased(DivallerButton button);
bool WasDown(DivallerButton button);
bool WasUp(DivallerButton button);
uint32_t GetSlider();
static inline bool InstanceInitialized() { return instance != nullptr; };
static inline Divaller *GetInstance() { return instance; };
static inline void DeleteInstance()
{
delete instance;
instance = nullptr;
};
private:
static Divaller *instance;
DivallerState lastState;
DivallerState currentState;
WINUSB_INTERFACE_HANDLE hInterfaceHandle;
HANDLE hDeviceHandle;
UCHAR outputBuffer[100];
int *buttonLed = reinterpret_cast<int *>(0x14119b950);
uint64_t *partionLed = reinterpret_cast<uint64_t *>(*(uint64_t *)0x140eda330 + 0xc9);
uint64_t *sliderLedInit = reinterpret_cast<uint64_t *>((uint64_t *)0x14cc5dea8);
UCHAR *sliderLedData = nullptr;
};
}
@@ -0,0 +1,32 @@
#pragma once
namespace TLAC::Input
{
enum DivallerButton : int
{
DVL_SQUARE = 0,
DVL_CROSS = 1,
DVL_CIRCLE = 2,
DVL_TRIANGLE = 3,
DVL_FN = 4,
DVL_L1 = 5,
DVL_L2 = 6,
DVL_L3 = 7,
DVL_R1 = 8,
DVL_R2 = 9,
DVL_R3 = 10,
DVL_UP = 11,
DVL_LEFT = 12,
DVL_DOWN = 13,
DVL_RIGHT = 14,
DVL_PAD = 11,
DVL_SHARE = 12,
DVL_HOME = 13,
DVL_OPTION = 14
};
}
@@ -0,0 +1,10 @@
#pragma once
#include "../../framework.h"
namespace TLAC::Input
{
struct DivallerState
{
uint8_t state[24];
};
}
+236 -230
View File
@@ -1,231 +1,237 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{2B5533BB-04A1-424F-9BCA-1CA963B46B7F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>TLAC</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<TargetExt>.dva</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<TargetExt>.dva</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Components\CameraController.h" />
<ClInclude Include="Components\ComponentsManager.h" />
<ClInclude Include="Components\CustomPlayerData.h" />
<ClInclude Include="Components\DebugComponent.h" />
<ClInclude Include="Components\EmulatorComponent.h" />
<ClInclude Include="Components\FastLoader.h" />
<ClInclude Include="Components\FrameRateManager.h" />
<ClInclude Include="Components\GameState.h" />
<ClInclude Include="Components\GameTargets\HoldState.h" />
<ClInclude Include="Components\GameTargets\TargetHitStates.h" />
<ClInclude Include="Components\GameTargets\TargetInspector.h" />
<ClInclude Include="Components\GameTargets\TargetState.h" />
<ClInclude Include="Components\GameTargets\TargetTypes.h" />
<ClInclude Include="Components\Input\InputBufferType.h" />
<ClInclude Include="Components\Input\InputEmulator.h" />
<ClInclude Include="Components\Input\InputState.h" />
<ClInclude Include="Components\Input\JvsButtons.h" />
<ClInclude Include="Components\Input\TouchPanelEmulator.h" />
<ClInclude Include="Components\Input\TouchPanelState.h" />
<ClInclude Include="Components\Input\TouchSliderEmulator.h" />
<ClInclude Include="Components\Input\TouchSliderState.h" />
<ClInclude Include="Components\Pause.h" />
<ClInclude Include="Components\PlayerData.h" />
<ClInclude Include="Components\PlayerDataManager.h" />
<ClInclude Include="Components\ScaleComponent.h" />
<ClInclude Include="Components\ScoreSaver.h" />
<ClInclude Include="Constants.h" />
<ClInclude Include="FileSystem\ConfigFile.h" />
<ClInclude Include="FileSystem\TextFile.h" />
<ClInclude Include="framework.h" />
<ClInclude Include="Input\Bindings\Binding.h" />
<ClInclude Include="Input\Bindings\Ds4Binding.h" />
<ClInclude Include="Input\Bindings\GuBinding.h" />
<ClInclude Include="Input\Bindings\IInputBinding.h" />
<ClInclude Include="Input\Bindings\KeyboardBinding.h" />
<ClInclude Include="Input\Bindings\MouseBinding.h" />
<ClInclude Include="Input\Bindings\XinputBinding.h" />
<ClInclude Include="Input\DirectInput\Controller.h" />
<ClInclude Include="Input\DirectInput\DirectInput.h" />
<ClInclude Include="Input\DirectInput\DirectInputDevice.h" />
<ClInclude Include="Input\DirectInput\DirectInputMouse.h" />
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h" />
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h" />
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h" />
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h" />
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h" />
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h" />
<ClInclude Include="Input\IInputDevice.h" />
<ClInclude Include="Input\Keyboard\Keyboard.h" />
<ClInclude Include="Input\Keyboard\KeyboardState.h" />
<ClInclude Include="Input\KeyConfig\Config.h" />
<ClInclude Include="Input\KeyConfig\KeyString.h" />
<ClInclude Include="Input\KeyConfig\KeyStringHash.h" />
<ClInclude Include="Input\Mouse\Mouse.h" />
<ClInclude Include="Input\Mouse\MouseState.h" />
<ClInclude Include="Input\Xinput\Xinput.h" />
<ClInclude Include="Input\Xinput\XinputState.h" />
<ClInclude Include="pluginconfig.h" />
<ClInclude Include="Utilities\Drawing.h" />
<ClInclude Include="Utilities\EnumBitwiseOperations.h" />
<ClInclude Include="Utilities\Math.h" />
<ClInclude Include="Utilities\Operations.h" />
<ClInclude Include="Utilities\Stopwatch.h" />
<ClInclude Include="Utilities\Vec2.h" />
<ClInclude Include="Utilities\Vec3.h" />
<ClInclude Include="Utils.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="Components\CameraController.cpp" />
<ClCompile Include="Components\ComponentsManager.cpp" />
<ClCompile Include="Components\DebugComponent.cpp" />
<ClCompile Include="Components\EmulatorComponent.cpp" />
<ClCompile Include="Components\FastLoader.cpp" />
<ClCompile Include="Components\FrameRateManager.cpp" />
<ClCompile Include="Components\GameTargets\TargetInspector.cpp" />
<ClCompile Include="Components\Input\InputEmulator.cpp" />
<ClCompile Include="Components\Input\InputState.cpp" />
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp" />
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp" />
<ClCompile Include="Components\Input\TouchSliderState.cpp" />
<ClCompile Include="Components\Pause.cpp" />
<ClCompile Include="Components\PlayerDataManager.cpp" />
<ClCompile Include="Components\ScaleComponent.cpp" />
<ClCompile Include="Components\ScoreSaver.cpp" />
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="FileSystem\ConfigFile.cpp" />
<ClCompile Include="FileSystem\TextFile.cpp" />
<ClCompile Include="framework.cpp" />
<ClCompile Include="Input\Bindings\Binding.cpp" />
<ClCompile Include="Input\Bindings\Ds4Binding.cpp" />
<ClCompile Include="Input\Bindings\GuBinding.cpp" />
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp" />
<ClCompile Include="Input\Bindings\MouseBinding.cpp" />
<ClCompile Include="Input\Bindings\XinputBinding.cpp" />
<ClCompile Include="Input\DirectInput\Controller.cpp" />
<ClCompile Include="Input\DirectInput\DirectInput.cpp" />
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp" />
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp" />
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp" />
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp" />
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp" />
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp" />
<ClCompile Include="Input\Keyboard\Keyboard.cpp" />
<ClCompile Include="Input\Keyboard\KeyboardState.cpp" />
<ClCompile Include="Input\KeyConfig\Config.cpp" />
<ClCompile Include="Input\KeyConfig\KeyString.cpp" />
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp" />
<ClCompile Include="Input\Mouse\Mouse.cpp" />
<ClCompile Include="Input\Xinput\Xinput.cpp" />
<ClCompile Include="Input\Xinput\XinputState.cpp" />
<ClCompile Include="Utilities\Drawing.cpp" />
<ClCompile Include="Utilities\Math.cpp" />
<ClCompile Include="Utilities\Operations.cpp" />
<ClCompile Include="Utilities\Stopwatch.cpp" />
<ClCompile Include="Utilities\Vec2.cpp" />
<ClCompile Include="Utilities\Vec3.cpp" />
<ClCompile Include="Utils.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug|x64">
<Configuration>Debug</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release|x64">
<Configuration>Release</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<VCProjectVersion>16.0</VCProjectVersion>
<ProjectGuid>{2B5533BB-04A1-424F-9BCA-1CA963B46B7F}</ProjectGuid>
<Keyword>Win32Proj</Keyword>
<RootNamespace>TLAC</RootNamespace>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<PlatformToolset>v142</PlatformToolset>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="Shared">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<LinkIncremental>false</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<TargetExt>.dva</TargetExt>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<LinkIncremental>true</LinkIncremental>
<TargetName>$(ProjectName)</TargetName>
<TargetExt>.dva</TargetExt>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>NDEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Winusb.lib;Setupapi.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<ClCompile>
<PrecompiledHeader>NotUsing</PrecompiledHeader>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<SDLCheck>true</SDLCheck>
<PreprocessorDefinitions>_DEBUG;TLAC_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<ConformanceMode>true</ConformanceMode>
<PrecompiledHeaderFile>
</PrecompiledHeaderFile>
<LanguageStandard>stdcpp17</LanguageStandard>
<AdditionalIncludeDirectories>..\..\..\dependencies\PluginConfigApi;..\..\..\dependencies\detours\include;..\..\..\dependencies\freeglut\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalOptions>-d2FH4- %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableUAC>false</EnableUAC>
<AdditionalLibraryDirectories>..\..\..\dependencies\detours\lib;..\..\..\dependencies\freeglut\lib;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
<AdditionalDependencies>XINPUT9_1_0.LIB;dinput8.lib;dxguid.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>Xinput.h</IgnoreSpecificDefaultLibraries>
<AdditionalOptions>-d2:-FH4- %(AdditionalOptions)</AdditionalOptions>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ClInclude Include="Components\CameraController.h" />
<ClInclude Include="Components\ComponentsManager.h" />
<ClInclude Include="Components\CustomPlayerData.h" />
<ClInclude Include="Components\DebugComponent.h" />
<ClInclude Include="Components\EmulatorComponent.h" />
<ClInclude Include="Components\FastLoader.h" />
<ClInclude Include="Components\FrameRateManager.h" />
<ClInclude Include="Components\GameState.h" />
<ClInclude Include="Components\GameTargets\HoldState.h" />
<ClInclude Include="Components\GameTargets\TargetHitStates.h" />
<ClInclude Include="Components\GameTargets\TargetInspector.h" />
<ClInclude Include="Components\GameTargets\TargetState.h" />
<ClInclude Include="Components\GameTargets\TargetTypes.h" />
<ClInclude Include="Components\Input\InputBufferType.h" />
<ClInclude Include="Components\Input\InputEmulator.h" />
<ClInclude Include="Components\Input\InputState.h" />
<ClInclude Include="Components\Input\JvsButtons.h" />
<ClInclude Include="Components\Input\TouchPanelEmulator.h" />
<ClInclude Include="Components\Input\TouchPanelState.h" />
<ClInclude Include="Components\Input\TouchSliderEmulator.h" />
<ClInclude Include="Components\Input\TouchSliderState.h" />
<ClInclude Include="Components\Pause.h" />
<ClInclude Include="Components\PlayerData.h" />
<ClInclude Include="Components\PlayerDataManager.h" />
<ClInclude Include="Components\ScaleComponent.h" />
<ClInclude Include="Components\ScoreSaver.h" />
<ClInclude Include="Constants.h" />
<ClInclude Include="FileSystem\ConfigFile.h" />
<ClInclude Include="FileSystem\TextFile.h" />
<ClInclude Include="framework.h" />
<ClInclude Include="Input\Bindings\Binding.h" />
<ClInclude Include="Input\Bindings\Ds4Binding.h" />
<ClInclude Include="Input\Bindings\DVLBinding.h" />
<ClInclude Include="Input\Bindings\GuBinding.h" />
<ClInclude Include="Input\Bindings\IInputBinding.h" />
<ClInclude Include="Input\Bindings\KeyboardBinding.h" />
<ClInclude Include="Input\Bindings\MouseBinding.h" />
<ClInclude Include="Input\Bindings\XinputBinding.h" />
<ClInclude Include="Input\DirectInput\Controller.h" />
<ClInclude Include="Input\DirectInput\DirectInput.h" />
<ClInclude Include="Input\DirectInput\DirectInputDevice.h" />
<ClInclude Include="Input\DirectInput\DirectInputMouse.h" />
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h" />
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h" />
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h" />
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h" />
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h" />
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h" />
<ClInclude Include="Input\Divaller\Divaller.h" />
<ClInclude Include="Input\Divaller\DivallerButton.h" />
<ClInclude Include="Input\Divaller\DivallerState.h" />
<ClInclude Include="Input\IInputDevice.h" />
<ClInclude Include="Input\Keyboard\Keyboard.h" />
<ClInclude Include="Input\Keyboard\KeyboardState.h" />
<ClInclude Include="Input\KeyConfig\Config.h" />
<ClInclude Include="Input\KeyConfig\KeyString.h" />
<ClInclude Include="Input\KeyConfig\KeyStringHash.h" />
<ClInclude Include="Input\Mouse\Mouse.h" />
<ClInclude Include="Input\Mouse\MouseState.h" />
<ClInclude Include="Input\Xinput\Xinput.h" />
<ClInclude Include="Input\Xinput\XinputState.h" />
<ClInclude Include="pluginconfig.h" />
<ClInclude Include="Utilities\Drawing.h" />
<ClInclude Include="Utilities\EnumBitwiseOperations.h" />
<ClInclude Include="Utilities\Math.h" />
<ClInclude Include="Utilities\Operations.h" />
<ClInclude Include="Utilities\Stopwatch.h" />
<ClInclude Include="Utilities\Vec2.h" />
<ClInclude Include="Utilities\Vec3.h" />
<ClInclude Include="Utils.h" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="Components\CameraController.cpp" />
<ClCompile Include="Components\ComponentsManager.cpp" />
<ClCompile Include="Components\DebugComponent.cpp" />
<ClCompile Include="Components\EmulatorComponent.cpp" />
<ClCompile Include="Components\FastLoader.cpp" />
<ClCompile Include="Components\FrameRateManager.cpp" />
<ClCompile Include="Components\GameTargets\TargetInspector.cpp" />
<ClCompile Include="Components\Input\InputEmulator.cpp" />
<ClCompile Include="Components\Input\InputState.cpp" />
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp" />
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp" />
<ClCompile Include="Components\Input\TouchSliderState.cpp" />
<ClCompile Include="Components\Pause.cpp" />
<ClCompile Include="Components\PlayerDataManager.cpp" />
<ClCompile Include="Components\ScaleComponent.cpp" />
<ClCompile Include="Components\ScoreSaver.cpp" />
<ClCompile Include="dllmain.cpp" />
<ClCompile Include="FileSystem\ConfigFile.cpp" />
<ClCompile Include="FileSystem\TextFile.cpp" />
<ClCompile Include="framework.cpp" />
<ClCompile Include="Input\Bindings\Binding.cpp" />
<ClCompile Include="Input\Bindings\Ds4Binding.cpp" />
<ClCompile Include="Input\Bindings\DVLBinding.cpp" />
<ClCompile Include="Input\Bindings\GuBinding.cpp" />
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp" />
<ClCompile Include="Input\Bindings\MouseBinding.cpp" />
<ClCompile Include="Input\Bindings\XinputBinding.cpp" />
<ClCompile Include="Input\DirectInput\Controller.cpp" />
<ClCompile Include="Input\DirectInput\DirectInput.cpp" />
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp" />
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp" />
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp" />
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp" />
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp" />
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp" />
<ClCompile Include="Input\Divaller\Divaller.cpp" />
<ClCompile Include="Input\Keyboard\Keyboard.cpp" />
<ClCompile Include="Input\Keyboard\KeyboardState.cpp" />
<ClCompile Include="Input\KeyConfig\Config.cpp" />
<ClCompile Include="Input\KeyConfig\KeyString.cpp" />
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp" />
<ClCompile Include="Input\Mouse\Mouse.cpp" />
<ClCompile Include="Input\Xinput\Xinput.cpp" />
<ClCompile Include="Input\Xinput\XinputState.cpp" />
<ClCompile Include="Utilities\Drawing.cpp" />
<ClCompile Include="Utilities\Math.cpp" />
<ClCompile Include="Utilities\Operations.cpp" />
<ClCompile Include="Utilities\Stopwatch.cpp" />
<ClCompile Include="Utilities\Vec2.cpp" />
<ClCompile Include="Utilities\Vec3.cpp" />
<ClCompile Include="Utils.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -1,366 +1,384 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\CameraController.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\ComponentsManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\CustomPlayerData.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\DebugComponent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\EmulatorComponent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\FastLoader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\FrameRateManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\PlayerData.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\PlayerDataManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\InputBufferType.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\InputEmulator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\InputState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\JvsButtons.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchPanelEmulator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchPanelState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchSliderEmulator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchSliderState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="FileSystem\ConfigFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="FileSystem\TextFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\Binding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\Ds4Binding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\IInputBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\KeyboardBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\MouseBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Controller.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\DirectInput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\DirectInputDevice.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\DirectInputMouse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Keyboard\Keyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Keyboard\KeyboardState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\KeyConfig\Config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\KeyConfig\KeyString.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\KeyConfig\KeyStringHash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Mouse\Mouse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Mouse\MouseState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\IInputDevice.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\EnumBitwiseOperations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Math.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Operations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Stopwatch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Vec2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Vec3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\ScaleComponent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\XinputBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Xinput\Xinput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Xinput\XinputState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\HoldState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetHitStates.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetInspector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetTypes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\ScoreSaver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pluginconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Pause.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Drawing.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\GuBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utils.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="framework.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\CameraController.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\ComponentsManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\DebugComponent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\EmulatorComponent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\FastLoader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\FrameRateManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\PlayerDataManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\InputEmulator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\InputState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\TouchSliderState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="FileSystem\ConfigFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="FileSystem\TextFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\Binding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\Ds4Binding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\MouseBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\Controller.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\DirectInput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Keyboard\Keyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Keyboard\KeyboardState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\KeyConfig\Config.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\KeyConfig\KeyString.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Mouse\Mouse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Math.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Operations.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Stopwatch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Vec2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Vec3.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\ScaleComponent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\XinputBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Xinput\Xinput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Xinput\XinputState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\GameTargets\TargetInspector.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\ScoreSaver.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Pause.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Drawing.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\GuBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<Filter Include="Source Files">
<UniqueIdentifier>{4FC737F1-C7A5-4376-A066-2A32D752A2FF}</UniqueIdentifier>
<Extensions>cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx</Extensions>
</Filter>
<Filter Include="Header Files">
<UniqueIdentifier>{93995380-89BD-4b04-88EB-625FBE52EBFB}</UniqueIdentifier>
<Extensions>h;hh;hpp;hxx;hm;inl;inc;ipp;xsd</Extensions>
</Filter>
<Filter Include="Resource Files">
<UniqueIdentifier>{67DA6AB6-F800-4c08-8B7A-83BB121AAD01}</UniqueIdentifier>
<Extensions>rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms</Extensions>
</Filter>
</ItemGroup>
<ItemGroup>
<ClInclude Include="framework.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Constants.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\CameraController.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\ComponentsManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\CustomPlayerData.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\DebugComponent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\EmulatorComponent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\FastLoader.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\FrameRateManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\PlayerData.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\PlayerDataManager.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\InputBufferType.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\InputEmulator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\InputState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\JvsButtons.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchPanelEmulator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchPanelState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchSliderEmulator.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Input\TouchSliderState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="FileSystem\ConfigFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="FileSystem\TextFile.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\Binding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\Ds4Binding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\IInputBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\KeyboardBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\MouseBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Ds4\Ds4Button.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Ds4\Ds4State.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Ds4\DualShock4.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\Controller.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\DirectInput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\DirectInputDevice.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\DirectInputMouse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Keyboard\Keyboard.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Keyboard\KeyboardState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\KeyConfig\Config.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\KeyConfig\KeyString.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\KeyConfig\KeyStringHash.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Mouse\Mouse.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Mouse\MouseState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\IInputDevice.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\EnumBitwiseOperations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Math.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Operations.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Stopwatch.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Vec2.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Vec3.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\ScaleComponent.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\XinputBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Xinput\Xinput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Xinput\XinputState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\HoldState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetHitStates.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetInspector.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\GameTargets\TargetTypes.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\ScoreSaver.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="pluginconfig.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Components\Pause.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utilities\Drawing.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\GenericUsb\GuButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\GenericUsb\GuState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\DirectInput\GenericUsb\GenericUsbInput.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\GuBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Utils.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Divaller\Divaller.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Divaller\DivallerButton.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Divaller\DivallerState.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="Input\Bindings\DVLBinding.h">
<Filter>Header Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
<ClCompile Include="dllmain.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="framework.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\CameraController.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\ComponentsManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\DebugComponent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\EmulatorComponent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\FastLoader.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\FrameRateManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\PlayerDataManager.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\InputEmulator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\InputState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\TouchPanelEmulator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\TouchSliderEmulator.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Input\TouchSliderState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="FileSystem\ConfigFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="FileSystem\TextFile.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\Binding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\Ds4Binding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\KeyboardBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\MouseBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\Ds4\Ds4State.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\Ds4\DualShock4.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\Controller.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\DirectInput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\DirectInputDevice.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\DirectInputMouse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Keyboard\Keyboard.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Keyboard\KeyboardState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\KeyConfig\Config.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\KeyConfig\KeyString.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\KeyConfig\KeyStringHash.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Mouse\Mouse.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Math.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Operations.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Stopwatch.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Vec2.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Vec3.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\ScaleComponent.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\XinputBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Xinput\Xinput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Xinput\XinputState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\GameTargets\TargetInspector.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\ScoreSaver.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Components\Pause.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utilities\Drawing.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\GenericUsb\GuState.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\DirectInput\GenericUsb\GenericUsbInput.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\GuBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Utils.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Divaller\Divaller.cpp">
<Filter>Source Files</Filter>
</ClCompile>
<ClCompile Include="Input\Bindings\DVLBinding.cpp">
<Filter>Source Files</Filter>
</ClCompile>
</ItemGroup>
</Project>
@@ -12,6 +12,7 @@
#include "Input/DirectInput/DirectInput.h"
#include "Input/DirectInput/Ds4/DualShock4.h"
#include "Input/DirectInput/GenericUsb/GenericUsbInput.h"
#include "Input/Divaller/Divaller.h"
#include "Components/ComponentsManager.h"
#include <tchar.h>
#include <GL/freeglut.h>
@@ -81,6 +82,12 @@ namespace TLAC
if (Input::GenericUsbInput::TryInitializeInstance())
printf("[TLAC] UpdateTick(): GenericUsbInput connected and initialized\n");
}
if (!Input::Divaller::InstanceInitialized())
{
if (Input::Divaller::TryInitializeInstance())
printf("[TLAC] UpdateTick(): Divaller connected and initialized\n");
}
}
ComponentsManager.Update();
@@ -112,6 +119,15 @@ namespace TLAC
}
}
if (Input::Divaller::GetInstance() != nullptr)
{
if (!Input::Divaller::GetInstance()->PollInput())
{
Input::Divaller::DeleteInstance();
printf("[TLAC] UpdateTick(): Divaller connection lost\n");
}
}
ComponentsManager.UpdateInput();
}
@@ -140,6 +156,15 @@ namespace TLAC
printf("[TLAC] UpdateTick(): GenericUsbInput connection lost\n");
}
}
if (Input::Divaller::GetInstance() != nullptr)
{
if (!Input::Divaller::GetInstance()->PollInput())
{
Input::Divaller::DeleteInstance();
printf("[TLAC] UpdateTick(): Divaller connection lost\n");
}
}
}
if (HasWindowFocus && !HadWindowFocus)