amico_hal/os/common/audio/
driver.rs

1use crate::interface::audio::{AudioPlayer, AudioRecorder};
2
3use super::control::{AudioPlaybackError, AudioRecordingError, playback, record_blocking};
4
5pub struct AudioDriver;
6
7impl AudioRecorder for AudioDriver {
8    type Error = AudioRecordingError;
9
10    async fn record(path: &str) -> Result<(), Self::Error>
11    where
12        Self: Sized,
13    {
14        record_blocking(path).await
15    }
16}
17
18impl AudioPlayer for AudioDriver {
19    type Error = AudioPlaybackError;
20
21    async fn play(path: &str) -> Result<(), Self::Error>
22    where
23        Self: Sized,
24    {
25        playback(path).await
26    }
27}