| Age | Commit message (Collapse) | Author |
|
ControllerInterface: Adjust sort priorities to ensure default keyboard-mouse device is first.
|
|
device is first.
|
|
Common: add Json helper utilities for loading or saving to a file
|
|
|
|
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.
|
|
InputCommon: Fix unnecessary "Modifier/Range" ini file entries.
|
|
|
|
|
|
button is pressed.
|
|
This was broken by a9a9fdd9e9. Because Init didn't run, the Android
input backend would crash whenever it tried to call into JVM code.
|
|
Implement missing InputBackend classes.
|
|
|
|
|
|
|
|
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.
|
|
InputCommon: Remove some IOKit leftovers.
|
|
SDL: Cleanups
|
|
|
|
|
|
|
|
|
|
|
|
the IR camera objects.
|
|
seen by the Wiimote.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
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.
|
|
By having getters for this information, other code that needs access to
the same information can call the getters instead of duplicating the
information.
|
|
deadlocks.
In particular this is triggered when running Dolphin with the Steam overlay.
|
|
|
|
|
|
SDL_JoystickNumAxes(), SDL_JoystickNumHats().
|
|
|
|
SDL: Add GameController API, cleanup
|
|
|
|
Also update the names of the setting post-Steam Deck commits to SDL
Fixes https://bugs.dolphin-emu.org/issues/13412
|
|
|
|
|
|
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).
|
|
General: Make use of std::erase_if/std::erase where applicable
|
|
Just some trivial copies that can be eliminated or turned into moves.
|
|
Makes for consistency with the surrounding code.
|