sioctl-rs

An interface for reading the state of [sndio] controls.

This crate provides a wrapper around the [sioctl_open(3)] APIs for reading and watching the state of [sndio] controls.

An inteface to the defautl [sndio] device can be opened by [Sioctl::new()]. The initial state of controls can be read by calling [Sioctl::controls()] and callbacks for subsequent changes can be requested via [Sioctl::watch()].

There is currently way to set the value of controls. If this would be useful to you, please feel free to submit a PR.

Example

```rust use sioctl::Sioctl;

fn main() { let s = Sioctl::new();

// Initial state of all controls.
for control in s.controls() {
    println!("{:?}", control);
}

// Watch for changes to all controls:
let mut watcher = s.watch(|control| println!("{:?}", control));

// ...

// When done, call join() to shutdown watching.
watcher.join();

} ```

A more complete example is available in [src/bin/sioctl.rs].

License

MIT