Commit Graph

1489 Commits

Author SHA1 Message Date
Vitor K
ce16653cc8
Automatic Controller Binding (#5100)
* Implement the basics of controller auto mapping. From testing doesn't currenlty work.
Opening the controller requires the device index, but it is only known and guaranteed
at boot time or when a controller is connected.

* Use the SDL_INIT_GAMECONTROLLER flag to initialize the controller
subsystem. It automatically initializes the joystick subsystem too,
so SDL_INIT_JOYSTICK is not needed.

* Implement the SDLGameController class to handle open game controllers.
Based on the SDLJoystick implementation.

* Address review comments

* Changes SDLJoystick and SDLGameController to use a custom default
constructible destructor, to improve readability. The only deleters
used previously were SDL_JoystickClose and SDL_GameControllerClose,
respectively, plus null lambdas. Given that both SDL functions
accept null pointers with just an early return, this should be
functionally the same.
with just an early return

* warn the user when a controller mapping is not found

* Get axis direction and threshold from SDL_ExtendedGameControllerBind

* Reject analog bind if it's not axis, for the couple of examples present in SDL2.0.10's db.
Also add SDL_CONTROLLER_BINDTYPE_NONE for the button bind switch, with a better log message.

* sdl_impl.cpp: Log the error returned by SDL_GetError upon failure to open joystick

* sdl: only use extended binding on SDL2.0.6 and up

* sdl_impl.cpp: minor changes
2021-01-01 10:01:07 +01:00
Pengfei Zhu
6f2bbbcced
Merge pull request #5658 from FearlessTobi/cheat-window-flags
citra_qt/cheats: Make window resizable and remove help hint
2021-01-01 10:03:15 +08:00
FearlessTobi
54a95e9c58 citra_qt/cheats: Make window resizable and remove help hint
Fixes https://github.com/citra-emu/citra/issues/5575.
2020-12-28 17:01:30 +01:00
Lioncash
fdf0825369 game_list_p: Resolve deprecated usage of QVariant operator<
This is designated as obsolete in Qt's docs (see:
https://doc.qt.io/qt-5/qvariant-obsolete.html#operator-lt)
2020-12-19 18:48:38 +01:00
Tobias
702af87f0d
Port yuzu-emu/yuzu#4700: "game_list: Eliminate redundant argument copies" (#5571)
* game_list: Eliminate redundant argument copies

Several functions can be taken by const reference to avoid copies

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>

* game_list: Make game list function naming consistent

Makes the naming consistent with the rest of the functions that are
present.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>

Co-authored-by: Lioncash <mathew1800@gmail.com>
Co-authored-by: LC <712067+lioncash@users.noreply.github.com>
2020-12-07 16:05:13 +01:00
Vitor K
2f5eec3576
Fixes to "hide mouse on inactivity" (#5476)
The feature wasn't working when the "single window mode" was off.
Changed the cursor setting to only affect the render_window and
moved to a signal/slot model to show the mouse.
2020-12-05 22:12:17 +01:00
Marshall Mohror
a89261d397
Merge pull request #5580 from oneup03/master
Implement Reverse Interlaced 3D
2020-11-16 16:53:05 -06:00
Pengfei Zhu
de3d7cf49f
kernel/thread: Change owner_process to std::weak_ptr (#5325)
* kernel/thread: Change owner_process to std::weak_ptr

Previously this leaked almost all kernel objects. In short, Threads own Processes which own HandleTables which own maps of Objects which include Threads.

Changing this to weak_ptr at least got the camera interfaces to destruct properly. Did not really check the other objects though, and I think there are probably more leaks.

* hle/kernel: Lock certain objects while deserializing

When deserializing other kernel objects, these objects (`MemoryRegion`s and `VMManager`s) can possibly get modified. To avoid inconsistent state caused by destructor side-effects, we may as well simply lock them until loading is fully completed.

* Fix silly typo

Somehow this didn't break?!
2020-11-15 12:59:45 +01:00
tywald
2e0ce86c9e
Band-aid solution for 'Disk Shader Cache' (#5188)
* Enable 'Accurate Multiplication' by default.

* Move 'Disk Shader Cache' to the 'Advanced' tab

* Prevent enabling 'Disk Shader Cache' when 'Enable Hardware Shader' or 'Accurate Multiplication' is disabled.

* Do not load 'Disk Shader Cache' when 'Accurate Multiplication' is disabled.

* Add a tooltip for 'Disk Shader Cache'.
2020-11-06 10:07:59 -08:00
OneUp03
a4f57e6910 Implement Reverse Interlaced 3D 2020-10-16 11:41:08 -05:00
FearlessTobi
e12ee55faa qt/game_list: Give GameListSearchField::KeyReleaseEater a parent
This fixes a memory leak as KeyReleaseEater's destructor was never
called.

Co-Authored-By: Rodrigo Locatti <reinuseslisp@airmail.cc>
2020-10-04 05:14:49 +02:00
Vitor K
a26b466ac8
Use unique_ptr on all ui objects from .ui files (#5511)
* Forward declare ui and use unique_ptr

* ConfigureEnhancements: use unique_ptr for ui

* Use make_unique instead of new where applicable

* Move some of the ui includes that already used unique_ptr

* main.cpp: also make use of make_unique on Config

* Address review comments
2020-10-01 09:23:01 +08:00
FearlessTobi
84c42bf581 game_list_p: Mark some constants as constexpr
Consistency change with how we mark constants in the rest of the
codebase.

Co-Authored-By: LC <712067+lioncash@users.noreply.github.com>
2020-09-09 17:06:15 +02:00
Tobias
316a64961c
Port yuzu-emu/yuzu#4605: "bootmanager: Prevent unnecessary copies in TouchUpdateEvent()" (#5539)
The list of points is returned by const reference, so we don't need to
make a copy of every element in the list.

Co-authored-by: Lioncash <mathew1800@gmail.com>
2020-09-05 06:09:31 +02:00
Pengfei Zhu
6a77547bde
Minor frontend fixes to savestates (#5430) 2020-09-03 00:04:23 +02:00
Pengfei Zhu
2f01046f77
Merge pull request #5504 from xperia64/savestate_locale_fix
Don't translate save/load state hotkey text for the map
2020-09-01 22:42:17 +08:00
Pengfei Zhu
a39e0ea3b1
Merge pull request #5516 from encounter/qdropevent-fix
Avoid incorrect casts to QDropEvent
2020-09-01 22:27:37 +08:00
Tobias
f4be733355
citra_qt: Backport review comments from the yuzu translation PR (#5465) 2020-08-31 21:13:24 +02:00
Tobias
f6b543886c
Port yuzu-emu/yuzu#4528: "common: Make use of [[nodiscard]] where applicable" (#5535)
Co-authored-by: LC <712067+lioncash@users.noreply.github.com>
2020-08-31 21:06:16 +02:00
Marshall Mohror
e48110bdf4
Merge pull request #5512 from vitor-k/untangle-includes
Forward declare some classes and remove some unnecessary includes
2020-08-29 22:02:25 -05:00
Marshall Mohror
88c0288cb1
Merge pull request #5521 from xperia64/fix_hotkey_ordering
Fix hotkey ordering
2020-08-28 13:53:40 -05:00
Marshall Mohror
69f4aacccf
Merge pull request #5531 from FearlessTobi/port-4536
Port yuzu-emu/yuzu#4536: "yuzu: Resolve -Wextra-semi warnings"
2020-08-28 13:29:22 -05:00
Lioncash
1e2e9e555a yuzu: Make use of qOverload where applicable
Eliminates a verbose function cast.
2020-08-28 16:55:55 +02:00
Lioncash
8d6927dc4c yuzu: Resolve -Wextra-semi warnings
While we're in the same area, we can ensure GameDir member variables are
always initialized to consistent values.
2020-08-28 16:43:17 +02:00
xperia64
9a6fb16c06 Hotkeys were carelessly added out of alphabetical order, and notably broke in the 'Restore Hotkeys' PR 2020-08-23 15:16:38 -04:00
xperia64
07d2daf2f9 Fix order 2020-08-21 21:47:57 -04:00
Vitor Kiguchi
08e4614817 interface.h: forward declare resolution 2020-08-20 01:30:13 -03:00
Vitor Kiguchi
683fb833f2 camera_util.cpp: remove unnecessary includes 2020-08-20 01:30:13 -03:00
Vitor Kiguchi
7bcfff4e71 clang format 2020-08-19 01:45:57 -03:00
Vitor Kiguchi
a6efc7c1ee Separate the enums from cam/cam.h
The settings.h file doesn't actually need all of the definitions
on cam.h, only some of the enums. They can, therefore, be separated
into another file, which is included by settings.h instead.
The other changes are fixing files that included settings.h and
depended on indirect includes from includes of includes of cam.h
2020-08-19 01:45:57 -03:00
Luke Street
21d7c4faa8 Avoid incorrect casts to QDropEvent 2020-08-18 23:24:06 -04:00
Vitor Kiguchi
9d99755d4f configure_camera: forward declare CameraInterface 2020-08-17 21:07:38 -03:00
Vitor Kiguchi
9c2986de41 profiler: remove unnecessary includes 2020-08-17 18:31:58 -03:00
Vitor Kiguchi
9394724902 main: forward declare QLabel 2020-08-17 18:17:42 -03:00
xperia64
1d5d278f8d Don't translate hotkey text 2020-08-10 23:06:22 -04:00
David Marcec
7c578b0579 frontend: Improve wait tree readability for dark themes 2020-07-19 14:41:50 +02:00
FearlessTobi
88edf9d62c cmake: stop linking against QGL
Co-Authored-By: Jan Beich <jbeich@users.noreply.github.com>
2020-07-11 19:06:31 +02:00
Tobias
96fa75fb93
discord_impl: Update the client ID (#5449)
THis should hopefully fix Rich Presence for CItra.
2020-07-08 23:45:54 +02:00
Kaiwen Xu
265b0aa444 Fix framebuffer size on fractional scaling display. 2020-06-28 20:34:37 +02:00
SutandoTsukai181
485d64ae73
citra-qt: Add an "Alternative Speed Limit" with its hotkey (#5281)
* Change "Toggle Speed Limit" to toggle between 100% and a custom value

This will change the shortcut for "Toggle Speed Limit" to make it swap between 100% and the value of "Limit Speed Percent" in the config. Old functionality is still there, but renamed to "Unthrottle".

* Complete reimplementation of the function

* Fix something that didn't get saved correctly

* Fix missing indentation

* Rewrite to keep only a single QSpinBox

* Second rewrite

* set Unthrottled to 0 in the Qspinbox

* Hotkey for Unthrottle

* minor improvements to the design

* Apply suggestions from code review

Co-authored-by: Ben <bene_thomas@web.de>

* Default slider values

* clang-format fixes

* Prevent the speed slider from changing size

...when an element in its row has variable width.

* Change "Game Speed" to "Emulation Speed"

* Apply suggestions from code review

`game_speed` to` emulation_speed`

Co-authored-by: Valentin Vanelslande <vvanelslandedev@gmail.com>

* Fix for QSliders

* Revert "Prevent the speed slider from changing size"

This reverts commit ddaca20044.

* clang-format

...doesn't seem to stick to a choice

* Fix 2 for QSliders

Co-authored-by: B3n30 <benediktthomas@gmail.com>
Co-authored-by: Ben <bene_thomas@web.de>
Co-authored-by: Valentin Vanelslande <vvanelslandedev@gmail.com>
2020-06-20 13:52:14 -05:00
Dragios
3090f840a8
Fix: fatal error CVT1100 when compiling manifest file (#5322) 2020-06-20 13:50:33 -05:00
Marshall Mohror
8a080146c9
Merge pull request #5344 from vitor-k/fix-folder-order
game_list: Fix folder reordering
2020-06-20 13:23:44 -05:00
LC
8ce81b19be
General: Remove usages of ARRAY_SIZE where applicable. (#5392)
Same behavior, but without our own boilerplate function.
2020-06-19 09:10:45 -05:00
Pengfei Zhu
e6ad0d390e
Merge pull request #5381 from zhaowenlan1779/swkbd-another-fix
applets/swkbd: Properly handle button_text
2020-06-08 22:04:49 +08:00
xperia64
76253063a3
Merge pull request #5376 from xperia64/save_default_controls
Actually save the input when clearing/resetting to default
2020-05-31 16:27:55 -04:00
Pengfei Zhu
81a1e5680f
Merge pull request #5163 from z87/input-touch-mapping
input: allow mapping buttons to touchscreen
2020-05-31 22:23:02 +08:00
zhupengfei
46e8c38395
Use attribute instead of comment 2020-05-31 10:47:46 +08:00
zhupengfei
190a053987
applets/swkbd: Properly handle button_text
I'm not sure why we decided to have a boolean here, but apparently that wasn't the correct behaviour. According to HW tests, the Software Keyboard simply displays the default text when the button text provided is empty (**not necessarily all zero**). For example, if you set a text for one of the buttons and leave others empty, the button you set will have your text, while others will have their default texts. Removed the boolean and updated frontend code to make it correct.
2020-05-31 09:41:30 +08:00
xperia64
8d19e144cb Actually save the input when clearing/resetting to default 2020-05-28 20:03:29 -04:00
SutandoTsukai181
9ed6762c59 Use fixed indices for button order
Apps always return 3 strings, even if there is no custom text, so the index should be constant for each button.
2020-05-24 21:45:23 +03:00