# AudioDeviceBinding

`import { AudioDeviceBinding } from "destack:audio/binding";`

Device binding family.

```ds title="AudioDeviceBinding"
export interface AudioDeviceBinding {
    listAudioDevices(query: &'a readonly AudioDeviceQuery): Result<AudioDevice[], HostError>;
    defaultAudioDevice(backend: &'a readonly AudioBackendSelection, direction: AudioDirection): Result<^string, HostError>;
    describeAudioDevice(backend: &'a readonly AudioBackendSelection, deviceId: &'b readonly string): Result<AudioDevice, HostError>;
    rescanAudioDevices(backend: &'a readonly AudioBackendSelection): Result<void, HostError>;
}
```

[language/library/src/audio/binding/device.ds:157:199](https://github.com/destack-sh/destack/blob/main/language/library/src/audio/binding/device.ds#L157-L199)

## Members

### `listAudioDevices(query: &'a readonly AudioDeviceQuery): Result<AudioDevice[], HostError>`

List audio devices.

### `defaultAudioDevice(backend: &'a readonly AudioBackendSelection, direction: AudioDirection): Result<^string, HostError>`

Return the default device identifier for one direction.

### `describeAudioDevice(backend: &'a readonly AudioBackendSelection, deviceId: &'b readonly string): Result<AudioDevice, HostError>`

Describe one audio device.

### `rescanAudioDevices(backend: &'a readonly AudioBackendSelection): Result<void, HostError>`

Trigger one backend device rescan.
