https://github.com/mortalflesh/xboxcontroller
F# Wrapper for XBoxController .NET library
https://github.com/mortalflesh/xboxcontroller
xbox-controller xbox-one
Last synced: 9 months ago
JSON representation
F# Wrapper for XBoxController .NET library
- Host: GitHub
- URL: https://github.com/mortalflesh/xboxcontroller
- Owner: MortalFlesh
- License: mit
- Created: 2020-02-10T22:45:44.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2020-02-20T16:34:37.000Z (over 6 years ago)
- Last Synced: 2025-04-09T15:12:38.760Z (about 1 year ago)
- Topics: xbox-controller, xbox-one
- Language: F#
- Size: 22.5 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
XBox Controller (Wrapper)
=========================
[](https://www.nuget.org/packages/MF.XBoxController)
[](https://dev.azure.com/MortalFlesh/XBoxController/_build/latest?definitionId=1)
[](https://travis-ci.com/MortalFlesh/XBoxController)
> It is F# wrapper for [BrandonPotter/XBoxController](https://github.com/BrandonPotter/XBoxController)
For now, I'm only able to use it on Windows machine, since it uses `kernel32.dll` inside, which is only on Windows.
## Simple example
```fs
async {
let! controller = Controller.waitFor Controller.Any
printfn "Controller is connected (%A)" controller
let! _ =
[
controller |> Controller.onButtonPressedAsync Medium (function
| button -> printfn "Button pressed %A" button
)
controller |> Controller.onPositionChangedAsync Medium (function
| PositionChanged.Lt (TriggerPressedPower power) -> printfn "Lt -> %A" power
| PositionChanged.Rt (TriggerPressedPower power) -> printfn "Rt -> %A" power
| PositionChanged.ThumbPadLeft { X = x; Y = y } -> printfn "ThumbPadLeft X: %A, Y: %A" x y
| PositionChanged.ThumbPadRight { X = x; Y = y } -> printfn "ThumbPadRight X: %A, Y: %A" x y
)
]
|> Async.Parallel
return ()
}
```