<feed xmlns='http://www.w3.org/2005/Atom'>
<title>Ryujinx/src/Ryujinx.Input/HLE, branch master</title>
<subtitle>A backup of the Ryujinx master git branch.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/'/>
<entry>
<title>Fix another NullReferenceException (#6826)</title>
<updated>2024-05-17T23:11:30+00:00</updated>
<author>
<name>TSRBerry</name>
<email>20988865+TSRBerry@users.noreply.github.com</email>
</author>
<published>2024-05-17T23:11:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=2f427deb672cfae9f5d607da77086b75720fe416'/>
<id>2f427deb672cfae9f5d607da77086b75720fe416</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Disable keyboard controller input while swkbd is open (foreground) (second attempt) (#6808)</title>
<updated>2024-05-17T19:58:03+00:00</updated>
<author>
<name>TSRBerry</name>
<email>20988865+TSRBerry@users.noreply.github.com</email>
</author>
<published>2024-05-17T19:58:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=8f51938e2b22ee438ce8f849cc9258026ec5da29'/>
<id>8f51938e2b22ee438ce8f849cc9258026ec5da29</id>
<content type='text'>
* Block input updates while swkbd is open in foreground mode

* Flush internal driver state before unblocking input updates

* Rename Flush to Clear and remove unnecessary attribute

* Clear the driver state only if the GamepadDriver isn't null</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Block input updates while swkbd is open in foreground mode

* Flush internal driver state before unblocking input updates

* Rename Flush to Clear and remove unnecessary attribute

* Clear the driver state only if the GamepadDriver isn't null</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "Disable keyboard controller input while swkbd is open (foreground) (#…" (#6805)</title>
<updated>2024-05-15T05:20:24+00:00</updated>
<author>
<name>gdkchan</name>
<email>gab.dark.100@gmail.com</email>
</author>
<published>2024-05-15T05:20:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=cdccf89e103694dcad3833d900b7858a49dae1ec'/>
<id>cdccf89e103694dcad3833d900b7858a49dae1ec</id>
<content type='text'>
This reverts commit a3dc295c5f867bddb56a38f3a848ceb61ff30d32.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit a3dc295c5f867bddb56a38f3a848ceb61ff30d32.</pre>
</div>
</content>
</entry>
<entry>
<title>Disable keyboard controller input while swkbd is open (foreground) (#6646)</title>
<updated>2024-05-14T15:14:39+00:00</updated>
<author>
<name>TSRBerry</name>
<email>20988865+TSRBerry@users.noreply.github.com</email>
</author>
<published>2024-05-14T15:14:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=a3dc295c5f867bddb56a38f3a848ceb61ff30d32'/>
<id>a3dc295c5f867bddb56a38f3a848ceb61ff30d32</id>
<content type='text'>
* Block input updates while swkbd is open in foreground mode

* Flush internal driver state before unblocking input updates

* Rename Flush to Clear and remove unnecessary attribute</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Block input updates while swkbd is open in foreground mode

* Flush internal driver state before unblocking input updates

* Rename Flush to Clear and remove unnecessary attribute</pre>
</div>
</content>
</entry>
<entry>
<title>Fix direct keyboard not working when using a Controller. (#6716)</title>
<updated>2024-04-28T17:02:29+00:00</updated>
<author>
<name>MaxLastBreath</name>
<email>136052075+MaxLastBreath@users.noreply.github.com</email>
</author>
<published>2024-04-28T17:02:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=5976a5161b850e4082d6f354a1be6b153547590a'/>
<id>5976a5161b850e4082d6f354a1be6b153547590a</id>
<content type='text'>
* Fix direct keyboard not working when connected with a controller

- Pass KeyboardDriver to NpadController.GetHLEKeyboardInput().
- Always fetch all keyboards if Direct Keyboard is turned on.
- Remove unnecessary return null.

* Get Keyboard Inputs outside of the controller loop.

- Moved GetHLEKeyboardInput outside of the controller loop.
- Made GetHLEKeyboardInput public static from public

* Removed extra newline

* Update src/Ryujinx.Input/HLE/NpadManager.cs

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;

* Update src/Ryujinx.Input/HLE/NpadController.cs

Co-authored-by: TSRBerry &lt;20988865+TSRBerry@users.noreply.github.com&gt;

---------

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;
Co-authored-by: TSRBerry &lt;20988865+TSRBerry@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Fix direct keyboard not working when connected with a controller

- Pass KeyboardDriver to NpadController.GetHLEKeyboardInput().
- Always fetch all keyboards if Direct Keyboard is turned on.
- Remove unnecessary return null.

* Get Keyboard Inputs outside of the controller loop.

- Moved GetHLEKeyboardInput outside of the controller loop.
- Made GetHLEKeyboardInput public static from public

* Removed extra newline

* Update src/Ryujinx.Input/HLE/NpadManager.cs

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;

* Update src/Ryujinx.Input/HLE/NpadController.cs

Co-authored-by: TSRBerry &lt;20988865+TSRBerry@users.noreply.github.com&gt;

---------

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;
Co-authored-by: TSRBerry &lt;20988865+TSRBerry@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Ava UI: Input Menu Refactor (#5826)</title>
<updated>2024-04-17T21:52:12+00:00</updated>
<author>
<name>Isaac Marovitz</name>
<email>42140194+IsaacMarovitz@users.noreply.github.com</email>
</author>
<published>2024-04-17T21:52:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=446f2854a5af18aef7151f95d64e0fe66a3498b8'/>
<id>446f2854a5af18aef7151f95d64e0fe66a3498b8</id>
<content type='text'>
* Refactor

* Apply suggestions from code review

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;

* Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;

* Update src/Ryujinx.Input/ButtonValueType.cs

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;

* Add empty line

* Requested renames

* Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;

* Make parent models private readonly

* Fix ControllerInputView

* Make line shorter

* Mac keys in locale

* Double line break

* Fix build

* Get rid of _isValid

* Fix potential race condition

* Rename HasAnyButtonPressed to IsAnyButtonPressed

* Use switches

* Simplify enumeration

---------

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;
Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;
Co-authored-by: TSR Berry &lt;20988865+TSRBerry@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Refactor

* Apply suggestions from code review

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;

* Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;

* Update src/Ryujinx.Input/ButtonValueType.cs

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;

* Add empty line

* Requested renames

* Update src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;

* Make parent models private readonly

* Fix ControllerInputView

* Make line shorter

* Mac keys in locale

* Double line break

* Fix build

* Get rid of _isValid

* Fix potential race condition

* Rename HasAnyButtonPressed to IsAnyButtonPressed

* Use switches

* Simplify enumeration

---------

Co-authored-by: Ac_K &lt;Acoustik666@gmail.com&gt;
Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;
Co-authored-by: TSR Berry &lt;20988865+TSRBerry@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Fix crash when changing controller config (#6654)</title>
<updated>2024-04-15T21:02:09+00:00</updated>
<author>
<name>Luke</name>
<email>44324377+Luke44565@users.noreply.github.com</email>
</author>
<published>2024-04-15T21:02:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=8884d1fd732c9ba788f0ab711e6a9f507d934ac8'/>
<id>8884d1fd732c9ba788f0ab711e6a9f507d934ac8</id>
<content type='text'>
* fix needsMotionInputUpdate conditions

* Fix formatting

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;

---------

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* fix needsMotionInputUpdate conditions

* Fix formatting

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;

---------

Co-authored-by: gdkchan &lt;gab.dark.100@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>Input: Improve controller identification (#6029)</title>
<updated>2024-01-22T20:02:44+00:00</updated>
<author>
<name>riperiperi</name>
<email>rhy3756547@hotmail.com</email>
</author>
<published>2024-01-22T20:02:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=90455a05e6d7fe4305c997f20f76d2411197a182'/>
<id>90455a05e6d7fe4305c997f20f76d2411197a182</id>
<content type='text'>
* Input: Improve controller identification

Controllers were identified before by a combination of their _global_ index in the list of controllers and their GUID. The problem is, disconnecting and reconnecting a controller can change its global index; the controller can appear at the end. This would give it another ID, and the controller would need to be reconfigured.

This happened to me a lot with a switch pro controller and a USB game controller, it was essentially random which appeared first. Now, it consistently detects them.

This PR changes the controller identification to be a combination of an index of controllers with the same GUID (generally 0), and its GUID. It also reworks managing the list of controllers to properly consider instance IDs.

This also changes the NpadManager to attempt to reuse old controllers when refreshing input configuration, which can prevent input from going dead for seconds whenever a controller connects or disconnects (and the switch pro controller just entirely dying).

Testing with different controller types, OS and Avalonia is welcome. Remember that the target is connecting a ton of controllers, and pulling/reconnecting them.

* Remove double empty line</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Input: Improve controller identification

Controllers were identified before by a combination of their _global_ index in the list of controllers and their GUID. The problem is, disconnecting and reconnecting a controller can change its global index; the controller can appear at the end. This would give it another ID, and the controller would need to be reconfigured.

This happened to me a lot with a switch pro controller and a USB game controller, it was essentially random which appeared first. Now, it consistently detects them.

This PR changes the controller identification to be a combination of an index of controllers with the same GUID (generally 0), and its GUID. It also reworks managing the list of controllers to properly consider instance IDs.

This also changes the NpadManager to attempt to reuse old controllers when refreshing input configuration, which can prevent input from going dead for seconds whenever a controller connects or disconnects (and the switch pro controller just entirely dying).

Testing with different controller types, OS and Avalonia is welcome. Remember that the target is connecting a ton of controllers, and pulling/reconnecting them.

* Remove double empty line</pre>
</div>
</content>
</entry>
<entry>
<title>editorconfig: Set default encoding to UTF-8 (#5793)</title>
<updated>2023-12-04T13:17:13+00:00</updated>
<author>
<name>TSRBerry</name>
<email>20988865+TSRBerry@users.noreply.github.com</email>
</author>
<published>2023-12-04T13:17:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=2989c163a891c4ac730e799e1457b1bfb2ecc028'/>
<id>2989c163a891c4ac730e799e1457b1bfb2ecc028</id>
<content type='text'>
* editorconfig: Add default charset

* Change file encoding from UTF-8-BOM to UTF-8</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* editorconfig: Add default charset

* Change file encoding from UTF-8-BOM to UTF-8</pre>
</div>
</content>
</entry>
<entry>
<title>[Ryujinx.Input] Address dotnet-format issues (#5384)</title>
<updated>2023-06-28T16:23:00+00:00</updated>
<author>
<name>TSRBerry</name>
<email>20988865+TSRBerry@users.noreply.github.com</email>
</author>
<published>2023-06-28T16:23:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.benis.co.uk/Ryujinx/commit/?id=46b7c905f5dbb8c7e527281e22d5d2fc36bc666f'/>
<id>46b7c905f5dbb8c7e527281e22d5d2fc36bc666f</id>
<content type='text'>
* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Address dotnet format CA1816 warnings

* Address or silence dotnet format CA1806 and a few CA1854 warnings

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

A few of them have been manually reverted and the corresponding warning was silenced

* Add comments to disabled warnings

* Simplify properties and array initialization, Use const when possible, Remove trailing commas

* Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas"

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* Remove redundant code, convert to auto-properties and fix naming rule violations

* Remove bogus change

* Address review feedback</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* dotnet format style --severity info

Some changes were manually reverted.

* dotnet format analyzers --serverity info

Some changes have been minimally adapted.

* Restore a few unused methods and variables

* Address dotnet format CA1816 warnings

* Address or silence dotnet format CA1806 and a few CA1854 warnings

* Address most dotnet format whitespace warnings

* Apply dotnet format whitespace formatting

A few of them have been manually reverted and the corresponding warning was silenced

* Add comments to disabled warnings

* Simplify properties and array initialization, Use const when possible, Remove trailing commas

* Revert "Simplify properties and array initialization, Use const when possible, Remove trailing commas"

This reverts commit 9462e4136c0a2100dc28b20cf9542e06790aa67e.

* dotnet format whitespace after rebase

* Remove redundant code, convert to auto-properties and fix naming rule violations

* Remove bogus change

* Address review feedback</pre>
</div>
</content>
</entry>
</feed>
