mitaclaw
ebf7cebc32
Modernize `std::sort` with ranges
2024-10-10 00:53:48 -07:00
mitaclaw
9bd1dae41d
Modernize `std::fill` with ranges
...
In DSPCore.cpp, there were two `std::fill` uses that could be simplified using `std::fill_n`. Due to their proximity with other `std::fill` algorithms being modernized with ranges, I chose to make these examples into the rare `std::ranges::fill_n`.
2024-10-10 00:53:48 -07:00
mitaclaw
249defa72b
Modernize `std::equal` with ranges
2024-10-10 00:53:48 -07:00
mitaclaw
4cc5e1972a
Modernize `std::count_if` with ranges
2024-10-10 00:53:48 -07:00
mitaclaw
e6f93efac4
Simplify `std::transform` with `std::ranges::transform_view`
2024-10-09 17:26:10 -07:00
mitaclaw
809766a439
Simplify `std::fill` with `std::array::fill`
2024-10-09 17:26:10 -07:00
mitaclaw
5f90673686
StringUtil: Remove `JoinStrings`
...
With 12 uses of `JoinStrings` in the codebase vs 36 uses of `fmt::join`, fmtlib's range adapter for string concatenation with delimiters is clearly the preferred option.
2024-09-22 21:09:36 -07:00
Dr. Dystopia
9602f36248
Remove redundant semicolons
2024-08-20 14:59:54 +02:00
mitaclaw
de1c47a701
Misc. Container Find Changes
2024-08-15 14:25:51 -07:00
mitaclaw
9fa4eb9aab
Use 'contains' method
2024-08-15 14:20:16 -07:00
Dr. Dystopia
618b41a459
Use 'contains' method
2024-08-14 22:18:28 +02:00
Tilka
603c8fad85
Merge pull request #12961 from JosJuice/expression-parser-translation
...
InputCommon: Translate ExpressionParser error messages
2024-08-07 03:28:48 +01:00
JosJuice
defc38b258
InputCommon: Translate ExpressionParser error messages
...
The _trans macro marks strings for translation but doesn't do anything
at runtime. For that, we need to use a function like GetStringT.
2024-07-28 12:09:15 +02:00
Dentomologist
d627b78c46
Adjust order and spacing of various #includes
...
Move some #includes around to match the Contributing guidelines.
2024-07-26 14:28:34 -07:00
Tillmann Karras
982893b04c
Use C++20 erase_if() instead of erase(remove_if()) (NFC)
2024-07-21 16:36:06 +01:00
Admiral H. Curtiss
ed4a09fa56
Merge pull request #12850 from jordan-woyak/device-sorting
...
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
2024-06-15 21:12:08 +02:00
Jordan Woyak
42e73547eb
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
2024-06-15 12:41:25 -05:00
Admiral H. Curtiss
a95c3dbc97
Merge pull request #12818 from iwubcode/json_file_operations
...
Common: add Json helper utilities for loading or saving to a file
2024-06-15 16:43:38 +02:00
iwubcode
50b95bbea9
InputCommon / VideoCommon: update to use new JsonFromFile function
2024-05-31 23:13:25 -05:00
Dentomologist
c3bdd05d2a
TAS Input: Enable hotkeys and controller input when Input has focus
...
Enable emulator hotkeys and controller input (when that option is
enabled) when a TAS Input window has focus, as if it was the render
window instead. This allows TASers to use frame advance and the like
without having to switch the focused window or disabling Hotkeys Require
Window Focus which also picks up keypresses while other apps are active.
Cursor updates are disabled when the TAS Input window has focus, as
otherwise the Wii IR widget (and anything else controlled by the mouse)
becomes unusable. The cursor continues to work normally when the render
window has focus.
2024-05-31 15:14:44 -07:00
Admiral H. Curtiss
321dc9b76d
Merge pull request #12711 from jordan-woyak/modifier-range-ini-default
...
InputCommon: Fix unnecessary "Modifier/Range" ini file entries.
2024-05-21 22:11:42 +02:00
Guilherme Janczak
50dc0ffbce
port to OpenBSD
2024-04-22 20:50:47 +00:00
Jordan Woyak
47b06d274e
InputCommon: Fix unnecessary "Modifier/Range" ini file entries.
2024-04-15 18:32:31 -05:00
Jordan Woyak
31dc3477ad
DolphinQt/Mapping: Disable relative input when "Mouse Controlled Pointing" button is pressed.
2024-04-15 14:52:26 -05:00
JosJuice
5456d990d1
Android/ControllerInterface: Run the init code
...
This was broken by a9a9fdd9e9
. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
2024-04-13 22:39:10 +02:00
Tilka
e62d8ecfa8
Merge pull request #12632 from jordan-woyak/input-backend-impls
...
Implement missing InputBackend classes.
2024-04-13 11:56:27 +01:00
Jordan Woyak
e9fe0d3d5b
NumericSetting: Stop values from binding to numbered input names.
2024-04-12 15:54:18 -05:00
Jordan Woyak
5039072ae9
ExpressionParser: Support unary plus operator.
2024-04-12 15:52:35 -05:00
mitaclaw
eb92d6f0a8
Core::GetState: Avoid Global System Accessor
2024-04-08 16:23:23 -07:00
Tillmann Karras
d1db347c8a
evdev: close file descriptors in a separate thread
...
For some reason Linux is surprisingly slow at closing file descriptors
of event devices. This commit improves GUI startup times on my computer
by about 1.5 seconds.
2024-04-06 20:58:17 +01:00
OatmealDome
4421cc471d
Merge pull request #12631 from jordan-woyak/remove-osx-input-leftovers
...
InputCommon: Remove some IOKit leftovers.
2024-04-01 17:05:13 -04:00
Admiral H. Curtiss
6e5f8d6692
Merge pull request #12640 from jordan-woyak/sdl-cleanup
...
SDL: Cleanups
2024-03-31 06:33:50 +02:00
Jordan Woyak
719d76ab2e
GCAdapter: Adjust libusb transfer timeout to 100ms.
2024-03-20 18:02:06 -05:00
Jordan Woyak
3a85725ffa
SDL: Remove duplicate button/hat Inputs. Hide duplicate Axis Inputs.
2024-03-14 23:50:17 -05:00
Jordan Woyak
ee43c9508c
ControllerInterface: Add IsHidden function to Control interface.
2024-03-14 23:43:58 -05:00
Jordan Woyak
0538366326
SDL: Deduplicate Motor logic with templates.
2024-03-14 23:43:58 -05:00
Jordan Woyak
0fff8374d0
SDL: Move class definition out of header.
2024-03-14 23:43:58 -05:00
Admiral H. Curtiss
617fcc3cf8
WiimoteEmu: Add user-accessible controls that report the desired state of the IR camera objects.
2024-03-11 22:49:19 +01:00
Admiral H. Curtiss
c3903fcc7e
InputCommon/WiimoteController: Add inputs that report the raw IR objects seen by the Wiimote.
2024-03-11 22:46:05 +01:00
Jordan Woyak
a9a9fdd9e9
InputCommon: Add Android InputBackend class.
2024-03-11 03:25:31 -05:00
Jordan Woyak
8583b6751a
InputCommon: Handle window change in Quartz.
2024-03-11 03:25:31 -05:00
Jordan Woyak
3665f7abac
InputCommon: Implement xlib window change logic.
2024-03-11 03:25:31 -05:00
Jordan Woyak
341f99a3f1
InputCommon: Add Win32 InputBackend class.
2024-03-11 03:25:31 -05:00
Jordan Woyak
2ac59bf581
InputCommon: Add Pipes InputBackend class.
2024-03-11 03:05:52 -05:00
Jordan Woyak
8098be3dfa
InputCommon: Add XInput2 InputBackend class.
2024-03-11 03:05:52 -05:00
Jordan Woyak
498584ac77
InputCommon: Add Quartz InputBackend class.
2024-03-11 03:05:52 -05:00
Jordan Woyak
9941c54911
InputCommon: Provide WindowSystemInfo getter for ControllerInterface.
2024-03-11 01:31:05 -05:00
Jordan Woyak
b23dbad098
InputCommon: Remove some IOKit leftovers.
2024-03-11 01:11:13 -05:00
JosJuice
1315b54ffa
InputCommon: Use distinct values for profile key
...
Because the last commit made us use separate folders for GCPad and
GCKey profiles, we should also use separate game INI keys for them.
Otherwise setting e.g. PadProfile1 in a game INI will make both GCPad
and GCKey try to load it, typically with one of them succeeding and the
other one showing a panic alert due to the profile not existing in its
folder.
Better do this breaking change for GCKeys in the same PR as the other
breaking change rather than later.
2024-02-04 17:55:08 +01:00
JosJuice
6cf55ab1ee
InputCommon: Unify GetProfileName and GetProfileDirectoryName
...
After reading the previous commit, you might think "hold on, what's the
difference between GetProfileName and GetProfileDirectoryName"? These
two are being used for the exact same thing - figuring out where
profiles are stored - yet they return different values for certain
controllers like GC keyboards! As far as I can tell, the existing code
has been broken for GC keyboards since they were introduced a decade
ago. The GUI (and more recently, also InputCycler) would write and read
profiles in one location, and our code for loading profiles specified in
a game INI file would read profiles in another location.
This commit gets rid of the set of values used by the game INI code in
favor of the other set. This does breaking existing setups where a
GCKey profile has been configured in a game INI, but I think the number
of working such setups is vanishingly small. The alternative would make
existing GCKey profiles go missing from the profile dropdown in the GUI,
which I think would be more disruptive. The alternative would also force
new GCKey profiles into the same directory as GCPad profiles.
This commit also fixes a regression from d6c0f8e749
. The Android GUI was
using GetProfileName to figure out what key to use in the game INI,
which made it use incorrect game INI entries for GameCube controller
profiles but not Wii Remote profiles. Now the Android GUI uses
GetProfileKey for this, fixing the problem.
2024-02-04 17:55:08 +01:00
JosJuice
2bcf70af3f
InputCommon: Refactor away InputConfig::LoadConfig's switch case
...
By having getters for this information, other code that needs access to
the same information can call the getters instead of duplicating the
information.
2024-02-04 16:46:10 +01:00
Admiral H. Curtiss
83d4b692b8
InputCommon/WGInput: Handle add/remove events on separate thread to prevent deadlocks.
...
In particular this is triggered when running Dolphin with the Steam overlay.
2024-01-18 00:30:45 +01:00
Admiral H. Curtiss
c7d7ae4912
InputCommon/SDL: Code style fixes.
2024-01-15 15:19:41 +01:00
Admiral H. Curtiss
5e6e61c723
InputCommon/SDL: Avoid potential infinite loops from integer truncation.
2024-01-15 15:19:24 +01:00
Admiral H. Curtiss
d657ad5932
InputCommon/SDL: Check for errors from SDL_JoystickNumButtons(), SDL_JoystickNumAxes(), SDL_JoystickNumHats().
2024-01-15 15:18:38 +01:00
Admiral H. Curtiss
959c39133b
InputCommon/SDL: Fix incorrect use of std::vector::assign() and check bounds.
2024-01-15 15:17:32 +01:00
Admiral H. Curtiss
1cca3b24c6
Merge pull request #12085 from SuperSamus/sdl-gamecontroller
...
SDL: Add GameController API, cleanup
2024-01-13 16:37:43 +01:00
Martino Fontana
51e05f468a
SDL: Add GameController API, cleanup
2024-01-13 16:10:25 +01:00
Vicki Pfau
a8033f164b
Steam Deck: Pad out feature report to 64 bytes
...
Also update the names of the setting post-Steam Deck commits to SDL
Fixes https://bugs.dolphin-emu.org/issues/13412
2024-01-10 19:49:52 -08:00
Martino Fontana
0ab2bc2287
ControllerInterface: Make FullAnalogSurface inherit IsDetectable()
2024-01-10 12:20:07 +01:00
Admiral H. Curtiss
07c035e659
Core/SystemTimers: Refactor to class, move to System.
2024-01-04 23:35:19 +01:00
Filoppi
e456bef163
Input: Improve Controller Interface devices threading
...
This specific issue was already addressed by https://github.com/dolphin-emu/dolphin/pull/11635
though I felt like there was something more we could do, and wasn't too happy with the
likelihood of devices update calls being skipped (due to `m_devices_population_mutex` being locked).
2023-12-18 21:45:22 +02:00
Tilka
8cbb2c2e44
Merge pull request #12399 from lioncash/erasing
...
General: Make use of std::erase_if/std::erase where applicable
2023-12-12 20:54:52 +00:00
Lioncash
ded2d55438
ExpressionParser: Avoid some miscellaneous copies
...
Just some trivial copies that can be eliminated or turned into moves.
2023-12-12 14:03:41 -05:00
Lioncash
a5bbeb721a
ExpressionParser: Mark constructors explicit where applicable
...
Makes for consistency with the surrounding code.
2023-12-12 14:00:27 -05:00
Lioncash
ea71a76ea9
ExpressionParser: Pass control qualifiers by const reference
...
These aren't necessarily cheap to copy, since a control qualifier will
have around 3 std::strings inside of it, so passing by value can churn
allocations a little bit.
2023-12-12 13:50:46 -05:00
Lioncash
9aea481e59
ExpressionParser: Make use of std::erase_if
2023-12-12 13:31:58 -05:00
Lioncash
196f8e5123
MappingCommon: Make use of std::erase_if
2023-12-12 13:31:18 -05:00
Mai
ac53766058
Merge pull request #12215 from JosJuice/android-si-devices
...
Android: Add more GameCube controller types
2023-11-28 19:21:29 +01:00
Dentomologist
2d3bae9c79
SDL: Add default case to switch statement
...
Fix -WSwitch warning about unhandled enum value SDL_NUM_LOG_PRIORITIES.
log_level is initialized to LNOTICE right before the switch statement so
this doesn't cause any behavior changes.
2023-11-10 12:05:20 -08:00
Jordan Woyak
30ce1f2ec2
ControllerInterface/SDL: Remove Xbox 360 controller disabling hack.
2023-10-26 18:04:11 -05:00
JosJuice
d6c0f8e749
Android: Get profile name from core
...
To avoid duplicating information between Kotlin and C++.
2023-10-01 18:47:49 +02:00
Admiral H. Curtiss
53df01f7d8
Merge pull request #12172 from ArcaneNibble/sd
...
Steam Deck: Periodically reenable gyro
2023-09-28 04:10:27 +02:00
get
63467559b2
fmt 10.0.0-10.1.1 compile fixes
...
Implicit conversion operators and enums was removed for parity with std::format (fce74caa15
).
2023-09-21 01:19:23 +02:00
R
860acfb15d
Steam Deck: Periodically reenable gyro
2023-09-07 19:56:58 +01:00
Admiral H. Curtiss
2502e412b3
Merge pull request #12117 from JosJuice/config-callback-cpu
...
Don't call RunAsCPUThread in config callbacks
2023-08-26 16:34:46 +02:00
Admiral H. Curtiss
9a51215af3
Merge pull request #12083 from JosJuice/android-controlled-by-gamepad
...
InputConfig: Update IsControllerControlledByGamepadDevice for Android input overhaul
2023-08-18 21:27:26 +02:00
JosJuice
7197e3abd0
Use structs for config callback IDs
...
This way you can't mix up regular config callback IDs and CPU thread
config callback IDs. (It would be rather bad if you did!)
2023-08-17 19:19:26 +02:00
Admiral H. Curtiss
2cbc1e6f3e
Merge pull request #12109 from JosJuice/android-adddevice-null
...
ControllerInterface/Android: Add null check to AddDevice
2023-08-15 22:22:45 +02:00
JosJuice
1d77bddc3b
ControllerInterface/Android: Add null check to AddDevice
...
The Google Play Console is showing some users getting a crash here,
and indeed, InputDevice.getDevice can return null.
2023-08-15 13:31:18 +02:00
Dentomologist
274b11e4e9
GCAdapter: Fix Android unused constant warning
...
CONTROLLER_OUTPUT_INIT_PAYLOAD_SIZE is only used by the libusb
implementation.
2023-08-12 20:20:42 -07:00
Dentomologist
77d33d61de
GCAdapter: Fix spelling of constants
2023-08-12 20:20:41 -07:00
JosJuice
02b0e287cb
InputConfig: Update IsControllerControlledByGamepadDevice for Android input overhaul
...
This only matters for analytics, but still.
2023-08-01 19:35:55 +02:00
nyanpasu64
5d0f1bd10b
Switch libusb_config_descriptor to RAII type
2023-07-05 20:38:22 -07:00
nyanpasu64
c893ccca58
Workaround GC adapter detection breaking when reset fails
2023-07-05 20:38:22 -07:00
nyanpasu64
559a16da49
Reset GC adapter upon IO error after sleep-wake
...
Fixes GC adapter breaking on sleep-wake on Linux and burning a full CPU
core. This is cleaner than alternative approaches.
2023-07-05 20:38:22 -07:00
nyanpasu64
afb5eff426
Don't burn a CPU core and spam logs when GC Adapter fails
2023-07-05 20:38:22 -07:00
nyanpasu64
54850e936c
Fix memory leak in libusb code
2023-07-05 20:38:22 -07:00
Admiral H. Curtiss
fa81006b51
Merge pull request #11955 from TellowKrinkle/CMakeDependencies
...
CMake: Allow ignoring system packages
2023-06-30 19:06:04 +02:00
Admiral H. Curtiss
5d7b5822c9
Merge pull request #11972 from Minty-Meeo/string-improvements-part-1c
...
Replace std::ostringstream usage with fmt::format
2023-06-19 02:18:30 +02:00
get
ffabb6c57b
Replace std::ostringstream usage with fmt::format
2023-06-18 18:37:32 -05:00
get
80575c4489
DITConfiguration: Use File::ReadFileToString
2023-06-17 19:38:15 -05:00
TellowKrinkle
5b10a80401
CMake: Use targets for all optionally-external dependencies
2023-06-15 01:41:41 -05:00
Dentomologist
527f8e783c
ControllerEmu: Convert Translatability to enum class
2023-06-12 18:11:04 -07:00
Admiral H. Curtiss
7845fb00ee
Merge pull request #11681 from iwubcode/asset_management
...
VideoCommon: migrate texture packs to use the asset loader system
2023-06-08 22:21:12 +02:00
Admiral H. Curtiss
e8c87dc4fd
Merge pull request #11902 from Minty-Meeo/regex-best-practices
...
static const std::regex
2023-06-08 20:52:11 +02:00
get
1df482d51f
Prefer static const std::regex
...
std::regex has a relatively expensive constructor, and these are unchanging regexes.
2023-06-08 09:39:23 -05:00
iwubcode
e831d7b6bb
InputCommon / VideoCommon: remove dynamic input reloading the texture cache, this is no longer needed, assets reload automatically!
2023-06-07 18:30:10 -05:00
JosJuice
71ac6ec239
InputCommon: Don't treat two analog inputs as a spurious trigger combo
...
I've received a report from an Android user with a gamepad (a "BSP-D3")
where one physical trigger is controlling two analog axes at the same
time. This was causing RemoveSpuriousTriggerCombinations to delete both
axes, which is clearly not a desireable outcome.
With this change, now the axis with the greatest smoothness is kept,
or both in case they have the same smoothness.
2023-06-06 22:07:14 +02:00
Admiral H. Curtiss
38b033a476
Merge pull request #11762 from jbosboom/xinput2-raw-event-query
...
Xinput2: use raw events and queries
2023-06-06 18:14:51 +02:00