use crate::prelude::*;
use soloud_sys::soloud as ffi;
use std::path::Path;
#[derive(Debug)]
pub struct WavStream {
inner: *mut ffi::WavStream,
}
crate::macros::load::impl_load_ext!(WavStream);
crate::macros::audio::impl_audio_ext!(WavStream);
impl WavStream {
pub fn length(&self) -> f64 {
unsafe { ffi::WavStream_getLength(self.inner) }
}
pub fn load_to_mem(&mut self, path: &std::path::Path) -> Result<(), SoloudError> {
let path = path
.to_str()
.ok_or(SoloudError::Internal(SoloudErrorKind::FileLoadFailed))?;
let path = std::ffi::CString::new(path)?;
ffi_call!(ffi::WavStream_loadToMem(self.inner, path.as_ptr()))
}
}