self.window_sequence = br.read(2)? as u8;
match self.prev_window_sequence {
ONLY_LONG_SEQUENCE | LONG_STOP_SEQUENCE => {
- validate!((self.window_sequence == ONLY_LONG_SEQUENCE) ||
- (self.window_sequence == LONG_START_SEQUENCE));
+ if (self.window_sequence != ONLY_LONG_SEQUENCE) &&
+ (self.window_sequence != LONG_START_SEQUENCE) {
+ println!("incorrect previous window");
+ }
},
LONG_START_SEQUENCE | EIGHT_SHORT_SEQUENCE => {
- validate!((self.window_sequence == EIGHT_SHORT_SEQUENCE) ||
- (self.window_sequence == LONG_STOP_SEQUENCE));
+ if (self.window_sequence != EIGHT_SHORT_SEQUENCE) &&
+ (self.window_sequence != LONG_STOP_SEQUENCE) {
+ println!("incorrect previous window");
+ }
},
_ => {},
};
fn new() -> Self {
let mut coderead = TableCodebookDescReader::new(AAC_SCF_CODEBOOK_CODES, AAC_SCF_CODEBOOK_BITS, scale_map);
let scale_cb = Codebook::new(&mut coderead, CodebookMode::MSB).unwrap();
- let mut spec_cb: [Codebook<u16>; 11];
- unsafe {
- spec_cb = mem::uninitialized();
- for i in 0..AAC_SPEC_CODES.len() {
- let mut coderead = TableCodebookDescReader::new(AAC_SPEC_CODES[i], AAC_SPEC_BITS[i], cb_map);
- ptr::write(&mut spec_cb[i], Codebook::new(&mut coderead, CodebookMode::MSB).unwrap());
- }
- }
+ let spec_cb = unsafe {
+ let mut uspec_cb: mem::MaybeUninit::<[Codebook<u16>; 11]> = mem::MaybeUninit::uninit();
+ for i in 0..AAC_SPEC_CODES.len() {
+ let mut coderead = TableCodebookDescReader::new(AAC_SPEC_CODES[i], AAC_SPEC_BITS[i], cb_map);
+ ptr::write(&mut (*uspec_cb.as_mut_ptr())[i], Codebook::new(&mut coderead, CodebookMode::MSB).unwrap());
+ }
+ uspec_cb.assume_init()
+ };
Self { scale_cb, spec_cb }
}
}
tmp: [0.0; 2048], ew_buf: [0.0; 1152],
}
}
- #[allow(clippy::cyclomatic_complexity)]
+ #[allow(clippy::cognitive_complexity)]
fn synth(&mut self, coeffs: &[f32; 1024], delay: &mut [f32; 1024], seq: u8, window_shape: bool, prev_window_shape: bool, dst: &mut [f32]) {
let long_win = if window_shape { &self.kbd_long_win } else { &self.sine_long_win };
let short_win = if window_shape { &self.kbd_short_win } else { &self.sine_short_win };