use std::{ffi::c_uint, mem::MaybeUninit};
use fmod_sys::*;
use crate::studio::{EventInstance, MemoryUsage};
use crate::{FmodResultExt, Result};
impl EventInstance {
pub fn get_cpu_usage(&self) -> Result<(c_uint, c_uint)> {
let mut exclusive = 0;
let mut inclusive = 0;
unsafe {
FMOD_Studio_EventInstance_GetCPUUsage(
self.inner.as_ptr(),
&raw mut exclusive,
&raw mut inclusive,
)
.to_result()?;
}
Ok((exclusive, inclusive))
}
pub fn get_memory_usage(&self) -> Result<MemoryUsage> {
let mut memory_usage = MaybeUninit::zeroed();
unsafe {
FMOD_Studio_EventInstance_GetMemoryUsage(
self.inner.as_ptr(),
memory_usage.as_mut_ptr(),
)
.to_result()?;
let memory_usage = memory_usage.assume_init().into();
Ok(memory_usage)
}
}
}