Skip to content
/ alsa-rs Public
forked from diwic/alsa-rs

Thin but safe ALSA wrappers for Rust

Notifications You must be signed in to change notification settings

3dsig/alsa-rs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Thin but safe wrappers for ALSA.

API Documentation

Crates.io

Expect the following to work:

  • Audio Playback

  • Audio Recording

  • Mixer controls

  • HCtl API (for jack detection)

  • Raw midi

  • Midi sequencer API (most of it)

  • Enumerations of all of the above

  • Poll and/or wait for all of the above

The following is not yet implemented (mostly because nobody asked for them) :

  • Separate timer API (snd_timer_*)

  • Config API (snd_config_*)

  • Plug-in API

Quickstart guide / API design:

  • Most functions map 1-to-1 to alsa-lib functions, e g, ctl::CardInfo::get_id() is a wrapper around snd_ctl_card_info_get_id and the alsa-lib documentation can be consulted for additional information.

  • Structs are RAII and closed/freed on drop, e g, when a PCM struct is dropped, snd_pcm_close is called.

  • To read and write buffers, call the io_* methods. It will return a separate struct from which you can read or write, and which can also be used for mmap (if supported by the driver).

  • Error handling - most alsa-lib functions can return errors, so the return value from these is a Result.

  • Enumeration of cards, devices etc is done through structs implementing Iterator.

  • Many structs implement Polldescriptors, to combine with poll or mio. (Or just use wait if you don't need that functionality.)

About

Thin but safe ALSA wrappers for Rust

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%