aboutsummaryrefslogtreecommitdiff
path: root/src/common/input.h
Commit message (Collapse)AuthorAgeFilesLines
* [common] Switch to boost::unordered_flat containers (#4326)crueter2026-08-311-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Replaces all instances of ankerl's unordered map/set with boost's `unordered_flat_*` classes. This uses std::hash since boost::hash is actually a lot slower. Also adds an abstraction layer in `Common` so future changes are quicker and easier. Other implementation details: - ankerl provided hash specializations for tuple and pair, so those were ported here - std::erase_if doesn't work on boost, so just used the ADL'd erase_if This should be about equal or superior performance as unordered_dense for everything except iteration. Signed-off-by: crueter <crueter@eden-emu.dev> - [x] I have read and followed the [Contribution Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/CONTRIBUTING.md#code-contributions). - [x] I have read and followed the [AI Policy](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/AI.md) - [x] I have read and followed the [Coding Guidelines](https://git.eden-emu.dev/eden-emu/eden/src/branch/master/docs/policies/Coding.md) to the best of my ability. ------------------- Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4326 Reviewed-by: Lizzie and Samuel <lizzie@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
* [common/logging] Simplify logging logic and fix issues when logging before ↵lizzie2026-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | system is created (#3688) - our logging code was bigger than spdlog itself, why???? just keep it simple - fix issues when logging before logging system is even started - removes the "initialized logging twice" issue - removes uneeded indirection in file logging - uses direct formatting instead of jumping hoopla-around the fmt::format() ressult - code duplication and dead code removal as usual I did explore dup2() but I think it's not worth the hassle I did try `fwopen()` but it's better if things are just kept as-is. there is a lot of noise because I removed a bunch of redundant files on logging and just put everything in one file now normally this wouldn't be a good idea, however consider: the complexity of logging; it's less than 500 lines... does it really need a whole subsystem?!?!?! ITS JUST LOGGING Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3688 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: DraVee <chimera@dravee.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* [*] change all std::unordered_map and std::unordered_set into ↵lizzie2026-02-101-2/+5
| | | | | | | | | | | | | | | | | | | ankerl::unordered_dense::map/set variants (#3442) mainly doing this to reduce memory footprint; we all know how nice ankerl::unordered_dense is in theory 4x faster - in practice these maps arent that "hot" anyways so not likely to have much perf gained i just want to reduce mem fragmentation to ease my porting process, plus it helps other platforms as well (ahem weak Mediatek devices) :) Signed-off-by: lizzie <lizzie@eden-emu.dev> Co-authored-by: Caio Oliveira <caiooliveirafarias0@gmail.com> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3442 Reviewed-by: DraVee <dravee@eden-emu.dev> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com> Co-authored-by: lizzie <lizzie@eden-emu.dev> Co-committed-by: lizzie <lizzie@eden-emu.dev>
* input_common: Remove duplicated DriverResult enumgerman772023-06-281-0/+2
|
* input_common: Implement native mifare supportNarr the Reg2023-06-211-4/+39
|
* input_common: Add property to invert an axis buttonNarr the Reg2023-05-051-0/+2
|
* general: fix spelling mistakesLiam2023-03-121-4/+4
|
* input_common: Minor typo issues (#9922)Narr the Reg2023-03-081-1/+1
|
* input_common: Implement turbo buttonsgerman772023-02-011-0/+2
|
* input_common: Use DriverResult on all enginesgerman772023-01-191-26/+20
|
* input_common: Initial skeleton for custom joycon driverNarr the Reg2023-01-191-3/+23
|
* input_common: Create an update engineNarr the Reg2023-01-051-3/+0
|
* Merge pull request #9289 from liamwhite/fruit-companyliamwhite2022-12-031-0/+1
|\ | | | | general: fix compile for Apple Clang
| * general: fix compile for Apple ClangLiam2022-11-221-0/+1
| |
* | common/input: Add helpers functions for creating input and output devicesLioncash2022-11-281-0/+34
| | | | | | | | | | Avoids the redundancy of needing to explictly specify the common namespace and the type.
* | common/input: Pass ParamPackage by const reference in CreateDeviceLioncash2022-11-281-3/+3
|/ | | | | This was previously being passed by value, which was unnecessary and created more allocations than necessary.
* input_common: cache vibration testsgerman772022-10-211-1/+4
|
* input_common: have an unique vector in callback statusgerman772022-10-091-2/+3
|
* service: nfp: address commentsgerman772022-10-021-1/+1
|
* input_common: Create virtual amiibo drivergerman772022-10-021-0/+27
|
* input_common: Add support for analog toggleNarr the Reg2022-09-061-0/+5
|
* chore: make yuzu REUSE compliantAndrea Pappacoda2022-07-271-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [REUSE] is a specification that aims at making file copyright information consistent, so that it can be both human and machine readable. It basically requires that all files have a header containing copyright and licensing information. When this isn't possible, like when dealing with binary assets, generated files or embedded third-party dependencies, it is permitted to insert copyright information in the `.reuse/dep5` file. Oh, and it also requires that all the licenses used in the project are present in the `LICENSES` folder, that's why the diff is so huge. This can be done automatically with `reuse download --all`. The `reuse` tool also contains a handy subcommand that analyzes the project and tells whether or not the project is (still) compliant, `reuse lint`. Following REUSE has a few advantages over the current approach: - Copyright information is easy to access for users / downstream - Files like `dist/license.md` do not need to exist anymore, as `.reuse/dep5` is used instead - `reuse lint` makes it easy to ensure that copyright information of files like binary assets / images is always accurate and up to date To add copyright information of files that didn't have it I looked up who committed what and when, for each file. As yuzu contributors do not have to sign a CLA or similar I couldn't assume that copyright ownership was of the "yuzu Emulator Project", so I used the name and/or email of the commit author instead. [REUSE]: https://reuse.software Follow-up to b2eb10382941bef0914f4a0a4685b9033440aa9f
* input_common: Add camera drivergerman772022-07-231-1/+28
|
* input_common: Make vibration request asyncNarr the Reg2022-05-231-0/+1
|
* input_common: Add home and hard touch press buttons to UDP controllersgerman772022-01-301-0/+2
|
* input_common: Reintroduce motion from mouse and use button namesgerman772022-01-161-0/+7
|
* common/input: Avoid numerous large copies of CallbackStatusLioncash2021-12-131-2/+2
| | | | | | | | | CallbackStatus instances aren't the cheapest things to copy around (relative to everything else), given that they're currently 520 bytes in size and are currently copied numerous times when callbacks are invoked. Instead, we can pass the status by const reference to avoid all the copying.
* common/input: Remove unnecessary returnsLioncash2021-12-131-6/+2
| | | | Given these return void, these can be omitted.
* input_engine: Pass LedStatus by const referenceLioncash2021-12-131-1/+1
| | | | Avoids copies where reasonably applicable
* input_engine: Pass VibrationStatus by const reference in SetRumble()Lioncash2021-12-131-4/+2
| | | | Avoids creating copies of the struct where not necessary.
* input_common: Fully implement UDP controllersNarr the Reg2021-11-261-0/+14
|
* input_common: Move button names to the frontendgerman772021-11-241-0/+22
|
* config: Cleanup and documentationgerman772021-11-241-3/+31
|
* core/hid: Prevent Emulated controller from flapping with multiple inputs devicesgerman772021-11-241-0/+4
|
* core/hid: Fully emulate motion from buttongerman772021-11-241-0/+5
|
* second commit lion reviewgerman772021-11-241-1/+1
|
* settings: Fix Debug controller type optionsgerman772021-11-241-2/+2
|
* kraken: Address comments from reviewgerman772021-11-241-2/+2
| | | | start lion review
* input_common: Add manual update options to input devicesgerman772021-11-241-0/+10
|
* core/hid: Fix rumble too strong at 1%german772021-11-241-0/+7
|
* core/hid: Only signal when neededgerman772021-11-241-0/+1
|
* core/hid: Add output devicesgerman772021-11-241-0/+39
|
* common: Rewrite and move core/frontend/input.h to commongerman772021-11-241-0/+242