Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | input_common: Redesign mouse panning | Baptiste Marie | 2023-06-12 | 2 | -52/+49 |
| | |||||
* | input_common: Fix virtual amiibos | bunnei | 2023-06-03 | 1 | -4/+4 |
| | |||||
* | android: Various fixes for CI. | bunnei | 2023-06-03 | 1 | -10/+10 |
| | |||||
* | android: Implement amiibo reading from nfc tag | Narr the Reg | 2023-06-03 | 2 | -4/+24 |
| | |||||
* | android: Add motion sensor | Narr the Reg | 2023-06-03 | 2 | -1/+27 |
| | |||||
* | input_common: Implement amiibo writting | Narr the Reg | 2023-05-22 | 1 | -2/+6 |
| | |||||
* | input_common: Fix pro controller amiibo support | Narr the Reg | 2023-05-17 | 2 | -5/+7 |
| | |||||
* | Improve emulation of HD Rumble | marius david | 2023-05-05 | 1 | -6/+29 |
| | |||||
* | input_common: minor fix to mouse movement | Valeri | 2023-04-14 | 1 | -1/+1 |
| | |||||
* | input_common: sdl: Only send last vibration command | german77 | 2023-03-13 | 1 | -1/+16 |
| | |||||
* | general: fix spelling mistakes | Liam | 2023-03-12 | 6 | -8/+8 |
| | |||||
* | Merge pull request #9906 from german77/metroid2 | bunnei | 2023-03-08 | 1 | -9/+18 |
|\ | | | | | input_common: Increase mouse sensitivity range | ||||
| * | input_common: Increase mouse sensitivity range | german77 | 2023-03-08 | 1 | -9/+18 |
| | | |||||
* | | input_common: Minor typo issues (#9922) | Narr the Reg | 2023-03-08 | 2 | -3/+3 |
|/ | |||||
* | input_common: Implement dedicated motion from mouse | Narr the Reg | 2023-02-22 | 2 | -17/+82 |
| | |||||
* | input_common: Split mouse input into individual devices | Narr the Reg | 2023-02-16 | 2 | -24/+81 |
| | |||||
* | remove static from pointer sized or smaller types for aesthetics, change constexpr static to static constexpr for consistency | arades79 | 2023-02-14 | 5 | -12/+12 |
| | | | | Signed-off-by: arades79 <scravers@protonmail.com> | ||||
* | add static lifetime to constexpr values to force compile time evaluation where possible | arades79 | 2023-02-14 | 5 | -12/+12 |
| | | | | Signed-off-by: arades79 <scravers@protonmail.com> | ||||
* | input_common: Reintroduce custom pro controller support | Narr the Reg | 2023-02-10 | 3 | -3/+65 |
| | |||||
* | input_common: joycon: Fill missing enum data | Narr the Reg | 2023-01-30 | 2 | -4/+2 |
| | |||||
* | input_common: Make use of StoppableTimedWait | Morph | 2023-01-25 | 2 | -5/+6 |
| | |||||
* | input_common: add missing header for libc++ after 340f15d1fa79 | Jan Beich | 2023-01-25 | 1 | -0/+1 |
| | | | | | | | | | | | | | | | src/input_common/drivers/joycon.cpp:187:26: error: no member named 'find_if' in namespace 'std::ranges' std::ranges::find_if(left_joycons, [](auto& device) { return !device->IsConnected(); }); ~~~~~~~~~~~~~^ src/input_common/drivers/joycon.cpp:193:54: error: no member named 'find_if' in namespace 'std::ranges' const auto unconnected_device = std::ranges::find_if( ~~~~~~~~~~~~~^ src/input_common/drivers/joycon.cpp:393:51: error: no member named 'find_if' in namespace 'std::ranges' const auto matching_device = std::ranges::find_if( ~~~~~~~~~~~~~^ src/input_common/drivers/joycon.cpp:402:51: error: no member named 'find_if' in namespace 'std::ranges' const auto matching_device = std::ranges::find_if( ~~~~~~~~~~~~~^ | ||||
* | Merge pull request #9492 from german77/joycon_release | liamwhite | 2023-01-24 | 10 | -20/+822 |
|\ | | | | | Input_common: Implement custom joycon driver v2 | ||||
| * | input_common: Fix joycon mappings | german77 | 2023-01-20 | 2 | -57/+53 |
| | | |||||
| * | input_common: Address byte review | german77 | 2023-01-20 | 3 | -26/+27 |
| | | |||||
| * | input_common: Drop Pro controller support from custom driver | german77 | 2023-01-20 | 3 | -40/+3 |
| | | |||||
| * | input_common: Implement joycon ir camera | Narr the Reg | 2023-01-20 | 2 | -9/+25 |
| | | |||||
| * | yuzu: Add ring controller test button | german77 | 2023-01-20 | 1 | -4/+5 |
| | | |||||
| * | input_common: Use DriverResult on all engines | german77 | 2023-01-20 | 10 | -42/+39 |
| | | |||||
| * | Address review comments | german77 | 2023-01-20 | 1 | -1/+1 |
| | | |||||
| * | input_common: Implement joycon nfc | german77 | 2023-01-20 | 1 | -1/+3 |
| | | |||||
| * | input_common: Add dual joycon support | Narr the Reg | 2023-01-20 | 1 | -24/+101 |
| | | |||||
| * | input_common: Add support for joycon input reports | Narr the Reg | 2023-01-20 | 1 | -23/+24 |
| | | |||||
| * | core: hid: Enable pulling color data from controllers | Narr the Reg | 2023-01-20 | 1 | -1/+10 |
| | | |||||
| * | input_common: Disable SDL driver with switch controllers | Narr the Reg | 2023-01-20 | 2 | -3/+20 |
| | | |||||
| * | input_common: Initial skeleton for custom joycon driver | Narr the Reg | 2023-01-20 | 2 | -0/+722 |
| | | |||||
* | | input_common: reset sdl motion if data is invalid | german77 | 2023-01-18 | 1 | -19/+35 |
|/ | |||||
* | TAS: Show all script lengths for multiplayer | MonsterDruide1 | 2023-01-07 | 2 | -4/+10 |
| | |||||
* | bootmanager: Use proper camera size | german77 | 2022-12-18 | 1 | -0/+1 |
| | |||||
* | Merge pull request #9456 from german77/virtual_gamepad | bunnei | 2022-12-18 | 2 | -0/+151 |
|\ | | | | | input_common: Add virtual gamepad | ||||
| * | input_common: Add virtual gamepad | german77 | 2022-12-17 | 2 | -0/+151 |
| | | |||||
* | | camera: Use pre-allocated vector for camera data | ameerj | 2022-12-17 | 2 | -2/+4 |
|/ | | | | And avoid an unnecessary copy | ||||
* | input_common: Filter SDL GUID | Narr the Reg | 2022-12-12 | 1 | -0/+2 |
| | |||||
* | Merge pull request #9369 from german77/mifare | liamwhite | 2022-12-06 | 2 | -16/+29 |
|\ | | | | | service: nfc: Implement mifare service | ||||
| * | input_common: Allow mifare files | Narr the Reg | 2022-12-05 | 2 | -16/+29 |
| | | |||||
* | | Merge pull request #9289 from liamwhite/fruit-company | liamwhite | 2022-12-03 | 4 | -3/+3 |
|\ \ | |/ |/| | general: fix compile for Apple Clang | ||||
| * | general: fix compile for Apple Clang | Liam | 2022-11-23 | 4 | -3/+3 |
| | | |||||
* | | input_common: Pump sdl events from main thread | german77 | 2022-11-27 | 2 | -10/+8 |
|/ | |||||
* | general: Address review comments | german77 | 2022-11-14 | 2 | -2/+2 |
| | |||||
* | input_common: Add amiibo applet functions | german77 | 2022-11-13 | 2 | -0/+18 |
| | |||||
* | Merge pull request #9107 from german77/gidoly_rules | liamwhite | 2022-10-25 | 4 | -11/+67 |
|\ | | | | | input_common: cache vibration tests | ||||
| * | input_common: cache vibration tests | german77 | 2022-10-21 | 4 | -11/+67 |
| | | |||||
* | | general: Enforce C4800 everywhere except in video_core | Morph | 2022-10-22 | 1 | -2/+2 |
|/ | |||||
* | common: remove "yuzu:" prefix from thread names | Liam | 2022-10-04 | 3 | -5/+5 |
| | |||||
* | service: nfp: address comments | german77 | 2022-10-02 | 2 | -3/+3 |
| | |||||
* | input_common: Create virtual amiibo driver | german77 | 2022-10-02 | 2 | -0/+162 |
| | |||||
* | input_common: sdl: Always check for motion on reconnect | Narr the Reg | 2022-09-04 | 1 | -4/+7 |
| | |||||
* | chore: make yuzu REUSE compliant | Andrea Pappacoda | 2022-07-27 | 5 | -13/+9 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | [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 01cf05bc75b1e47beb08937439f3ed9339e7b254 | ||||
* | input_common: Add camera driver | german77 | 2022-07-24 | 2 | -0/+111 |
| | |||||
* | input_common: sdl: lower vibration frequency and use it's own unique thread | german77 | 2022-06-29 | 2 | -1/+10 |
| | |||||
* | input_common: Replace usage of string guid to common uuid | Narr the Reg | 2022-06-07 | 2 | -33/+38 |
| | |||||
* | Merge pull request #8374 from german77/asnycvibrations | bunnei | 2022-05-28 | 2 | -2/+33 |
|\ | | | | | input_common: Make vibration request async | ||||
| * | input_common: Make vibration request async | Narr the Reg | 2022-05-23 | 2 | -2/+33 |
| | | |||||
* | | input_common: touch: Rewrite touch driver to support multiple touch points | german77 | 2022-05-23 | 2 | -31/+110 |
|/ | |||||
* | Revert "gc_adapter: fix libusb import on GCC11.2" | Morph | 2022-05-02 | 1 | -4/+0 |
| | | | | This reverts commit f72f4377f4cbbe45e5a43bb67c7245737ffa135f. | ||||
* | gc_adapter: fix libusb import on GCC11.2 | Levi Behunin | 2022-05-02 | 1 | -0/+4 |
| | | | | Just to silence an intermittent error. GCC11.2 complains cannot find 'libusb.h' during a fresh build. | ||||
* | chore: add missing SPDX tags | Andrea Pappacoda | 2022-04-28 | 2 | -6/+4 |
| | | | | Follow-up to 99ceb03a1cfcf35968cab589ea188a8c406cda52 | ||||
* | general: Convert source file copyright comments over to SPDX | Morph | 2022-04-23 | 8 | -24/+16 |
| | | | | | This formats all copyright comments according to SPDX formatting guidelines. Additionally, this resolves the remaining GPLv2 only licensed files by relicensing them to GPLv2.0-or-later. | ||||
* | Merge pull request #7978 from german77/sideway | bunnei | 2022-04-22 | 6 | -0/+71 |
|\ | | | | | input_common: Map sticks correctly when mapped sideways | ||||
| * | input_common: Map sticks correctly when mapped sideways | Narr the Reg | 2022-03-22 | 6 | -0/+71 |
| | | |||||
* | | input_common: Replace lock_guard with scoped_lock | Merry | 2022-04-07 | 1 | -6/+6 |
|/ | |||||
* | input_common: Reduce unused includes | ameerj | 2022-03-20 | 1 | -1/+0 |
| | |||||
* | Merge pull request #7859 from german77/battery_again | bunnei | 2022-02-24 | 3 | -15/+18 |
|\ | | | | | input_common: Remove battery duplicated struct and update every button press | ||||
| * | input_common: Remove battery duplicated struct and update every button press | german77 | 2022-02-07 | 3 | -15/+18 |
| | | |||||
* | | Merge pull request #7852 from Morph1984/new-uuid | bunnei | 2022-02-11 | 7 | -11/+11 |
|\ \ | | | | | | | common: Revise and fix the UUID implementation | ||||
| * | | general: Rename NewUUID to UUID, and remove the previous UUID impl | Morph | 2022-02-05 | 8 | -13/+13 |
| | | | | | | | | | | | | This completes the removal of the old UUID implementation. | ||||
| * | | input/hid: Migrate to the new UUID implementation | Morph | 2022-02-05 | 8 | -17/+17 |
| |/ | |||||
* / | yuzu: Add auto center on right click | german77 | 2022-02-07 | 1 | -3/+3 |
|/ | |||||
* | Merge pull request #7839 from german77/battery | bunnei | 2022-02-05 | 1 | -3/+2 |
|\ | | | | | yuzu: ui: Improve battery symbols | ||||
| * | yuzu: ui: Improve battery symbols | Narr the Reg | 2022-02-02 | 1 | -3/+2 |
| | | |||||
* | | input_common: Add home and hard touch press buttons to UDP controllers | german77 | 2022-01-30 | 2 | -3/+16 |
|/ | |||||
* | input_common: Add DS5 to HD rumble list | Narr the Reg | 2022-01-27 | 1 | -2/+3 |
| | |||||
* | input_common/udp_client: Replace deprecated from_string()/to_ulong() functions | Lioncash | 2022-01-24 | 1 | -2/+2 |
| | | | | These are deprecated and make_address variants and to_uint() should be used instead. | ||||
* | input_common/udp_client: Prevent unnecessary string copies | Lioncash | 2022-01-24 | 2 | -4/+4 |
| | | | | | We can also remove some redundant const on the return values, since these don't do anything | ||||
* | Merge pull request #7735 from german77/udp_battery | bunnei | 2022-01-22 | 2 | -0/+25 |
|\ | | | | | input_common: Report battery for UDP controllers | ||||
| * | input_common: Report battery for UDP controllers | Narr the Reg | 2022-01-17 | 2 | -0/+25 |
| | | |||||
* | | Merge pull request #7715 from gidoly/patch-4 | bunnei | 2022-01-19 | 1 | -2/+2 |
|\ \ | | | | | | | Xbox controller default name nit pick | ||||
| * | | Xbox controller default name nit pick | gidoly | 2022-01-15 | 1 | -2/+2 |
| |/ | | | | | Discord User moon lacer pointed us that official name is 'Xbox' not 'XBox' | ||||
* | | Merge pull request #7725 from german77/mouse_in_motion | bunnei | 2022-01-19 | 2 | -1/+34 |
|\ \ | | | | | | | input_common: Reintroduce motion from mouse and use button names | ||||
| * | | input_common: Reintroduce motion from mouse and use button names | german77 | 2022-01-17 | 2 | -1/+34 |
| |/ | |||||
* / | input_common: fix copy-paste error | Valeri | 2022-01-17 | 1 | -1/+1 |
|/ | | | Found by static analysis with PVS-Studio. | ||||
* | Change default name for ps controllers | gidoly | 2022-01-15 | 1 | -0/+6 |
| | | | | Minor nitpick Code is from narr | ||||
* | Merge pull request #7633 from german77/hotkeys | bunnei | 2022-01-11 | 3 | -4/+7 |
|\ | | | | | yuzu: Add controller hotkeys | ||||
| * | yuzu: Add controller hotkeys | german77 | 2022-01-07 | 3 | -4/+7 |
| | | |||||
* | | Merge pull request #7687 from german77/tas_handle | Morph | 2022-01-10 | 1 | -7/+24 |
|\ \ | | | | | | | input_common: Handle errors on TAS scripts | ||||
| * | | input_common: Handle errors on TAS scripts | german77 | 2022-01-08 | 1 | -7/+24 |
| |/ | |||||
* / | input_common: Fix udp motion not automapping to both sides | german77 | 2022-01-07 | 1 | -8/+16 |
|/ | |||||
* | Merge pull request #7302 from VPeruS/check-deadlock | bunnei | 2021-12-18 | 1 | -35/+39 |
|\ | | | | | [input_common] Fixed thread hang | ||||
| * | [input_common] Move variable declaration closer to usage | vperus | 2021-12-17 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | MSVC supplied with VS2022 generates "warning C4189: 'CALIBRATION_THRESHOLD': local variable is initialized but not referenced" which is treated as an error. Circumvent it by moving constexpr variable directly into body of lambda function. | ||||
| * | Revert of b01aa72 | vperus | 2021-11-29 | 1 | -35/+39 |
| | | | | | | | | Caused worker_thread to be stuck in Stage1Completed state until job's destruction. | ||||
* | | Merge pull request #7577 from v1993/patch-2 | Narr the Reg | 2021-12-14 | 1 | -3/+4 |
|\ \ | | | | | | | input/SDL: Update SDL hints | ||||
| * | | input/SDL: Update SDL hints | Valeri | 2021-12-14 | 1 | -3/+4 |
| | | | | | | | | | | | | | | | SDL_HINT_JOYSTICK_HIDAPI_SWITCH_HOME_LED is no longer needed thanks to new default in SDL 2.0.18. SDL_HINT_JOYSTICK_HIDAPI_XBOX is reported to cause conflicts with native driver Xbox driver on Linux, and Xbox controllers don't benefit from hidapi anyways. | ||||
* | | | Merge pull request #7575 from lioncash/input | bunnei | 2021-12-14 | 14 | -36/+38 |
|\ \ \ | | | | | | | | | input_engine: Minor object churn cleanup | ||||
| * | | | input_engine: Take BasicMotion by const reference with SetMotion() and TriggerOnMotionChange() | Lioncash | 2021-12-13 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | | Copies the BasicMotion instance once instead of twice. | ||||
| * | | | input_engine: Pass VibrationStatus by const reference in SetRumble() | Lioncash | 2021-12-13 | 4 | -6/+8 |
| | | | | | | | | | | | | | | | | Avoids creating copies of the struct where not necessary. | ||||
| * | | | input_engine: std::move engine name where applicable | Lioncash | 2021-12-13 | 14 | -28/+28 |
| |/ / | | | | | | | | | | | | | We can allow the name to be moved into, allowing allocations to be avoided. | ||||
* | | | tas_input: Avoid minor copies in Read/WriteCommandButtons() | Lioncash | 2021-12-13 | 1 | -2/+2 |
| | | | | | | | | | | | | We don't need to copy the whole pair | ||||
* | | | tas_input: Remove unnecessary semicolon | Lioncash | 2021-12-13 | 1 | -1/+1 |
| | | | | | | | | | | | | Resolves a -Wextra-semi warning | ||||
* | | | tas_input: Execute clear() even if empty | Lioncash | 2021-12-13 | 1 | -3/+2 |
| | | | | | | | | | | | | | | | clear() when empty is simply a no-op, so we can get rid of the check here and let the stdlib do it for us. | ||||
* | | | tas_input: Remove unnecessary includes | Lioncash | 2021-12-13 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | Gets rid of indirect includes and includes only what the interface needs. | ||||
* | | | tas_input: std::move strings into vector | Lioncash | 2021-12-13 | 1 | -21/+24 |
| | | | | | | | | | | | | | | | While we're in the same area, we can also avoid performing std::stoi in a loop when it only needs to be performed once. | ||||
* | | | tas_input: Use istringstream over stringstream | Lioncash | 2021-12-13 | 1 | -2/+2 |
| | | | | | | | | | | | | | | | This is only using the input facilities, so we don't need to use the fully-fleged stringstream. | ||||
* | | | tas_input: Use u8string_view instead of u8string | Lioncash | 2021-12-13 | 2 | -6/+7 |
| | | | | | | | | | | | | Same behavior, but without the potential for extra allocations. | ||||
* | | | tas_input: Remove unused std::smatch variable | Lioncash | 2021-12-13 | 1 | -2/+0 |
| | | | | | | | | | | | | This also means we can get rid of the dependency on <regex> | ||||
* | | | tas_input: Amend -Wdocumentation warnings | Lioncash | 2021-12-13 | 2 | -28/+30 |
| | | | | | | | | | | | | Parameters shouldn't have the colon by their name. | ||||
* | | | tas_input: Make TasAxes enum an enum class | Lioncash | 2021-12-13 | 2 | -5/+14 |
|/ / | | | | | | | | | Prevents these values from potentially clashing with anything in other headers. | ||||
* / | input_common: Fix error with thread name | Narr the Reg | 2021-11-30 | 1 | -2/+1 |
|/ | |||||
* | input_common: Fully implement UDP controllers | Narr the Reg | 2021-11-26 | 2 | -8/+254 |
| | |||||
* | input_common: Move button names to the frontend | german77 | 2021-11-25 | 6 | -33/+35 |
| | |||||
* | input_common: Fix SDL controller with inverted axis | german77 | 2021-11-25 | 1 | -23/+0 |
| | |||||
* | kraken: Address comments from review | german77 | 2021-11-25 | 10 | -23/+11 |
| | | | | Fix compiler bug | ||||
* | core/hid: Improve accuary of mouse implementation | german77 | 2021-11-25 | 2 | -8/+14 |
| | |||||
* | core/hid: Fully implement native mouse | german77 | 2021-11-25 | 2 | -6/+32 |
| | |||||
* | input_common: Allow keyboard to be backwards compatible | german77 | 2021-11-25 | 2 | -14/+52 |
| | |||||
* | core/hid: Improve accuracy of the keyboard implementation | german77 | 2021-11-25 | 2 | -4/+56 |
| | |||||
* | core/hid: Prevent Emulated controller from flapping with multiple inputs devices | german77 | 2021-11-25 | 2 | -23/+12 |
| | |||||
* | second commit lion review | german77 | 2021-11-25 | 6 | -19/+18 |
| | |||||
* | settings: Fix Debug controller type options | german77 | 2021-11-25 | 1 | -1/+0 |
| | |||||
* | kraken: Address comments from review | german77 | 2021-11-25 | 7 | -23/+23 |
| | | | | start lion review | ||||
* | input_common: Revert deleted TAS functions | german77 | 2021-11-25 | 2 | -18/+19 |
| | |||||
* | input_common: Fix GC adapter initialization | german77 | 2021-11-25 | 1 | -12/+12 |
| | | | | Fix GC controller | ||||
* | input_common: Fix UDP uuid | german77 | 2021-11-25 | 2 | -1/+11 |
| | |||||
* | input_common: Add multiple vibration curves | german77 | 2021-11-25 | 1 | -14/+19 |
| | |||||
* | settings: Fix mouse and keyboard mappings | german77 | 2021-11-25 | 2 | -1/+17 |
| | |||||
* | kraken: Address comments from review | german77 | 2021-11-25 | 2 | -2/+4 |
| | | | | review fixes | ||||
* | service/hid: Fix gesture input | german77 | 2021-11-25 | 2 | -2/+29 |
| | |||||
* | core/hid: Fix rumble too strong at 1% | german77 | 2021-11-25 | 1 | -1/+19 |
| | |||||
* | core/hid: Only signal when needed | german77 | 2021-11-25 | 5 | -23/+84 |
| | |||||
* | kraken: Fix errors from rebase and format files | german77 | 2021-11-25 | 3 | -3/+4 |
| | |||||
* | core/hid: Add output devices | german77 | 2021-11-25 | 4 | -6/+14 |
| | |||||
* | input_common: Rewrite SDL | german77 | 2021-11-25 | 2 | -0/+1035 |
| | |||||
* | input_common: Rewrite udp client | german77 | 2021-11-25 | 2 | -0/+491 |
| | |||||
* | input_common: Rewrite gc_adapter | german77 | 2021-11-25 | 4 | -0/+1131 |
| | |||||
* | input_common: Rewrite touch | german77 | 2021-11-25 | 2 | -0/+97 |
| | |||||
* | input_common: Rewrite mouse | german77 | 2021-11-25 | 2 | -0/+215 |
| | |||||
* | input_common: Rewrite keyboard | german77 | 2021-11-25 | 2 | -0/+79 |