|
10 | 10 | //! use ao::auto::{SampleBuffer, AutoFormatDevice};
|
11 | 11 | //! use std::error::Error;
|
12 | 12 | //!
|
13 |
| -//! struct Stereo(u16, u16); |
| 13 | +//! struct StereoBuffer(Vec<(i16, i16)>); |
14 | 14 | //!
|
15 |
| -//! impl<'z> SampleBuffer for &'z [Stereo] { |
| 15 | +//! impl<'z> SampleBuffer for StereoBuffer { |
16 | 16 | //! fn channels(&self) -> usize { 2 }
|
17 | 17 | //! fn sample_rate(&self) -> usize { 44100 }
|
18 | 18 | //! fn endianness(&self) -> ao::Endianness { ao::Endianness::Native }
|
19 | 19 | //! fn sample_width(&self) -> usize { 16 }
|
20 | 20 | //! fn data<'a>(&self) -> &'a [u8] {
|
21 | 21 | //! unsafe {
|
22 |
| -//! ::std::mem::transmute(::std::raw::Slice { |
23 |
| -//! data: self.as_ptr() as *const u8, |
24 |
| -//! len: self.len() * 4 |
25 |
| -//! }) |
| 22 | +//! std::slice::from_raw_parts(self.0.as_ptr() as *const u8, |
| 23 | +//! self.0.len() * 4) |
26 | 24 | //! }
|
27 | 25 | //! }
|
28 | 26 | //! }
|
|
32 | 30 | //! let driver = lib.get_driver("").expect("No default driver available");
|
33 | 31 | //! let mut device = AutoFormatDevice::new(driver, vec!["", "L", "L,R"]);
|
34 | 32 | //!
|
35 |
| -//! let data = vec![Stereo(16383, -16383)]; |
36 |
| -//! match device.play(&data.as_slice()) { |
| 33 | +//! let data = StereoBuffer(vec![(16383, -16383)]); |
| 34 | +//! match device.play(&data) { |
37 | 35 | //! Ok(_) => (),
|
38 | 36 | //! Err(e) => println!("Playback failed: {}", e.description())
|
39 | 37 | //! }
|
|
0 commit comments