Differences From Artifact [50efe01c0d]:
- File src/hid/OHNintendoSwitchExtendedGamepad.m — part of check-in [3777558ccd] at 2024-11-02 02:24:10 on branch trunk — ObjFWHID: Make sure `analog` is always set (user: js, size: 5506) [annotate] [blame] [check-ins using]
To Artifact [70416dbdb2]:
- File
src/hid/OHNintendoSwitchExtendedGamepad.m
— part of check-in
[bc3a7747d9]
at
2024-11-03 15:46:25
on branch trunk
— ObjFWHID: Properly hide private methods
Also fixes compiling XInput with GCC. (user: js, size: 5531) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | * version 3.0 along with this program. If not, see * <https://www.gnu.org/licenses/>. */ #include "config.h" #import "OHNintendoSwitchExtendedGamepad.h" #import "OFDictionary.h" #import "OHGameControllerAxis.h" #import "OHGameControllerButton.h" #import "OHGameControllerDirectionalPad.h" static OFString *const buttonNames[] = { @"A", @"B", @"X", @"Y", @"L", @"R", @"ZL", @"ZR", @"Left Thumbstick", @"Right Thumbstick", @"+", @"-" }; static const size_t numButtons = sizeof(buttonNames) / sizeof(*buttonNames); @implementation OHNintendoSwitchExtendedGamepad @synthesize buttons = _buttons, directionalPads = _directionalPads; - (instancetype)init { self = [super init]; @try { void *pool = objc_autoreleasePoolPush(); OFMutableDictionary *buttons = [OFMutableDictionary dictionaryWithCapacity: numButtons]; OFMutableDictionary *directionalPads; OHGameControllerAxis *xAxis, *yAxis; OHGameControllerDirectionalPad *directionalPad; OHGameControllerButton *up, *down, *left, *right; for (size_t i = 0; i < numButtons; i++) { | > > > > > > > > > | < | | | < | | < | | | | | | | < | | < | | | | | | | < | < | | < | | | | | | | | | | | | | 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 | * version 3.0 along with this program. If not, see * <https://www.gnu.org/licenses/>. */ #include "config.h" #import "OHNintendoSwitchExtendedGamepad.h" #import "OHNintendoSwitchExtendedGamepad+Private.h" #import "OFDictionary.h" #import "OHGameControllerAxis.h" #import "OHGameControllerButton.h" #import "OHGameControllerDirectionalPad.h" #import "OHGameControllerDirectionalPad+Private.h" #import "OHGameControllerElement.h" #import "OHGameControllerElement+Private.h" static OFString *const buttonNames[] = { @"A", @"B", @"X", @"Y", @"L", @"R", @"ZL", @"ZR", @"Left Thumbstick", @"Right Thumbstick", @"+", @"-" }; static const size_t numButtons = sizeof(buttonNames) / sizeof(*buttonNames); @implementation OHNintendoSwitchExtendedGamepad @synthesize buttons = _buttons, directionalPads = _directionalPads; - (instancetype)init { OF_INVALID_INIT_METHOD } - (instancetype)oh_init { self = [super init]; @try { void *pool = objc_autoreleasePoolPush(); OFMutableDictionary *buttons = [OFMutableDictionary dictionaryWithCapacity: numButtons]; OFMutableDictionary *directionalPads; OHGameControllerAxis *xAxis, *yAxis; OHGameControllerDirectionalPad *directionalPad; OHGameControllerButton *up, *down, *left, *right; for (size_t i = 0; i < numButtons; i++) { OHGameControllerButton *button = [OHGameControllerButton oh_elementWithName: buttonNames[i] analog: false]; [buttons setObject: button forKey: buttonNames[i]]; } [buttons makeImmutable]; _buttons = [buttons retain]; directionalPads = [OFMutableDictionary dictionaryWithCapacity: 3]; xAxis = [OHGameControllerAxis oh_elementWithName: @"X" analog: true]; yAxis = [OHGameControllerAxis oh_elementWithName: @"Y" analog: true]; directionalPad = [OHGameControllerDirectionalPad oh_padWithName: @"Left Thumbstick" xAxis: xAxis yAxis: yAxis analog: true]; [directionalPads setObject: directionalPad forKey: @"Left Thumbstick"]; xAxis = [OHGameControllerAxis oh_elementWithName: @"RX" analog: true]; yAxis = [OHGameControllerAxis oh_elementWithName: @"RY" analog: true]; directionalPad = [OHGameControllerDirectionalPad oh_padWithName: @"Right Thumbstick" xAxis: xAxis yAxis: yAxis analog: true]; [directionalPads setObject: directionalPad forKey: @"Right Thumbstick"]; up = [OHGameControllerButton oh_elementWithName: @"D-Pad Up" analog: false]; down = [OHGameControllerButton oh_elementWithName: @"D-Pad Down" analog: false]; left = [OHGameControllerButton oh_elementWithName: @"D-Pad Left" analog: false]; right = [OHGameControllerButton oh_elementWithName: @"D-Pad Right" analog: false]; directionalPad = [OHGameControllerDirectionalPad oh_padWithName: @"D-Pad" up: up down: down left: left right: right analog: false]; [directionalPads setObject: directionalPad forKey: @"D-Pad"]; [directionalPads makeImmutable]; _directionalPads = [directionalPads retain]; objc_autoreleasePoolPop(pool); } @catch (id e) { |
︙ | ︙ |