<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/InputCommon/GCAdapter.cpp, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>GCAdapter: Deregister callback when scan thread exits</title>
<updated>2026-07-12T08:20:58+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-07-12T08:05:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=05855a37f4d6b9e98e41e7c50983faa167ae03ac'/>
<id>05855a37f4d6b9e98e41e7c50983faa167ae03ac</id>
<content type='text'>
We were registering the hotplug callback when starting the thread, but
deregistering it when shutting down GCAdapter as a whole. Because the
thread can start and stop potentially many times before GCAdapter shuts
down, this led to callbacks being registered when we already have
callbacks. On Android, this was making Dolphin's Kotlin code for
registering the callback throw an IllegalStateException.

To fix this, deregister the callback when stopping the thread.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We were registering the hotplug callback when starting the thread, but
deregistering it when shutting down GCAdapter as a whole. Because the
thread can start and stop potentially many times before GCAdapter shuts
down, this led to callbacks being registered when we already have
callbacks. On Android, this was making Dolphin's Kotlin code for
registering the callback throw an IllegalStateException.

To fix this, deregister the callback when stopping the thread.
</pre>
</div>
</content>
</entry>
<entry>
<title>GCAdapter: Fix data races</title>
<updated>2026-04-25T18:16:10+00:00</updated>
<author>
<name>Dentomologist</name>
<email>dentomologist@gmail.com</email>
</author>
<published>2026-04-25T18:16:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=ac78e52cf9d6f140362af961faf7ea33a08e0e5f'/>
<id>ac78e52cf9d6f140362af961faf7ea33a08e0e5f</id>
<content type='text'>
Make `s_is_adapter_wanted` and the elements of `s_config_rumble_enabled`
atomic.

The CPU thread reads `s_is_adapter_wanted` and `s_config_rumble_enabled`
in `Output`, while the host thread writes to them in `RefreshConfig`.

The simplest way to trigger this race is to close the `Settings` window
while playing a game with the adapter active.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Make `s_is_adapter_wanted` and the elements of `s_config_rumble_enabled`
atomic.

The CPU thread reads `s_is_adapter_wanted` and `s_config_rumble_enabled`
in `Output`, while the host thread writes to them in `RefreshConfig`.

The simplest way to trigger this race is to close the `Settings` window
while playing a game with the adapter active.
</pre>
</div>
</content>
</entry>
<entry>
<title>Merge pull request #14608 from JosJuice/gcadapter-auto-start</title>
<updated>2026-04-25T02:51:51+00:00</updated>
<author>
<name>Dentomologist</name>
<email>dentomologist@gmail.com</email>
</author>
<published>2026-04-25T02:51:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a94854309b36980f302a502303a50aa356688bd4'/>
<id>a94854309b36980f302a502303a50aa356688bd4</id>
<content type='text'>
GCAdapter: Automatically start and stop thread</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GCAdapter: Automatically start and stop thread</pre>
</div>
</content>
</entry>
<entry>
<title>GCAdapter: Automatically start and stop thread</title>
<updated>2026-04-18T17:40:25+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2026-04-18T14:56:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=cc01a603474b66053a2cf5a6104ff637ed144cfe'/>
<id>cc01a603474b66053a2cf5a6104ff637ed144cfe</id>
<content type='text'>
This keeps the logic encapsulated inside GCAdapter.cpp so callers don't
have to think about it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This keeps the logic encapsulated inside GCAdapter.cpp so callers don't
have to think about it.
</pre>
</div>
</content>
</entry>
<entry>
<title>Improve usage of std::move and const references parameters</title>
<updated>2026-04-17T10:39:46+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2026-04-06T09:37:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=95dec132030e72b74da6bc46966e4fe5e4e239c0'/>
<id>95dec132030e72b74da6bc46966e4fe5e4e239c0</id>
<content type='text'>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Accomplished using `run-clang-tidy` with `performance-move-const-arg,performance-unnecessary-value-param,modernize-pass-by-value`.

Changed arguments to const references, removed them where inappropriate (e.g. sink parameters). Same with std::move.

Manually reviewed each change to make sure that it makes sense, and do something more appropriate if possible.
</pre>
</div>
</content>
</entry>
<entry>
<title>Send neutral stick positions when disconnected rather than down-left</title>
<updated>2026-02-25T22:06:50+00:00</updated>
<author>
<name>Julien Bernard</name>
<email>artessbm@gmail.com</email>
</author>
<published>2026-02-25T21:50:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=0e8db4fa225ea6852e1683cdd870e6806b0440a9'/>
<id>0e8db4fa225ea6852e1683cdd870e6806b0440a9</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Gcc adapter fixes (hotplugging, claim retries, shutdown, bad yields)</title>
<updated>2026-02-25T21:55:48+00:00</updated>
<author>
<name>Julien Bernard</name>
<email>artessbm@gmail.com</email>
</author>
<published>2025-12-28T19:16:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=afc2920a5fb6eaed34b091508b73e3ae5e8c7257'/>
<id>afc2920a5fb6eaed34b091508b73e3ae5e8c7257</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove unused imports</title>
<updated>2026-01-25T15:12:15+00:00</updated>
<author>
<name>Martino Fontana</name>
<email>tinozzo123@gmail.com</email>
</author>
<published>2026-01-23T20:30:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=a14c88ba67a51b0a563a5fc800cd089e82ffacaf'/>
<id>a14c88ba67a51b0a563a5fc800cd089e82ffacaf</id>
<content type='text'>
Yellow squiggly lines begone!
Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes.
If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed.
The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports.
Not everything is removed, but the cleanup should be substantial enough.
Because this done on Linux, code that isn't used on it is mostly untouched.
(Hopefully no open PR is depending on these imports...)
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Yellow squiggly lines begone!
Done automatically on .cpp files through `run-clang-tidy`, with manual corrections to the mistakes.
If an import is directly used, but is technically unnecessary since it's recursively imported by something else, it is *not* removed.
The tool doesn't touch .h files, so I did some of them by hand while fixing errors due to old recursive imports.
Not everything is removed, but the cleanup should be substantial enough.
Because this done on Linux, code that isn't used on it is mostly untouched.
(Hopefully no open PR is depending on these imports...)
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix various typos and spelling mistakes</title>
<updated>2026-01-17T19:11:38+00:00</updated>
<author>
<name>Sintendo</name>
<email>3380580+Sintendo@users.noreply.github.com</email>
</author>
<published>2026-01-17T18:02:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=1e0473e44f5e21558d75b0121bd935bb50825c26'/>
<id>1e0473e44f5e21558d75b0121bd935bb50825c26</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>GCAdapter: Calculate poll rate for display in UI. It's currently updated every 50 reads.</title>
<updated>2025-11-23T08:06:39+00:00</updated>
<author>
<name>Jordan Woyak</name>
<email>jordan.woyak@gmail.com</email>
</author>
<published>2025-11-22T09:39:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=f9a5051bae25fd298aafb020224f2ced174d47fb'/>
<id>f9a5051bae25fd298aafb020224f2ced174d47fb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
