Skip to content

Commit 20c5c06

Browse files
authored
fix: Support non-extended gamepads and virtual controllers (#279)
1 parent 7bc6c13 commit 20c5c06

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

OpoLua/View Controllers/ProgramViewController.swift

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -382,19 +382,21 @@ class ProgramViewController: UIViewController {
382382

383383
func configureControllers() {
384384
for controller in GCController.controllers() {
385-
controller.extendedGamepad?.buttonHome?.pressedChangedHandler = self.pressedChangeHandler(for: .home)
386-
controller.extendedGamepad?.buttonA.pressedChangedHandler = self.pressedChangeHandler(for: .a)
387-
controller.extendedGamepad?.buttonB.pressedChangedHandler = self.pressedChangeHandler(for: .b)
388-
controller.extendedGamepad?.dpad.up.pressedChangedHandler = self.pressedChangeHandler(for: .up)
389-
controller.extendedGamepad?.dpad.down.pressedChangedHandler = self.pressedChangeHandler(for: .down)
390-
controller.extendedGamepad?.dpad.left.pressedChangedHandler = self.pressedChangeHandler(for: .left)
391-
controller.extendedGamepad?.dpad.right.pressedChangedHandler = self.pressedChangeHandler(for: .right)
392-
controller.extendedGamepad?.leftThumbstick.up.pressedChangedHandler = self.pressedChangeHandler(for: .up)
393-
controller.extendedGamepad?.leftThumbstick.down.pressedChangedHandler = self.pressedChangeHandler(for: .down)
394-
controller.extendedGamepad?.leftThumbstick.left.pressedChangedHandler = self.pressedChangeHandler(for: .left)
395-
controller.extendedGamepad?.leftThumbstick.right.pressedChangedHandler = self.pressedChangeHandler(for: .right)
396-
controller.extendedGamepad?.buttonOptions?.pressedChangedHandler = self.pressedChangeHandler(for: .options)
397-
controller.extendedGamepad?.buttonMenu.pressedChangedHandler = self.pressedChangeHandler(for: .menu)
385+
let input = controller.physicalInputProfile
386+
387+
for dpad in input.allDpads {
388+
dpad.left.pressedChangedHandler = self.pressedChangeHandler(for: .left)
389+
dpad.right.pressedChangedHandler = self.pressedChangeHandler(for: .right)
390+
dpad.up.pressedChangedHandler = self.pressedChangeHandler(for: .up)
391+
dpad.down.pressedChangedHandler = self.pressedChangeHandler(for: .down)
392+
}
393+
394+
let buttons = input.buttons
395+
buttons[GCInputButtonHome]?.pressedChangedHandler = self.pressedChangeHandler(for: .home)
396+
buttons[GCInputButtonA]?.pressedChangedHandler = self.pressedChangeHandler(for: .a)
397+
buttons[GCInputButtonB]?.pressedChangedHandler = self.pressedChangeHandler(for: .b)
398+
buttons[GCInputButtonOptions]?.pressedChangedHandler = self.pressedChangeHandler(for: .options)
399+
buttons[GCInputButtonMenu]?.pressedChangedHandler = self.pressedChangeHandler(for: .menu)
398400
}
399401
}
400402

@@ -439,10 +441,7 @@ class ProgramViewController: UIViewController {
439441
let configuration = GCVirtualController.Configuration()
440442
configuration.elements = [GCInputButtonA,
441443
GCInputButtonB,
442-
GCInputDirectionPad,
443-
GCInputDirectionPad,
444-
GCInputButtonHome,
445-
GCInputButtonOptions]
444+
GCInputDirectionPad]
446445
virtualController = GCVirtualController(configuration: configuration)
447446
virtualController?.connect()
448447
}

0 commit comments

Comments
 (0)