dualsense_api 1.0.1 copy "dualsense_api: ^1.0.1" to clipboard
dualsense_api: ^1.0.1 copied to clipboard

Control a Sony DualSense (PS5) controller over USB on macOS via HIDAPI + Dart FFI: read sticks, triggers, buttons, battery and audio jack in real time, and command the lightbar color.

example/example.dart

// Minimal usage example for `dualsense_api`.
//
// Requires HIDAPI installed (`brew install hidapi`, see README) and a
// Sony DualSense (PS5) controller connected over USB.
//
// Run with:
//   dart run example/example.dart

import 'dart:io';

import 'package:dualsense_api/controllers/dualsense_controller.dart';
import 'package:dualsense_api/dualsense_bindings.dart';

Future<void> main() async {
  final bindings = switch (Platform.operatingSystem) {
    'macos' => DualSenseBindings.macOS(),
    _ => throw UnsupportedError('Platform not supported yet'),
  };

  final controller = DualSenseController(bindings);
  final connected = await controller.connect();

  if (!connected) {
    print('No DualSense found. Is it connected via USB?');
    return;
  }

  print('DualSense connected, listening for events (Ctrl+C to exit)...');

  // Bright cyan on connect.
  controller.setLedColor(0, 200, 255);

  controller.onInputChanged.listen((state) {
    print(state);

    if (state.isPsPressed) {
      print('PS button pressed — switching lights to red.');
      controller.setLedColor(255, 0, 0);
    }
  });

  ProcessSignal.sigint.watch().listen((signal) {
    print('\nReleasing native resources...');
    controller.dispose();
    exit(0);
  });
}
0
likes
140
points
31
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Control a Sony DualSense (PS5) controller over USB on macOS via HIDAPI + Dart FFI: read sticks, triggers, buttons, battery and audio jack in real time, and command the lightbar color.

Repository (GitHub)
View/report issues

Topics

#ffi #gamepad #hid #macos #desktop

License

MIT (license)

Dependencies

equatable, ffi

More

Packages that depend on dualsense_api