summaryrefslogtreecommitdiff
path: root/app/mac/controller-adapter-gamepad.mm
blob: f1d8db886469555cb64312bf0ee9e70aee349333 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "controller-adapter-gamepad.hh"

@implementation ControllerAdapterGamepad

- (instancetype)initWithProfile:(GCExtendedGamepad*)profile
{
	self = [super init];
	if (self)
	{
		_profile = profile;
	}
	return self;
}

- (nes::button_mask)readPressedButtons
{
	auto res = nes::button_mask{};
	if ([[[_profile dpad] up] isPressed]) { res.add(nes::buttons::up); }
	if ([[[_profile dpad] down] isPressed]) { res.add(nes::buttons::down); }
	if ([[[_profile dpad] left] isPressed]) { res.add(nes::buttons::left); }
	if ([[[_profile dpad] right] isPressed]) { res.add(nes::buttons::right); }
	if ([[_profile buttonA] isPressed]) { res.add(nes::buttons::a); }
	if ([[_profile buttonB] isPressed]) { res.add(nes::buttons::b); }
	if ([[_profile leftTrigger] isPressed]) { res.add(nes::buttons::select); }
	if ([[_profile rightTrigger] isPressed]) { res.add(nes::buttons::start); }
	return res;
}

@end