<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/InputCommon/ControllerEmu/ControllerEmu.cpp, branch 2603</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>Prevent profiles with no device specification from resetting device</title>
<updated>2025-09-25T01:38:02+00:00</updated>
<author>
<name>Sam Belliveau</name>
<email>sam.belliveau@gmail.com</email>
</author>
<published>2025-09-25T01:38:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=52071f39432e9ecdbc6be9ab1bb36b0008456495'/>
<id>52071f39432e9ecdbc6be9ab1bb36b0008456495</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: Break out functionality of EmulatedController</title>
<updated>2025-03-15T19:30:43+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-01-21T05:19:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ddb82a5e8ca84df1b95942c8b3a1fa6c9071010b'/>
<id>ddb82a5e8ca84df1b95942c8b3a1fa6c9071010b</id>
<content type='text'>
to eliminate redundant unused members in Wii Remote extension objects.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
to eliminate redundant unused members in Wii Remote extension objects.
</pre>
</div>
</content>
</entry>
<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>
</feed>
