<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp, branch 2503a</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Common/IniFile: Move interface into Common namespace</title>
<updated>2023-04-13T14:19:28+00:00</updated>
<author>
<name>Lioncash</name>
<email>mai.iam2048@gmail.com</email>
</author>
<published>2023-04-13T13:38:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e4caace6bb6213851b979cdd76f9f44ef6d9cd09'/>
<id>e4caace6bb6213851b979cdd76f9f44ef6d9cd09</id>
<content type='text'>
Gets this out of the global namespace and into the Common namespace
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Gets this out of the global namespace and into the Common namespace
</pre>
</div>
</content>
</entry>
<entry>
<title>ControllerEmu: Add new "input override" system</title>
<updated>2022-10-03T20:00:21+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2021-03-21T19:27:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=cb16d20f2d4ed1ebf150b6ba4d64fe469c1263f1'/>
<id>cb16d20f2d4ed1ebf150b6ba4d64fe469c1263f1</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: Fix deadlock in EmulatedController::UpdateReferences().</title>
<updated>2022-09-07T20:37:24+00:00</updated>
<author>
<name>Admiral H. Curtiss</name>
<email>pikachu025@gmail.com</email>
</author>
<published>2022-09-07T20:37:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b8ca1b2907230f2e1285bfdb9c5e3b373d49cf56'/>
<id>b8ca1b2907230f2e1285bfdb9c5e3b373d49cf56</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon/ControllerEmu: Use more locks</title>
<updated>2022-06-01T01:17:37+00:00</updated>
<author>
<name>TellowKrinkle</name>
<email>tellowkrinkle@gmail.com</email>
</author>
<published>2022-06-01T01:17:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f9c6eb7b9856239e8b62023de570187d304836de'/>
<id>f9c6eb7b9856239e8b62023de570187d304836de</id>
<content type='text'>
Loading configs while another thread is messing with stuff just doesn't feel like a good idea
Hopefully fixes Wiimote Scanning Thread crashes on startup
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Loading configs while another thread is messing with stuff just doesn't feel like a good idea
Hopefully fixes Wiimote Scanning Thread crashes on startup
</pre>
</div>
</content>
</entry>
<entry>
<title>ControllerInterface: fix UpdateReferences() deadlock</title>
<updated>2021-11-20T14:54:36+00:00</updated>
<author>
<name>Filoppi</name>
<email>filippotarpini@hotmail.it</email>
</author>
<published>2021-11-17T20:55:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1badceb455dae28a93a51da6c5cda0b510f93701'/>
<id>1badceb455dae28a93a51da6c5cda0b510f93701</id>
<content type='text'>
Removed useless locks to DeviceContainer::m_devices_mutex, as they were all already protected by m_devices_population_mutex.
We have no interest in blocking other threads that were potentially reading devices at the same time so this seems fine.
This simplifies the code, and I've adjusted a few comments which mentioned possible deadlock that should now be totally gone.

The deadlock could have happen if a thread directly called EmulatedController::UpdateReferences(), while another another thread also reached EmulatedController::UpdateReferences() within a call to ControllerInterface::UpdateDevices(), as the mentioned function locked both the DeviceContainer::m_devices_mutex and s_get_state_mutex at the same time.

The deadlock was frequent on game emulation startup on Android, due to the UpdateReferences() call in InputConfig::LoadConfig() and the UI thread triggering calls to ControllerInterface::UpdateDevices().
It could also have happened on Desktop if a user pressed "Refresh Devices" manually in the UI while the input config was loading.

Also brought some UpdateReferences() comments and thread safety fixes from https://github.com/dolphin-emu/dolphin/pull/9489
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Removed useless locks to DeviceContainer::m_devices_mutex, as they were all already protected by m_devices_population_mutex.
We have no interest in blocking other threads that were potentially reading devices at the same time so this seems fine.
This simplifies the code, and I've adjusted a few comments which mentioned possible deadlock that should now be totally gone.

The deadlock could have happen if a thread directly called EmulatedController::UpdateReferences(), while another another thread also reached EmulatedController::UpdateReferences() within a call to ControllerInterface::UpdateDevices(), as the mentioned function locked both the DeviceContainer::m_devices_mutex and s_get_state_mutex at the same time.

The deadlock was frequent on game emulation startup on Android, due to the UpdateReferences() call in InputConfig::LoadConfig() and the UI thread triggering calls to ControllerInterface::UpdateDevices().
It could also have happened on Desktop if a user pressed "Refresh Devices" manually in the UI while the input config was loading.

Also brought some UpdateReferences() comments and thread safety fixes from https://github.com/dolphin-emu/dolphin/pull/9489
</pre>
</div>
</content>
</entry>
<entry>
<title>treewide: convert GPLv2+ license info to SPDX tags</title>
<updated>2021-07-05T02:35:56+00:00</updated>
<author>
<name>Pierre Bourdon</name>
<email>delroth@gmail.com</email>
</author>
<published>2021-07-05T01:22:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=e149ad4f0a9874f354221a7fc76d8f1841e47808'/>
<id>e149ad4f0a9874f354221a7fc76d8f1841e47808</id>
<content type='text'>
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
SPDX standardizes how source code conveys its copyright and licensing
information. See https://spdx.github.io/spdx-spec/1-rationale/ . SPDX
tags are adopted in many large projects, including things like the Linux
kernel.
</pre>
</div>
</content>
</entry>
<entry>
<title>Expose Control Expression variables to mappings UI</title>
<updated>2021-05-23T23:38:06+00:00</updated>
<author>
<name>Filoppi</name>
<email>filippotarpini@hotmail.it</email>
</author>
<published>2021-03-11T22:01:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=93e3e691f9a3a9913b56ebe71b4bd34fd21ce5c9'/>
<id>93e3e691f9a3a9913b56ebe71b4bd34fd21ce5c9</id>
<content type='text'>
-add a way to reset their value (from the mappings UI)
-fix "memory leak" where they would never be cleaned,
one would be created every time you wrote a character after a "$"
-fix ability to create variables with an empty string by just writing "$" (+added error for it)
-Add $ operator to the UI operators list, to expose this functionality even more
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
-add a way to reset their value (from the mappings UI)
-fix "memory leak" where they would never be cleaned,
one would be created every time you wrote a character after a "$"
-fix ability to create variables with an empty string by just writing "$" (+added error for it)
-Add $ operator to the UI operators list, to expose this functionality even more
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: reduce number of image loads and texture cache invalidations by only running dynamic input textures once for all controllers</title>
<updated>2021-02-27T23:29:48+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2021-02-27T22:41:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=32d584a0f5f58ff80ab9ad95ff3d1b10e30d108f'/>
<id>32d584a0f5f58ff80ab9ad95ff3d1b10e30d108f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: Introducing the "Dynamic Input Texture".  Configuration links an emulated input action to an image based on what host key is defined for that emulated input.  Specific regions are called out in configuration that mark where to replace an input button with a host key image.</title>
<updated>2020-10-03T22:10:35+00:00</updated>
<author>
<name>iwubcode</name>
<email>iwubcode@users.noreply.github.com</email>
</author>
<published>2019-08-17T19:40:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=fd3af4c5d32a34b27c45b478c74fa1127b6438b9'/>
<id>fd3af4c5d32a34b27c45b478c74fa1127b6438b9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>InputCommon: Allow Wii remote extension to be set with an input expression.</title>
<updated>2020-02-08T22:03:13+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2020-01-18T17:19:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=0a1634bedf17f7b27a3781d8e5ac6bafb20cd546'/>
<id>0a1634bedf17f7b27a3781d8e5ac6bafb20cd546</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
