autd3capi_driver/ptr/
modulation.rs1use crate::{ConstPtr, impl_ptr, impl_result};
2
3use autd3::{core::modulation::Modulation, driver::datagram::BoxedModulation};
4
5#[derive(Clone, Copy)]
6#[repr(C)]
7pub struct ModulationPtr(pub *const libc::c_void);
8
9impl_ptr!(ModulationPtr);
10
11impl<T: Modulation + 'static> From<T> for ModulationPtr {
12 fn from(m: T) -> Self {
13 Self(Box::into_raw(Box::new(BoxedModulation::new(m))) as _)
14 }
15}
16
17#[repr(C)]
18pub struct ResultModulation {
19 pub result: ModulationPtr,
20 pub err_len: u32,
21 pub err: ConstPtr,
22}
23
24impl_result!(ResultModulation, ModulationPtr);