Crate cubeb

Source
Expand description

§libcubeb bindings for rust

This library contains bindings to the cubeb C library which is used to interact with system audio. The library itself is a work in progress and is likely lacking documentation and test.

The cubeb-rs library exposes the user API of libcubeb. It doesn’t expose the internal interfaces, so isn’t suitable for extending libcubeb. See cubeb-pulse-rs for an example of extending libcubeb via implementing a cubeb backend in rust.

To get started, have a look at the StreamBuilder

Modules§

ffi

Structs§

ChannelLayout
Some common layout definitions
Context
ContextRef
Device
DeviceCollection
DeviceCollectionRef
DeviceFormat
Architecture specific sample type.
DeviceInfo
DeviceInfoRef
DeviceRef
DeviceType
Whether a particular device is an input device (e.g. a microphone), or an output device (e.g. headphones).
Error
MonoFrame
A monaural frame.
StereoFrame
A stereo frame.
Stream
Audio input/output stream
StreamBuilder
Stream builder
StreamCallbacks
StreamParams
StreamParamsBuilder
StreamParamsRef
StreamPrefs
Miscellaneous stream preferences.
StreamRef

Enums§

DeviceState
The state of a device.
ErrorCode
An enumeration of possible errors that can happen when working with cubeb.
LogLevel
Level (verbosity) of logging for a particular cubeb context.
SampleFormat
State
Stream states signaled via state_callback.

Traits§

Frame
A Frame is a collection of samples which have a a specific layout represented by ChannelLayout
Sample
An extension trait which allows the implementation of converting void* buffers from libcubeb-sys into rust slices of the appropriate type.

Functions§

init
Initialize a new cubeb Context

Type Aliases§

DataCallback
User supplied data callback.
DeviceChangedCallback
User supplied callback called when the underlying device changed.
DeviceId
An opaque handle used to refer to a particular input or output device across calls.
Result
StateCallback
User supplied state callback.