use fmod_sys::*;
use lanyard::Utf8CStr;
use std::{ffi::c_int, mem::MaybeUninit};
use crate::studio::{EventDescription, UserProperty};
impl EventDescription {
pub fn get_user_property(&self, name: &Utf8CStr) -> Result<UserProperty> {
let mut property = MaybeUninit::uninit();
unsafe {
FMOD_Studio_EventDescription_GetUserProperty(
self.inner,
name.as_ptr(),
property.as_mut_ptr(),
)
.to_result()?;
let property = UserProperty::from_ffi(property.assume_init());
Ok(property)
}
}
pub fn get_user_property_by_index(&self, index: c_int) -> Result<UserProperty> {
let mut property = MaybeUninit::uninit();
unsafe {
FMOD_Studio_EventDescription_GetUserPropertyByIndex(
self.inner,
index,
property.as_mut_ptr(),
)
.to_result()?;
let property = UserProperty::from_ffi(property.assume_init());
Ok(property)
}
}
pub fn user_property_count(&self) -> Result<c_int> {
let mut count = 0;
unsafe {
FMOD_Studio_EventDescription_GetUserPropertyCount(self.inner, &mut count)
.to_result()?;
}
Ok(count)
}
}