Commit Graph

27 Commits

Author SHA1 Message Date
nyanpasu64
b5a7ae52b5 Fix locking the wrong mutex in GCAdapter_Android.cpp ResetRumble()
I am not confident there are no race conditions between s_write_mutex,
s_controller_write_payload_size, and s_controller_write_payload. But
this code should be safer than before.
2022-03-27 22:39:26 -07:00
nyanpasu64
7616027684 Remove unnecessary atomic usage in GCAdapter_Android.cpp
s_controller_write_payload_size needs to remain an atomic because Read()
loads and stores without holding a mutex, Output() stores while holding
s_write_mutex, and ResetRumble() stores while holding s_read_mutex! I'm
pretty sure this code is wrong, specifically ResetRumble().
2022-03-27 22:39:26 -07:00
Admiral H. Curtiss
5c325eef38
Config: Port SI device settings to new config system. 2022-01-08 20:08:21 +01:00
Pokechu22
2025763420 Treewide: Adjust order of includes 2021-12-10 14:49:57 -08:00
Pierre Bourdon
e149ad4f0a
treewide: convert GPLv2+ license info to SPDX tags
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.
2021-07-05 04:35:56 +02:00
Filoppi
81092cf7e4 InputCommon: replace SerialInterface log with ControllerInterface
where appropriate. SerialInterface was a leftover from the past,
and makes no sense to be used on actual/real controllers.
2021-05-05 00:16:08 +03:00
Lioncash
a5e1415e74 InputCommon: Migrate logging over to fmt
Continues the migration of the logging calls over to the fmt capable
ones.
2020-10-23 13:16:18 -04:00
Ryan Meredith
acd717ffae GCAdapter_Android: Minor cleanup 2020-08-26 16:40:22 -04:00
Connor McLaughlin
bed2d66bed
Merge pull request #8117 from weihuoya/threaded_env
android: get java env from thread local storage
2019-06-08 20:42:15 +10:00
Lioncash
c0c0e412e0 Core/ConfigManager: Use forward declarations where applicable
Avoids dragging in IniFile, EXI device and SI device headers in this header which is
quite widely used throughout the codebase.

This also uncovered a few cases where indirect inclusions were being
relied upon, which this also fixes.
2019-06-07 19:54:39 -04:00
Vincent Duvert
2c3c8bbb90 GCAdapter: Update Android-specific source
Fix the Android version of GCAdapter.cpp so it matches the new definitions in GCAdapter.h.
2019-05-29 18:28:24 +02:00
weihuoya
0dec8feadb android: thread local env 2019-05-29 20:22:26 +08:00
Jordan Woyak
a015851b02 HW/SI: GCAdapter calibration fix. 2019-03-29 06:15:58 -05:00
JosJuice
1c027bc148 Use UICommon's game list code on Android
Deduplicates code, and gets rid of some problems the old code had
(such as: bad performance when calling native functions, only one
disc showing up for multi-disc games, Wii banners being low-res,
unnecessarily much effort being needed for adding more metadata).
2018-06-06 17:34:07 +02:00
Michael M
22a9a08b24 Add Core::State::Starting 2017-09-13 17:30:18 -07:00
Lioncash
f0eeb3c63a SI: Namespace device classes
Places all of the SI code under the SerialInterface namespace instead of
only the main source file. This keeps all SI code under a common name,
as well as out of the global namespace
2017-03-16 04:41:39 -04:00
Lioncash
a728d858b3 SI: Move MAX_SI_CHANNELS into the SerialInterface namespace
Given this constant is related to the serial interface, it shouldn't be
outside of the namespace.
2017-03-16 01:57:57 -04:00
Lioncash
b914edd441 GCAdapter_Android: Fix an array bounds overrun in Read()
s_controller_payload is 37 bytes long, but Read() would copy 0x37 (a.k.a
55) bytes, overrunning the array.
2017-03-06 23:05:17 -05:00
Lioncash
e07383a783 Core: Convert State enum into an enum class 2017-02-05 08:32:23 -05:00
Lioncash
794d0a9d7c Core: Move SI source files to their own directory 2017-01-20 19:33:24 -05:00
Lioncash
041f4f5eea GCAdapter: Return input state by value 2016-08-01 21:27:51 -04:00
Pierre Bourdon
3570c7f03a Reformat all the things. Have fun with merge conflicts. 2016-06-24 10:43:46 +02:00
mathieui
1bbbe92cd2 GCAdapter: protect some more functions
Reset() and Setup() are not used outside of this namespace
2016-05-19 22:00:49 +02:00
Ryan Houdek
6cc40b1235 Improve stability of the Wii U Gamecube Controller adapter under Android.
Under failure conditions of the GC Adapter, When interface count is zero and we can't open the device.
Then there were race conditions on shutdown of the threads which could result in crashing.

Make adapter opening more robust like the Mayflash DolphinBar.
Make shutdown more robust by making the read thread control the write thread.
Make sure that there is actual data to be written when kicking the write thread. So it doesn't attempt a write a shutdown.
Make a toast on screen to tell the user that the adapter needs to be unplugged and plugged back in again for it to work.
2016-02-13 08:17:20 -06:00
Ryan Houdek
b846ec084e Implement requesting permission for using the GC Wii U Adapter. 2016-01-27 15:08:45 -06:00
Ryan Houdek
a62a9b8161 Fix a bug in GCAdapter_Android where the payload size would end up being crazy values on the opposite thread 2016-01-23 11:40:33 -06:00
Ryan Houdek
e62503c873 [Android] Add support for the Wii U Gamecube adapter under Android.
No way to properly enable it from an end user perspective yet.
Doesn't require root.
This same sort of system can be used for the Dolphinbar in the future for real wiimote support.
2016-01-06 01:10:54 -06:00