sioctl

Crates.iosioctl
lib.rssioctl
version0.0.2
sourcesrc
created_at2020-05-02 15:43:11.112201
updated_at2020-05-28 17:51:33.846022
descriptionAn interface for reading the state of sndio controls.
homepage
repositoryhttps://github.com/mjkillough/sioctl-rs
max_upload_size
id236611
size25,853
Michael Killough (mjkillough)

documentation

README

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

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.

Installation

The sndio-sys crate requires libclang.so which is present in the llvm package:

doas pkg_add llvm

License

MIT

Commit count: 8

cargo fmt