15
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
|
* You should have received a copy of the GNU Lesser General Public License
* version 3.0 along with this program. If not, see
* <https://www.gnu.org/licenses/>.
*/
#include "config.h"
#import "OHXInputExtendedGamepad.h"
#import "OFDictionary.h"
#import "OHGameControllerAxis.h"
#import "OHGameControllerButton.h"
#import "OHGameControllerDirectionalPad.h"
#import "OHXInputGameController.h"
static OFString *const buttonNames[] = {
@"A", @"B", @"X", @"Y", @"LB", @"RB", @"LT", @"RT", @"LSB", @"RSB",
@"Start", @"Back", @"Guide"
};
static const size_t numButtons = sizeof(buttonNames) / sizeof(*buttonNames);
@implementation OHXInputExtendedGamepad
@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++) {
OHGameControllerButton *button;
if ([buttonNames[i] isEqual: @"Guide"] &&
OHXInputVersion == 910)
continue;
button = [[OHGameControllerButton alloc]
initWithName: buttonNames[i]];
[buttons setObject: button forKey: buttonNames[i]];
}
[buttons makeImmutable];
|
|
<
|
>
>
>
>
>
|
|
15
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
|
* You should have received a copy of the GNU Lesser General Public License
* version 3.0 along with this program. If not, see
* <https://www.gnu.org/licenses/>.
*/
#include "config.h"
#import "OHXbox360Gamepad.h"
#import "OFDictionary.h"
#import "OHGameControllerAxis.h"
#import "OHGameControllerButton.h"
#import "OHGameControllerDirectionalPad.h"
static OFString *const buttonNames[] = {
@"A", @"B", @"X", @"Y", @"LB", @"RB", @"LT", @"RT", @"LSB", @"RSB",
@"Start", @"Back", @"Guide"
};
static const size_t numButtons = sizeof(buttonNames) / sizeof(*buttonNames);
@implementation OHXbox360Gamepad
@synthesize buttons = _buttons, directionalPads = _directionalPads;
- (instancetype)init
{
return [self initWithHasGuideButton: true];
}
- (instancetype)initWithHasGuideButton: (bool)hasGuideButton
{
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;
if ([buttonNames[i] isEqual: @"Guide"] &&
!hasGuideButton)
continue;
button = [[OHGameControllerButton alloc]
initWithName: buttonNames[i]];
[buttons setObject: button forKey: buttonNames[i]];
}
[buttons makeImmutable];
|