Skip to main content

interstice_abi/host_calls/
audio.rs

1use 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}