36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
#import "OFInitializationFailedException.h"
#import "OFInvalidArgumentException.h"
#import "OFOpenItemFailedException.h"
#import "OFOutOfRangeException.h"
#import "OFReadFailedException.h"
static const uint16_t vendorIDNintendo = 0x057E;
static const uint16_t productIDLeftJoycon = 0x2006;
static const uint16_t productIDRightJoycon = 0x2007;
static const uint16_t productIDN64Controller = 0x2019;
@interface OFGameController ()
- (instancetype)of_initWithPath: (OFString *)path OF_METHOD_FAMILY(init);
@end
static const uint16_t buttons[] = {
BTN_A, BTN_B, BTN_C, BTN_X, BTN_Y, BTN_Z, BTN_TL, BTN_TR, BTN_TL2,
BTN_TR2, BTN_SELECT, BTN_START, BTN_MODE, BTN_THUMBL, BTN_THUMBR,
|
>
>
>
>
>
>
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
#import "OFInitializationFailedException.h"
#import "OFInvalidArgumentException.h"
#import "OFOpenItemFailedException.h"
#import "OFOutOfRangeException.h"
#import "OFReadFailedException.h"
static const uint16_t vendorIDNintendo = 0x057E;
static const uint16_t vendorIDSony = 0x054C;
/* Nintendo controllers */
static const uint16_t productIDLeftJoycon = 0x2006;
static const uint16_t productIDRightJoycon = 0x2007;
static const uint16_t productIDN64Controller = 0x2019;
/* Sony controllers */
static const uint16_t productIDDualSense = 0x0CE6;
@interface OFGameController ()
- (instancetype)of_initWithPath: (OFString *)path OF_METHOD_FAMILY(init);
@end
static const uint16_t buttons[] = {
BTN_A, BTN_B, BTN_C, BTN_X, BTN_Y, BTN_Z, BTN_TL, BTN_TR, BTN_TL2,
BTN_TR2, BTN_SELECT, BTN_START, BTN_MODE, BTN_THUMBL, BTN_THUMBR,
|
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
return OFGameControllerCPadDownButton;
case BTN_Y:
return OFGameControllerCPadLeftButton;
case BTN_C:
return OFGameControllerCPadRightButton;
case BTN_Z:
return OFGameControllerCaptureButton;
}
}
switch (button) {
case BTN_Y:
return OFGameControllerNorthButton;
case BTN_A:
|
>
>
>
>
>
>
>
>
|
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
return OFGameControllerCPadDownButton;
case BTN_Y:
return OFGameControllerCPadLeftButton;
case BTN_C:
return OFGameControllerCPadRightButton;
case BTN_Z:
return OFGameControllerCaptureButton;
}
} else if (vendorID == vendorIDSony &&
productID == productIDDualSense) {
switch (button) {
case BTN_X:
return OFGameControllerNorthButton;
case BTN_Y:
return OFGameControllerWestButton;
}
}
switch (button) {
case BTN_Y:
return OFGameControllerNorthButton;
case BTN_A:
|