autd3capi_driver/ptr/
modulation.rs

1use 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);