use std::ffi::{c_float, c_int};
use fmod_sys::*;
use crate::ChannelGroup;
use crate::studio::EventInstance;
use crate::{FmodResultExt, Result};
impl EventInstance {
pub fn get_channel_group(&self) -> Result<ChannelGroup> {
let mut channel_group = std::ptr::null_mut();
unsafe {
FMOD_Studio_EventInstance_GetChannelGroup(self.inner.as_ptr(), &raw mut channel_group)
.to_result()?;
Ok(ChannelGroup::from_ffi(channel_group))
}
}
pub fn set_reverb_level(&self, index: c_int, level: c_float) -> Result<()> {
unsafe {
FMOD_Studio_EventInstance_SetReverbLevel(self.inner.as_ptr(), index, level).to_result()
}
}
pub fn get_reverb_level(&self, index: c_int) -> Result<c_float> {
let mut level = 0.0;
unsafe {
FMOD_Studio_EventInstance_GetReverbLevel(self.inner.as_ptr(), index, &raw mut level)
.to_result()?;
}
Ok(level)
}
}