Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/magicien/joyconswift

IOKit wrapper for Nintendo Joy-Con and ProController (macOS, Swift)
https://github.com/magicien/joyconswift

gamepad iokit joy-con macos nintendo-switch pro-controller swift

Last synced: 2 days ago
JSON representation

IOKit wrapper for Nintendo Joy-Con and ProController (macOS, Swift)

Awesome Lists containing this project

README

        

# JoyConSwift
IOKit wrapper for Nintendo Joy-Con and ProController (macOS, Swift)

## Installation

### Using [CocoaPods](http://cocoapods.org/)

Add the following to your [Podfile](http://guides.cocoapods.org/using/the-podfile.html):

```rb
pod 'JoyConSwift'
```

## Set USB Capability

To use controllers, you need to check `Signing & Capabilities` > `App SandBox` > `USB` in your Xcode project.

usb_capability

## Usage

```swift
import JoyConSwift

// Initialize the manager
let manager = JoyConManager()

// Set connection event callbacks
manager.connectHandler = { controller in
// Do something with the controller
controller.setPlayerLights(l1: .on, l2: .off, l3: .off, l4: .off)
controller.enableIMU(enable: true)
controller.setInputMode(mode: .standardFull)
controller.buttonPressHandler = { button in
if button == .A {
// Do something with the A button
}
}
}
manager.disconnectHandler = { controller in
// Clean the controller data
}

// Start waiting for the connection events
manager.runAsync()
```

## Documentation

See [JoyConSwift Documentation](https://magicien.github.io/JoyConSwift/)

## Thanks to

[dekuNukem/Nintendo_Switch_Reverse_Engineering](https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering) - A look at inner workings of Joycon and Nintendo Switch

## See also

[JoyKeyMapper](https://github.com/magicien/JoyKeyMapper) - Nintendo Joy-Con/ProController Key mapper for macOS