[TLAC]: add DIVALLER binding

This commit is contained in:
Tinko Liu
2022-06-25 17:19:54 +08:00
parent 49c69de847
commit 5a72210023
3 changed files with 42 additions and 2 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);
@@ -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)