#![warn(missing_docs)]
pub(crate) mod demod;
pub(crate) mod dsp;
pub mod decoder;
pub mod error;
pub mod image;
pub mod mode_pd;
pub mod mode_robot;
pub mod mode_scottie;
pub mod modespec;
pub mod resample;
#[allow(dead_code)]
pub(crate) mod snr;
pub(crate) mod sync;
pub mod vis;
#[cfg(any(test, feature = "test-support"))]
pub(crate) mod test_tone;
#[cfg(any(test, feature = "test-support"))]
pub(crate) mod pd_test_encoder;
#[cfg(any(test, feature = "test-support"))]
pub(crate) mod robot_test_encoder;
#[cfg(any(test, feature = "test-support"))]
pub(crate) mod scottie_test_encoder;
pub use crate::decoder::{SstvDecoder, SstvEvent};
pub use crate::error::{Error, Result};
pub use crate::image::SstvImage;
pub use crate::modespec::{
for_mode, lookup as lookup_vis, ChannelLayout, ModeSpec, SstvMode, SyncPosition,
};
pub use crate::resample::{Resampler, WORKING_SAMPLE_RATE_HZ};
#[cfg(any(test, feature = "test-support"))]
#[doc(hidden)]
pub mod __test_support {
pub mod vis {
pub use crate::vis::tests::synth_vis;
}
pub mod mode_pd {
pub use crate::demod::ycbcr_to_rgb;
#[doc(hidden)]
#[must_use]
pub fn encode_pd(mode: crate::modespec::SstvMode, ycrcb: &[[u8; 3]]) -> Vec<f32> {
crate::pd_test_encoder::encode_pd(mode, ycrcb)
}
}
pub mod mode_robot {
#[doc(hidden)]
#[must_use]
pub fn encode_robot(mode: crate::modespec::SstvMode, ycrcb: &[[u8; 3]]) -> Vec<f32> {
crate::robot_test_encoder::encode_robot(mode, ycrcb)
}
}
pub mod mode_scottie {
#[doc(hidden)]
#[must_use]
pub fn encode_scottie(mode: crate::modespec::SstvMode, rgb: &[[u8; 3]]) -> Vec<f32> {
crate::scottie_test_encoder::encode_scottie(mode, rgb)
}
}
}