1pub mod audio;
9#[cfg(feature = "audio-input")]
10pub mod audio_input;
11pub mod beat_detection;
12pub mod default_preset;
13pub mod engine;
14pub mod error;
15pub mod fft;
16pub mod history;
17pub mod messages;
18#[cfg(feature = "mpris")]
19pub mod mpris;
20pub mod preset_manager;
21pub mod safe_loader;
22pub mod sprites;
23pub mod transition;
24pub mod warp_eval;
25
26pub use audio::AudioAnalyzer;
27#[cfg(feature = "audio-input")]
28pub use audio_input::{
29 AudioAnalysisInput, AudioInput, AudioInputError, AudioSource, SourceKind, list_sources,
30};
31pub use beat_detection::{BeatDetectionMode, BeatDetector, PresetChange};
32pub use default_preset::default_preset;
33pub use engine::{EngineConfig, FrameProfile, MilkEngine, QualityPreset};
34pub use error::{EngineError, Result};
35pub use fft::FFTAnalyzer;
36pub use history::{ColorState, History, MashUpState, MashUpType};
37pub use messages::{MessageManager, MessageRenderInstance};
38#[cfg(feature = "mpris")]
39pub use mpris::{MprisPoller, MprisSnapshot};
40pub use preset_manager::{
41 DEFAULT_HISTORY_SIZE, DEFAULT_RATING, PresetManager, SelectionMode, TransitionState,
42};
43pub use safe_loader::SafePresetLoader;
44pub use sprites::{SpriteBlendMode, SpriteManager, SpriteRenderInstance};
45pub use transition::{Transition, TransitionManager, TransitionMode};
46
47pub use onedrop_parser::MilkPreset;
49pub use onedrop_renderer::{
50 AudioLevels, MeshQuality, MeshSize, MotionParams, RenderConfig, RenderState, WarpMesh,
51 WarpVertex, WaveParams,
52};
53pub use warp_eval::WarpExecutor;
54
55#[cfg(test)]
56mod tests {
57 use super::*;
58
59 #[test]
60 fn test_create_engine() {
61 let config = EngineConfig::default();
62 let engine = pollster::block_on(MilkEngine::new(config));
63 assert!(engine.is_ok());
64 }
65}