5 个稳定版本
新增 1.2.0 | 2024年8月21日 |
---|---|
1.1.1 | 2024年8月16日 |
1.1.0 |
|
1.0.2 | 2024年7月31日 |
1.0.1 | 2024年7月25日 |
#217 在 硬件支持 中
每月 573 次下载
80KB
986 行
libmapper-rs
libmapper C 库的 Rust 包装器。允许创建和操作 libmapper 信号和设备。
兼容性
以下是 libmapper-rs 版本及其兼容的 libmapper 版本的表格。
libmapper-rs | libmapper |
---|---|
1.0.0-1.1.0 | 2.4.7 |
1.1.0-1.1.1 | 2.4.9 |
备注
- Libmapper 2.4.9 存在一个导致对象 ID 指针未对齐的 bug。这会导致在调用
get_property
获取 ID 时 rust 发生 panic。开启发布优化可以缓解此问题,因为它会跳过 rust 的对齐检查。
lib.rs
:
libmapper-rs
libmapper 是一个跨平台库,用于连接数据源到合成器、DAW 和其他硬件或软件设备。它提供了一个简单的 API 用于创建和管理信号、设备及其之间的映射。
本项目包含对 libmapper C API 的安全、惯用的 Rust 绑定。
概念
设备
libmapper 在一个共享的 peer-to-peer 图上运行。一个 设备 代表与该图的一个连接,是信号的容器。
大多数 libmapper 代码都将从创建一个设备并轮询它何时准备好开始
use libmapper_rs::device::Device;
fn main() {
let mut device = Device::create("CoolDevice");
loop {
device.poll_and_block(std::time::Duration::from_millis(10));
if device.is_ready() {
break;
}
}
println!("Device is ready!");
// create signals, maps, etc.
}