diff options
Diffstat (limited to 'app/mac/controller-adapter-gamepad.mm')
| -rw-r--r-- | app/mac/controller-adapter-gamepad.mm | 32 |
1 files changed, 28 insertions, 4 deletions
diff --git a/app/mac/controller-adapter-gamepad.mm b/app/mac/controller-adapter-gamepad.mm index 132fa85..f1d8db8 100644 --- a/app/mac/controller-adapter-gamepad.mm +++ b/app/mac/controller-adapter-gamepad.mm @@ -1,5 +1,29 @@ -// -// Created by Hannes Schulze on 29.01.25. -// - #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
\ No newline at end of file |
