use fmod_sys::*;
use crate::studio::{EventDescription, EventInstance};
#[cfg(doc)]
use crate::studio::PlaybackState;
#[cfg(fmod_2_3)]
use crate::studio::System;
use crate::{FmodResultExt, Result};
impl EventInstance {
pub fn get_description(&self) -> Result<EventDescription> {
let mut description = std::ptr::null_mut();
unsafe {
FMOD_Studio_EventInstance_GetDescription(self.inner.as_ptr(), &raw mut description)
.to_result()?;
Ok(EventDescription::from_ffi(description))
}
}
pub fn release(&self) -> Result<()> {
unsafe { FMOD_Studio_EventInstance_Release(self.inner.as_ptr()).to_result() }
}
pub fn is_valid(&self) -> bool {
unsafe { FMOD_Studio_EventInstance_IsValid(self.inner.as_ptr()).into() }
}
#[cfg(fmod_2_3)]
pub fn get_system(&self) -> Result<System> {
let mut system = std::ptr::null_mut();
unsafe {
FMOD_Studio_EventInstance_GetSystem(self.inner.as_ptr(), &raw mut system)
.to_result()?;
Ok(System::from_ffi(system))
}
}
}