interstice_abi/host_calls/
audio.rs1use serde::{Deserialize, Serialize};
2
3#[derive(Debug, Clone, Deserialize, Serialize)]
4pub struct AudioStreamConfig {
5 pub sample_rate: u32,
6 pub channels: u16,
7 pub frames_per_buffer: u32,
8}
9
10#[derive(Debug, Deserialize, Serialize)]
11pub enum AudioCall {
12 OpenOutputStream(AudioStreamConfig),
13 OpenInputStream(AudioStreamConfig),
14 CloseStream {
15 stream_id: u64,
16 },
17 WriteFramesF32Planar {
18 stream_id: u64,
19 frames: u32,
20 channels: u16,
21 data: Vec<Vec<f32>>,
22 },
23}
24
25#[derive(Debug, Deserialize, Serialize)]
26pub enum AudioResponse {
27 Ok,
28 StreamOpened { stream_id: u64 },
29 Err(String),
30}