mirror of
https://github.com/hedge-dev/UnleashedRecomp.git
synced 2025-10-30 07:11:05 +00:00
Some checks are pending
validate-internal / build (push) Waiting to run
* Experimenting Button Label Experimenting a way to add a hint for Button Labels. It should attempt to fix the Nintendo Layout issue when using a Nintendo Switch controller * Create c-cpp.yml * Create cmake-multi-platform.yml * Create apply-patch.yml * removing the workflows * added experimental Steam Virtual Gamepad support * restoring notes for Button Labels. * Initial Gamepad Hotplug Logic improvements This changes the way how a Controller will be prioritized. By default: it'll always prioritize based on Player 1. It should play nicely with Steam Deck's internal inputs when Steam Input is active * Lightbar detection when using multiple PlayStation controllers at the same time. An attempt to remedy the Lightbar activation. While Player 2/3/4 will override the in-game lightbar event upon connection: it'll later revert back to the in-game event. * Attempt to reduce Input leaking To avoid "the Controller is leaking" situation, there's now a Gamepad stat management that should reset Controller state based on connected controller. * Lightbar active fix when gamepad plugged first prior to game launch Another attempt to fix the lightbar by redoing the controller state mangement. For some reason: the Lightbar gets disabled when a controller is already plugged prior to game launch. It reverts back to normal until the next game event. * Revert "restoring notes for Button Labels." This reverts commitef4e37cb41. * Reapply "restoring notes for Button Labels." This reverts commitf3ddd80024. * Moving all Gamepad Hotplug changes to separate branch To ensure all Hotplug-related changes don't accidentally get leftover: this commit will revert all the back back to the accidental removal of Button Label's note. * added SDL's GameController naming convention as Fallback If EInputDeviceExplicit doesn't recognize a specific Controller Type or Device: it'll fallback to SDL's naming conventions. This helps troubleshooting Controller-related issues when using the debug console. * Official device naming scheme for EInputDeviceExplicit Changes some of EInputDeviceExplicit's names to match the device's official name (such as Nintendo Switch Pro Controller, Xbox Wireless Controller, Amazon Luna Controller, etc.) * spacing formatting fix * remove "SDL_HINT_GAMECONTROLLER_USE_BUTTON_LABELS" hint since #1045 will include it: we're gonna get rid of it on this code section to avoid conflicts. * moved EInputDevice Unknown class to the top priority * Replacing EInputDeviceExplicit with SDL_GameControllerName Based on @hyperbx's suggestions: It'll look for SDL's Controller Name as opposed to EInputDevice's naming scheme. * remove hid::GetInputDeviceName() from hid.ccp Now that SDL_GameControllerName handles Controller naming conventions, the hid.ccp portion of GetInputDeviceName is no longer needed. * Fix indentation --------- Co-authored-by: Hyper <34012267+hyperbx@users.noreply.github.com>
49 lines
1.1 KiB
C++
49 lines
1.1 KiB
C++
#pragma once
|
|
|
|
namespace hid
|
|
{
|
|
enum class EInputDevice
|
|
{
|
|
Unknown,
|
|
Keyboard,
|
|
Mouse,
|
|
Xbox,
|
|
PlayStation
|
|
};
|
|
|
|
enum class EInputDeviceExplicit
|
|
{
|
|
Unknown,
|
|
Xbox360,
|
|
XboxOne,
|
|
DualShock3,
|
|
DualShock4,
|
|
SwitchPro,
|
|
Virtual,
|
|
DualSense,
|
|
Luna,
|
|
Stadia,
|
|
NvShield,
|
|
SwitchJCLeft,
|
|
SwitchJCRight,
|
|
SwitchJCPair
|
|
};
|
|
|
|
extern EInputDevice g_inputDevice;
|
|
extern EInputDevice g_inputDeviceController;
|
|
extern EInputDeviceExplicit g_inputDeviceExplicit;
|
|
|
|
extern uint16_t g_prohibitedButtons;
|
|
extern bool g_isLeftStickProhibited;
|
|
extern bool g_isRightStickProhibited;
|
|
|
|
void Init();
|
|
|
|
uint32_t GetState(uint32_t dwUserIndex, XAMINPUT_STATE* pState);
|
|
uint32_t SetState(uint32_t dwUserIndex, XAMINPUT_VIBRATION* pVibration);
|
|
uint32_t GetCapabilities(uint32_t dwUserIndex, XAMINPUT_CAPABILITIES* pCaps);
|
|
|
|
void SetProhibitedInputs(uint16_t wButtons = 0, bool leftStick = false, bool rightStick = false);
|
|
bool IsInputAllowed();
|
|
bool IsInputDeviceController();
|
|
}
|