Improve multi-controller support in HID and Controller Applet (#1453)

* Initial commit

Enable proper LED patterns
Toggle Hotkeys only on focus
Ignore Handheld on Docked mode
Remove PrimaryController
Validate NpadIdType
Rewrite NpadDevices to process config in update loop
Cleanup

* Notify in log periodically when no matched controllers

* Remove duplicate StructArrayHelpers in favor of Common.Memory

Fix struct padding CS0169 warns in Touchscreen

* Remove GTK markup from Controller Applet

Use IList instead of List
Explicit list capacity in 1ms loop
Fix formatting

* Restrict ControllerWindow to show valid controller types

Add selected player name to ControllerWindow title

* ControllerWindow: Fix controller type initial value

NpadDevices: Simplify default battery charge

* Address AcK's comments

Use explicit types and fix formatting

* Remove HashSet for SupportedPlayers

Fixes potential exceptions due to race

* Fix ControllerSupportArg struct packing

Also comes with two revisions of struct for 4/8 players max.
This commit is contained in:
mageven 2020-08-24 02:24:11 +05:30 committed by GitHub
parent 01ff648bdf
commit 27179d0218
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
29 changed files with 445 additions and 242 deletions

View file

@ -1,13 +0,0 @@
namespace Ryujinx.HLE.HOS.Applets
{
#pragma warning disable CS0649
// (8.0.0+ version)
unsafe struct ControllerSupportArg
{
public ControllerSupportArgHeader Header;
public fixed uint IdentificationColor[8];
public byte EnableExplainText;
public fixed byte ExplainText[8 * 0x81];
}
#pragma warning restore CS0649
}