Revert "coreaudio: Add support for U16/I16 PCM formats."

This reverts commit bdef4fb3fe.
This commit is contained in:
Ronald Kinard 2015-09-24 12:54:54 -05:00
parent bdef4fb3fe
commit fd50a113a1
2 changed files with 7 additions and 26 deletions

View File

@ -10,7 +10,6 @@ use FormatsEnumerationError;
use SampleFormat; use SampleFormat;
use SamplesRate; use SamplesRate;
use ChannelPosition; use ChannelPosition;
use Sample;
mod enumerate; mod enumerate;
@ -27,21 +26,11 @@ impl Endpoint {
pub fn get_supported_formats_list(&self) pub fn get_supported_formats_list(&self)
-> Result<SupportedFormatsIterator, FormatsEnumerationError> -> Result<SupportedFormatsIterator, FormatsEnumerationError>
{ {
// AUHAL converts internally for simple PCM translations. Ok(vec!(Format {
// However, an additional AudioConverter unit is needed in order to channels: vec![ChannelPosition::FrontLeft, ChannelPosition::FrontRight],
// change sample rate. samples_rate: SamplesRate(44100),
// TODO support other sample rates. data_type: SampleFormat::F32
let formats = [SampleFormat::F32, SampleFormat::I16, SampleFormat::U16] }).into_iter())
.into_iter()
.map(|f| {
Format {
channels: vec![ChannelPosition::FrontLeft, ChannelPosition::FrontRight],
samples_rate: SamplesRate(44100),
data_type: *f
}
})
.collect::<Vec<_>>();
Ok(formats.into_iter())
} }
pub fn get_name(&self) -> String { pub fn get_name(&self) -> String {
@ -57,7 +46,7 @@ pub struct Buffer<'a, T: 'a> {
marker: ::std::marker::PhantomData<&'a T>, marker: ::std::marker::PhantomData<&'a T>,
} }
impl<'a, T: Sample> Buffer<'a, T> { impl<'a, T> Buffer<'a, T> {
#[inline] #[inline]
pub fn get_buffer<'b>(&'b mut self) -> &'b mut [T] { pub fn get_buffer<'b>(&'b mut self) -> &'b mut [T] {
&mut self.samples[..] &mut self.samples[..]
@ -73,8 +62,7 @@ impl<'a, T: Sample> Buffer<'a, T> {
let Buffer { samples_sender, samples, num_channels, .. } = self; let Buffer { samples_sender, samples, num_channels, .. } = self;
// TODO: At the moment this assumes the Vec<T> is a Vec<f32>. // TODO: At the moment this assumes the Vec<T> is a Vec<f32>.
// Need to add T: Sample and use Sample::to_vec_f32. // Need to add T: Sample and use Sample::to_vec_f32.
//let samples = unsafe { mem::transmute(samples) }; let samples = unsafe { mem::transmute(samples) };
let samples = samples.into_iter().map(|x| x.as_f32()).collect();
match samples_sender.send((samples, num_channels)) { match samples_sender.send((samples, num_channels)) {
Err(_) => panic!("Failed to send samples to audio unit callback."), Err(_) => panic!("Failed to send samples to audio unit callback."),
Ok(()) => (), Ok(()) => (),

View File

@ -27,7 +27,6 @@ impl SampleFormat {
pub unsafe trait Sample: Copy + Clone { pub unsafe trait Sample: Copy + Clone {
/// Returns the `SampleFormat` corresponding to this data type. /// Returns the `SampleFormat` corresponding to this data type.
fn get_format() -> SampleFormat; fn get_format() -> SampleFormat;
fn as_f32(&self) -> f32;
} }
unsafe impl Sample for u16 { unsafe impl Sample for u16 {
@ -35,8 +34,6 @@ unsafe impl Sample for u16 {
fn get_format() -> SampleFormat { fn get_format() -> SampleFormat {
SampleFormat::U16 SampleFormat::U16
} }
fn as_f32(&self) -> f32 { (*self as f32 - 32768.0) / (32768.0) }
} }
unsafe impl Sample for i16 { unsafe impl Sample for i16 {
@ -44,8 +41,6 @@ unsafe impl Sample for i16 {
fn get_format() -> SampleFormat { fn get_format() -> SampleFormat {
SampleFormat::I16 SampleFormat::I16
} }
fn as_f32(&self) -> f32 { (*self as f32) / (32768.0) }
} }
unsafe impl Sample for f32 { unsafe impl Sample for f32 {
@ -53,6 +48,4 @@ unsafe impl Sample for f32 {
fn get_format() -> SampleFormat { fn get_format() -> SampleFormat {
SampleFormat::F32 SampleFormat::F32
} }
fn as_f32(&self) -> f32 { *self }
} }