16 个不稳定版本 (6 个破坏性更新)
新 0.7.1 | 2024 年 8 月 13 日 |
---|---|
0.7.0 | 2024 年 6 月 16 日 |
0.6.1 | 2024 年 5 月 16 日 |
0.5.0 | 2023 年 10 月 15 日 |
0.2.2 | 2022 年 11 月 7 日 |
在 硬件支持 中排名第 139
每月下载量 33
90KB
1.5K SLoC
elgato-streamdeck
通过 hidapi 与 Elgato Stream Decks 交互的库。主要基于 python-elgato-streamdeck 和部分基于 Rust Stream Deck 库。
这个库是为了作为 Rust Stream Deck 库的更好设计的替代品而创建的。我只是从这两个库中提取了代码,并使其更容易使用。
Linux 的 udev 规则
如果你在系统上使用 systemd,你可能需要安装 udev 规则,以便从用户空间连接到 Stream Decks。
你可以通过以下命令将包含的 40-streamdeck.rules
文件复制到 udev/rules.d/
cp 40-streamdeck.rules /etc/udev/rules.d/
然后重新加载 udev 规则
sudo udevadm control --reload-rules
拔掉并重新插上设备也应该有帮助
你还应该创建一个名为 "plugdev" 的组,并将自己添加到该组中,这样你就可以访问设备。你还需要重新启动用户会话,以便用户组更改生效
示例
// Create instance of HidApi
let hid = new_hidapi();
// List devices and unsafely take first one
let (kind, serial) = StreamDeck::list_devices(&hid).remove(0);
// Connect to the device
let mut device = StreamDeck::connect(&hid, kind, &serial)
.expect("Failed to connect");
// Print out some info from the device
println!(
"Connected to '{}' with version '{}'",
device.serial_number().unwrap(),
device.firmware_version().unwrap()
);
// Set device brightness
device.set_brightness(35).unwrap();
// Use image-rs to load an image
let image = open("no-place-like-localhost.jpg").unwrap();
// Write it to the device
device.set_button_image(7, image).unwrap();
// Flush
if device.updated {
device.flush().unwrap();
}
状态
- 使用 API 查找设备、连接到它们并与它们交互非常方便
- 异步读取按钮
支持的设备
设备的支持与上述库相同,我亲自测试了 Original v2 和 Plus。我会继续更新这个库以匹配上游库。
但就目前而言,这个库应该支持以下设备
- Stream Deck 原版
- Stream Deck 原版 V2
- Stream Deck XL
- Stream Deck XL V2
- Stream Deck Mini
- Stream Deck Mini Mk2
- Stream Deck Mk2
- Stream Deck Pedal
- Stream Deck Plus(感谢node-elgato-stream-deck)
- Stream Deck Neo(感谢@ejiektpobehuk,@AkechiShiro 和 node-elgato-stream-deck)
- Ajazz AKP153
依赖项
~2–13MB
~107K SLoC