use super::state::{EncoderStateCommon, VadState, X_BUFFER_LENGTH};
use crate::silk::lp_variable_cutoff::LpState;
#[derive(Clone, Debug, PartialEq)]
pub struct EncoderShapeStateFlp {
pub last_gain_index: i8,
pub harm_shape_gain_smth: f32,
pub tilt_smth: f32,
}
impl Default for EncoderShapeStateFlp {
fn default() -> Self {
Self {
last_gain_index: 0,
harm_shape_gain_smth: 0.0,
tilt_smth: 0.0,
}
}
}
#[derive(Clone, Debug, PartialEq)]
pub struct EncoderStateFlp {
pub common: EncoderStateCommon,
pub vad_state: VadState,
pub lp_state: LpState,
pub shape_state: EncoderShapeStateFlp,
pub x_buf: [f32; X_BUFFER_LENGTH],
pub ltp_corr: f32,
}
impl Default for EncoderStateFlp {
fn default() -> Self {
Self {
common: EncoderStateCommon::default(),
vad_state: VadState::default(),
lp_state: LpState::default(),
shape_state: EncoderShapeStateFlp::default(),
x_buf: [0.0; X_BUFFER_LENGTH],
ltp_corr: 0.0,
}
}
}
impl EncoderStateFlp {
#[must_use]
pub fn new() -> Self {
Self::default()
}
}