diff --git a/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp b/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp index eb1cf8a..d92590f 100644 --- a/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp +++ b/source-code/source/plugins/TLAC/Components/Input/InputEmulator.cpp @@ -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() diff --git a/source-code/source/plugins/TLAC/Components/Input/TouchSliderEmulator.cpp b/source-code/source/plugins/TLAC/Components/Input/TouchSliderEmulator.cpp index 1e9a340..065296f 100644 --- a/source-code/source/plugins/TLAC/Components/Input/TouchSliderEmulator.cpp +++ b/source-code/source/plugins/TLAC/Components/Input/TouchSliderEmulator.cpp @@ -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 @@ -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); diff --git a/source-code/source/plugins/TLAC/dllmain.cpp b/source-code/source/plugins/TLAC/dllmain.cpp index 8b60ed5..c9aece5 100644 --- a/source-code/source/plugins/TLAC/dllmain.cpp +++ b/source-code/source/plugins/TLAC/dllmain.cpp @@ -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 #include @@ -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)