autd3_core/modulation/
mod.rs1mod error;
2
3use std::sync::Arc;
4
5use crate::{
6 datagram::{LoopBehavior, Segment, TransitionMode},
7 sampling_config::SamplingConfig,
8};
9pub use error::ModulationError;
10
11pub trait Modulation: std::fmt::Debug {
17 fn calc(self) -> Result<Vec<u8>, ModulationError>;
19
20 #[must_use]
22 fn sampling_config(&self) -> SamplingConfig;
23}
24
25#[doc(hidden)]
26pub struct ModulationOperationGenerator {
27 pub g: Arc<Vec<u8>>,
28 pub config: SamplingConfig,
29 pub loop_behavior: LoopBehavior,
30 pub segment: Segment,
31 pub transition_mode: Option<TransitionMode>,
32}