fmod/studio/event_description/
callback.rs1use fmod_sys::*;
8use std::ffi::c_void;
9
10use crate::studio::{
11 EventCallbackMask, EventDescription, EventInstanceCallback, event_callback_impl,
12};
13use crate::{FmodResultExt, Result};
14
15impl EventDescription {
16 #[allow(clippy::not_unsafe_ptr_arg_deref)] pub fn set_userdata(&self, userdata: *mut c_void) -> Result<()> {
19 unsafe {
20 FMOD_Studio_EventDescription_SetUserData(self.inner.as_ptr(), userdata).to_result()
21 }
22 }
23
24 pub fn get_userdata(&self) -> Result<*mut c_void> {
26 let mut userdata = std::ptr::null_mut();
27 unsafe {
28 FMOD_Studio_EventDescription_GetUserData(self.inner.as_ptr(), &raw mut userdata)
29 .to_result()?;
30 }
31 Ok(userdata)
32 }
33
34 pub fn set_callback<C: EventInstanceCallback>(&self, mask: EventCallbackMask) -> Result<()> {
39 unsafe {
40 FMOD_Studio_EventDescription_SetCallback(
41 self.inner.as_ptr(),
42 Some(event_callback_impl::<C>),
43 mask.into(),
44 )
45 .to_result()
46 }
47 }
48}