<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dolphin/Source/Core/UICommon/USBUtils.cpp, branch master</title>
<subtitle>GameCube and Wii emulator</subtitle>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/'/>
<entry>
<title>USBUtils: Refactor USB device handling</title>
<updated>2025-07-23T01:26:25+00:00</updated>
<author>
<name>Joshua Vandaële</name>
<email>joshua@vandaele.software</email>
</author>
<published>2025-07-12T12:03:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=4ae195ee60b1167757b4c1e8ef6771e0aa23a96e'/>
<id>4ae195ee60b1167757b4c1e8ef6771e0aa23a96e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>IOS: Disguise Rock Band PlayStation USB devices as Wii equivalents</title>
<updated>2025-03-31T19:24:25+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2025-03-30T09:24:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=01a7732d5065eaeba66ece0aec096ad18e3892b3'/>
<id>01a7732d5065eaeba66ece0aec096ad18e3892b3</id>
<content type='text'>
This lets you use PS3 Rock Band controllers with Wii Rock Band and
Guitar Hero games.

A normal user will probably never have any reason to disable this
behavior, but I figured maybe there's some person out there who would
like to disable it. (For instance, I know there's a mod for RB3 that's
trying to implement the same kind of cross-console controller
compatibility, and that can only be tested if the behavior I'm adding is
disabled.) So the behavior is controlled by an INI-only setting.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This lets you use PS3 Rock Band controllers with Wii Rock Band and
Guitar Hero games.

A normal user will probably never have any reason to disable this
behavior, but I figured maybe there's some person out there who would
like to disable it. (For instance, I know there's a mod for RB3 that's
trying to implement the same kind of cross-console controller
compatibility, and that can only be tested if the behavior I'm adding is
disabled.) So the behavior is controlled by an INI-only setting.
</pre>
</div>
</content>
</entry>
<entry>
<title>Log warnings when LibusbUtils::GetDeviceList fails</title>
<updated>2022-06-08T22:29:11+00:00</updated>
<author>
<name>Pokechu22</name>
<email>Pokechu022@gmail.com</email>
</author>
<published>2022-06-08T19:17:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=15cbb5c8f9ec1e64a137f93b032e8b5dc629817f'/>
<id>15cbb5c8f9ec1e64a137f93b032e8b5dc629817f</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>USBUtils: Fix 1bad:3110/1bad:3430 mixup</title>
<updated>2022-01-06T08:46:05+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2022-01-06T08:46:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=589c26735561741a6a520a1807611b870a586229'/>
<id>589c26735561741a6a520a1807611b870a586229</id>
<content type='text'>
The wiki and the source code had these mismatched, and a user reported
that 1bad:3430 is the Mustang guitar, so the wiki must be right.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The wiki and the source code had these mismatched, and a user reported
that 1bad:3430 is the Mustang guitar, so the wiki must be right.
</pre>
</div>
</content>
</entry>
<entry>
<title>USBUtils: Add "Harmonix RB3 Keyboard for Nintendo Wii"</title>
<updated>2022-01-06T08:42:19+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2022-01-06T08:42:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=0de8ccc25fbd63e7f3f30f1fd67b9b7382c9fe58'/>
<id>0de8ccc25fbd63e7f3f30f1fd67b9b7382c9fe58</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</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>Add Rock Band 3 MIDI PRO Adapter to known Wii peripherals</title>
<updated>2020-11-24T13:25:19+00:00</updated>
<author>
<name>JosJuice</name>
<email>josjuice@gmail.com</email>
</author>
<published>2020-11-24T13:25:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=d01f85cfd847af496a1a95df79a4007f0a378845'/>
<id>d01f85cfd847af496a1a95df79a4007f0a378845</id>
<content type='text'>
Based on info from https://forums.dolphin-emu.org/Thread-emulate-midi-pro-adapter
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Based on info from https://forums.dolphin-emu.org/Thread-emulate-midi-pro-adapter
</pre>
</div>
</content>
</entry>
<entry>
<title>UICommon: Make use of fmt where applicable</title>
<updated>2019-11-24T00:41:40+00:00</updated>
<author>
<name>Lioncash</name>
<email>mathew1800@gmail.com</email>
</author>
<published>2019-11-24T00:15:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=b28db1d4e69c0a1011375f308198fde8e2f67d13'/>
<id>b28db1d4e69c0a1011375f308198fde8e2f67d13</id>
<content type='text'>
Continues the migration to using fmt.

Notably, this allows safely converting a map within USBUtils over to
containing string view instances, rather than std::string instances, as
fmt safely handles the formatting of string views.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Continues the migration to using fmt.

Notably, this allows safely converting a map within USBUtils over to
containing string view instances, rather than std::string instances, as
fmt safely handles the formatting of string views.
</pre>
</div>
</content>
</entry>
<entry>
<title>Use separate libusb contexts to avoid thread safety issues</title>
<updated>2019-06-26T15:55:51+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@leolam.fr</email>
</author>
<published>2019-06-25T15:31:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=cf60a9a7f77f78d4cd9de08cdbe93e0236794a5b'/>
<id>cf60a9a7f77f78d4cd9de08cdbe93e0236794a5b</id>
<content type='text'>
Unfortunately, it appears that using libusb's synchronous transfer API
from several threads causes nasty race conditions in event handling and
can lead to deadlocks, despite the fact that libusb's synchronous API
is documented to be perfectly fine to use from several threads (only
the manual polling functionality is supposed to require special
precautions).

Since usbdk was the only real reason for using a single libusb context
and since usbdk (currently) has so many issues with Dolphin, I think
dropping support for it in order to fix other backends is acceptable.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Unfortunately, it appears that using libusb's synchronous transfer API
from several threads causes nasty race conditions in event handling and
can lead to deadlocks, despite the fact that libusb's synchronous API
is documented to be perfectly fine to use from several threads (only
the manual polling functionality is supposed to require special
precautions).

Since usbdk was the only real reason for using a single libusb context
and since usbdk (currently) has so many issues with Dolphin, I think
dropping support for it in order to fix other backends is acceptable.
</pre>
</div>
</content>
</entry>
<entry>
<title>Move libusb utilities to LibusbUtils</title>
<updated>2019-05-27T18:09:55+00:00</updated>
<author>
<name>Léo Lam</name>
<email>leo@innovatetechnologi.es</email>
</author>
<published>2019-05-12T18:19:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.dog6.net/dolphin/commit/?id=256c9375c96b4c6ad68b2c50ab714aa66951f41b'/>
<id>256c9375c96b4c6ad68b2c50ab714aa66951f41b</id>
<content type='text'>
* Simplifies libusb context usage and allows us to set options for
all contexts easily. Notably, this lets us enable usbdk support
in libusb, which is now opt-in in the latest version.

* Moves the libusb config descriptor wrapper class to LibusbUtils too
since that could easily be reused.

* Moves device listing to LibusbUtils too and add a lock around it
as some libusb backends are not thread safe.

* Consequences: only a single context and a single event handling
thread is used now, which is more efficient.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
* Simplifies libusb context usage and allows us to set options for
all contexts easily. Notably, this lets us enable usbdk support
in libusb, which is now opt-in in the latest version.

* Moves the libusb config descriptor wrapper class to LibusbUtils too
since that could easily be reused.

* Moves device listing to LibusbUtils too and add a lock around it
as some libusb backends are not thread safe.

* Consequences: only a single context and a single event handling
thread is used now, which is more efficient.
</pre>
</div>
</content>
</entry>
</feed>
