From 8c2113bbdfb60efb9e7a20bdc9e08ad82021a3bc Mon Sep 17 00:00:00 2001 From: Mike Welsh Date: Thu, 26 Sep 2019 11:46:44 -0700 Subject: [PATCH] chore: cargo fmt pcm.rs --- core/src/backend/audio/decoders/pcm.rs | 170 ++++++++++++------------- 1 file changed, 85 insertions(+), 85 deletions(-) diff --git a/core/src/backend/audio/decoders/pcm.rs b/core/src/backend/audio/decoders/pcm.rs index 249d57dab..dffbc1b8b 100644 --- a/core/src/backend/audio/decoders/pcm.rs +++ b/core/src/backend/audio/decoders/pcm.rs @@ -1,85 +1,85 @@ -use super::{Decoder, SeekableDecoder}; -use std::io::{Cursor, Read}; - -/// Decoder for PCM audio data in a Flash file. -/// Flash exports this when you use the "Raw" compression setting. -/// 8-bit unsigned or 16-bit signed PCM. -pub struct PcmDecoder { - inner: R, - sample_rate: u16, - is_stereo: bool, - is_16_bit: bool, -} - -impl PcmDecoder { - pub fn new(inner: R, is_stereo: bool, sample_rate: u16, is_16_bit: bool) -> Self { - PcmDecoder { - inner, - is_stereo, - sample_rate, - is_16_bit, - } - } -} - -impl Iterator for PcmDecoder { - type Item = [i16; 2]; - fn next(&mut self) -> Option { - if self.is_stereo { - if self.is_16_bit { - let mut left = [0u8; 2]; - let mut right = [0u8; 2]; - self.inner.read_exact(&mut left).ok()?; - self.inner.read_exact(&mut right).ok()?; - let left = i16::from_le_bytes(left); - let right = i16::from_le_bytes(right); - Some([left, right]) - } else { - let mut bytes = [0u8]; - self.inner.read_exact(&mut bytes).ok()?; - let sample = (i16::from(bytes[0]) - 127) * 128; - Some([sample, sample]) - } - } else if self.is_16_bit { - let mut bytes = [0u8; 2]; - self.inner.read_exact(&mut bytes).ok()?; - let sample = i16::from_le_bytes(bytes); - Some([sample, sample]) - } else { - let mut bytes = [0u8; 2]; - self.inner.read_exact(&mut bytes).ok()?; - let left = (i16::from(bytes[0]) - 127) * 128; - let right = (i16::from(bytes[1]) - 127) * 128; - Some([left, right]) - } - } -} - -impl Decoder for PcmDecoder { - #[inline] - fn num_channels(&self) -> u8 { - if self.is_stereo { - 2 - } else { - 1 - } - } - - #[inline] - fn sample_rate(&self) -> u16 { - self.sample_rate - } -} - -impl> SeekableDecoder for PcmDecoder> { - #[inline] - fn reset(&mut self) { - self.inner.set_position(0); - } - - #[inline] - fn seek_to_sample_frame(&mut self, frame: u32) { - let pos = u64::from(frame) * u64::from(self.num_channels()) * 2; - self.inner.set_position(pos); - } -} +use super::{Decoder, SeekableDecoder}; +use std::io::{Cursor, Read}; + +/// Decoder for PCM audio data in a Flash file. +/// Flash exports this when you use the "Raw" compression setting. +/// 8-bit unsigned or 16-bit signed PCM. +pub struct PcmDecoder { + inner: R, + sample_rate: u16, + is_stereo: bool, + is_16_bit: bool, +} + +impl PcmDecoder { + pub fn new(inner: R, is_stereo: bool, sample_rate: u16, is_16_bit: bool) -> Self { + PcmDecoder { + inner, + is_stereo, + sample_rate, + is_16_bit, + } + } +} + +impl Iterator for PcmDecoder { + type Item = [i16; 2]; + fn next(&mut self) -> Option { + if self.is_stereo { + if self.is_16_bit { + let mut left = [0u8; 2]; + let mut right = [0u8; 2]; + self.inner.read_exact(&mut left).ok()?; + self.inner.read_exact(&mut right).ok()?; + let left = i16::from_le_bytes(left); + let right = i16::from_le_bytes(right); + Some([left, right]) + } else { + let mut bytes = [0u8]; + self.inner.read_exact(&mut bytes).ok()?; + let sample = (i16::from(bytes[0]) - 127) * 128; + Some([sample, sample]) + } + } else if self.is_16_bit { + let mut bytes = [0u8; 2]; + self.inner.read_exact(&mut bytes).ok()?; + let sample = i16::from_le_bytes(bytes); + Some([sample, sample]) + } else { + let mut bytes = [0u8; 2]; + self.inner.read_exact(&mut bytes).ok()?; + let left = (i16::from(bytes[0]) - 127) * 128; + let right = (i16::from(bytes[1]) - 127) * 128; + Some([left, right]) + } + } +} + +impl Decoder for PcmDecoder { + #[inline] + fn num_channels(&self) -> u8 { + if self.is_stereo { + 2 + } else { + 1 + } + } + + #[inline] + fn sample_rate(&self) -> u16 { + self.sample_rate + } +} + +impl> SeekableDecoder for PcmDecoder> { + #[inline] + fn reset(&mut self) { + self.inner.set_position(0); + } + + #[inline] + fn seek_to_sample_frame(&mut self, frame: u32) { + let pos = u64::from(frame) * u64::from(self.num_channels()) * 2; + self.inner.set_position(pos); + } +}