2 unstable releases
new 0.2.0 | Apr 25, 2025 |
---|---|
0.1.0 | Apr 21, 2025 |
#434 in Hardware support
76 downloads per month
27KB
575 lines
Mirajazz
A Rust crate for interfacing with Mirabox and Ajazz "stream controller" devices
This is a hardfork of elgato-streamdeck crate, with notable differences:
- No Elgato-related code. For that you should use an original library
- No device-specific code in the library, which devices to support is up to you
- No async interface (for now), due to hidapi-rs lack of proper async support
The idea is to have a common lowlevel library serving as a backbone for device-specific OpenDeck plugins
udev rules
For using on Linux, you are required to bring your own udev rules for all the VID/PID pairs you want to support. Without the udev rules, you wouldn't be able to connect to the devices from the userspace.
Here's an example for Ajazz AKP03R (VID 0x0300, PID 0x1003):
SUBSYSTEM=="usb", ATTR{idVendor}=="0300", ATTR{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
SUBSYSTEM=="usb", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTR{idVendor}=="0300", ATTR{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
KERNEL=="hidraw*", SUBSYSTEM=="hidraw", ATTRS{idVendor}=="0300", ATTRS{idProduct}=="1003", MODE="0660", TAG+="uaccess", GROUP="plugdev"
Acknowledgments
- @TheJebForge for the elgato-streamdeck library
- @ZCube for initial ajazz devices support in the original library
- @teras for more devices and fixes in the original library
- @nekename for reviewing my code for "v2" devices and maintaining original library
Commit history of the original library can be found here
Dependencies
~2–13MB
~91K SLoC