Update for rustc
This commit is contained in:
parent
546c3acb87
commit
420a0f0fd4
|
@ -1,7 +1,7 @@
|
||||||
[package]
|
[package]
|
||||||
|
|
||||||
name = "cpal"
|
name = "cpal"
|
||||||
version = "0.0.6-pre"
|
version = "0.0.7-pre"
|
||||||
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>"]
|
authors = ["Pierre Krieger <pierre.krieger1708@gmail.com>"]
|
||||||
description = "Cross-platform audio playing library in pure Rust."
|
description = "Cross-platform audio playing library in pure Rust."
|
||||||
repository = "https://github.com/tomaka/cpal"
|
repository = "https://github.com/tomaka/cpal"
|
||||||
|
@ -10,11 +10,11 @@ license = "Apache-2.0"
|
||||||
keywords = ["audio", "sound"]
|
keywords = ["audio", "sound"]
|
||||||
|
|
||||||
[target.i686-pc-windows-gnu.dependencies.winapi]
|
[target.i686-pc-windows-gnu.dependencies.winapi]
|
||||||
version = "^0.0.3"
|
version = "0"
|
||||||
features = ["ole32"]
|
features = ["ole32"]
|
||||||
|
|
||||||
[target.x86_64-pc-windows-gnu.dependencies.winapi]
|
[target.x86_64-pc-windows-gnu.dependencies.winapi]
|
||||||
version = "^0.0.3"
|
version = "0"
|
||||||
features = ["ole32"]
|
features = ["ole32"]
|
||||||
|
|
||||||
[target.i686-unknown-linux-gnu.dependencies.alsa-sys]
|
[target.i686-unknown-linux-gnu.dependencies.alsa-sys]
|
||||||
|
@ -26,4 +26,4 @@ version = "^0.0.1"
|
||||||
path = "alsa-sys"
|
path = "alsa-sys"
|
||||||
|
|
||||||
[dev-dependencies]
|
[dev-dependencies]
|
||||||
vorbis = "^0.0.1"
|
vorbis = "0"
|
||||||
|
|
14
src/lib.rs
14
src/lib.rs
|
@ -47,6 +47,7 @@ a conversion on your data.
|
||||||
If you have the possibility, you should try to match the format of the voice.
|
If you have the possibility, you should try to match the format of the voice.
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
#![feature(associated_types)]
|
||||||
#![feature(macro_rules)]
|
#![feature(macro_rules)]
|
||||||
#![feature(unsafe_destructor)]
|
#![feature(unsafe_destructor)]
|
||||||
#![unstable]
|
#![unstable]
|
||||||
|
@ -56,6 +57,8 @@ use this_platform_is_not_supported;
|
||||||
|
|
||||||
pub use samples_formats::{SampleFormat, Sample};
|
pub use samples_formats::{SampleFormat, Sample};
|
||||||
|
|
||||||
|
use std::ops::{Deref, DerefMut};
|
||||||
|
|
||||||
mod conversions;
|
mod conversions;
|
||||||
mod samples_formats;
|
mod samples_formats;
|
||||||
|
|
||||||
|
@ -84,7 +87,7 @@ pub struct Voice(cpal_impl::Voice);
|
||||||
pub type ChannelsCount = u16;
|
pub type ChannelsCount = u16;
|
||||||
|
|
||||||
///
|
///
|
||||||
#[deriving(Show, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
#[derive(Show, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
|
||||||
pub struct SamplesRate(pub u32);
|
pub struct SamplesRate(pub u32);
|
||||||
|
|
||||||
/// Represents a buffer that must be filled with audio data.
|
/// Represents a buffer that must be filled with audio data.
|
||||||
|
@ -199,7 +202,8 @@ impl Voice {
|
||||||
let intermediate_buffer_length = intermediate_buffer_length *
|
let intermediate_buffer_length = intermediate_buffer_length *
|
||||||
source_samples_format.get_sample_size() /
|
source_samples_format.get_sample_size() /
|
||||||
target_samples_format.get_sample_size();
|
target_samples_format.get_sample_size();
|
||||||
let intermediate_buffer = Vec::from_elem(intermediate_buffer_length, unsafe { std::mem::uninitialized() });
|
let intermediate_buffer = std::iter::repeat(unsafe { std::mem::uninitialized() })
|
||||||
|
.take(intermediate_buffer_length).collect();
|
||||||
|
|
||||||
Buffer {
|
Buffer {
|
||||||
target: Some(target_buffer),
|
target: Some(target_buffer),
|
||||||
|
@ -241,13 +245,15 @@ impl Voice {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T> Deref<[T]> for Buffer<'a, T> {
|
impl<'a, T> Deref for Buffer<'a, T> {
|
||||||
|
type Target = [T];
|
||||||
|
|
||||||
fn deref(&self) -> &[T] {
|
fn deref(&self) -> &[T] {
|
||||||
panic!("It is forbidden to read from the audio buffer");
|
panic!("It is forbidden to read from the audio buffer");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a, T> DerefMut<[T]> for Buffer<'a, T> {
|
impl<'a, T> DerefMut for Buffer<'a, T> {
|
||||||
fn deref_mut(&mut self) -> &mut [T] {
|
fn deref_mut(&mut self) -> &mut [T] {
|
||||||
if let Some(ref mut conversion) = self.conversion {
|
if let Some(ref mut conversion) = self.conversion {
|
||||||
conversion.intermediate_buffer.as_mut_slice()
|
conversion.intermediate_buffer.as_mut_slice()
|
||||||
|
|
|
@ -2,7 +2,7 @@ use std::borrow::Cow;
|
||||||
use std::mem;
|
use std::mem;
|
||||||
|
|
||||||
/// Format that each sample has.
|
/// Format that each sample has.
|
||||||
#[deriving(Clone, Copy, Show, PartialEq, Eq)]
|
#[derive(Clone, Copy, Show, PartialEq, Eq)]
|
||||||
pub enum SampleFormat {
|
pub enum SampleFormat {
|
||||||
/// The value 0 corresponds to 0.
|
/// The value 0 corresponds to 0.
|
||||||
I16,
|
I16,
|
||||||
|
|
Loading…
Reference in New Issue