From e81599c409c6ccdd4c5bbc5c4ebf319771536626 Mon Sep 17 00:00:00 2001 From: Andreas Sommer Date: Sat, 23 Jan 2016 23:01:16 +0100 Subject: [PATCH] Take desired audio spec as reference --- examples/audio-squarewave.rs | 2 +- examples/audio-wav.rs | 2 +- examples/audio-whitenoise.rs | 2 +- src/sdl2/audio.rs | 7 ++++--- 4 files changed, 7 insertions(+), 6 deletions(-) diff --git a/examples/audio-squarewave.rs b/examples/audio-squarewave.rs index 60a25885..1146d155 100644 --- a/examples/audio-squarewave.rs +++ b/examples/audio-squarewave.rs @@ -33,7 +33,7 @@ fn main() { samples: None // default sample size }; - let device = audio_subsystem.open_playback(None, desired_spec, |spec| { + let device = audio_subsystem.open_playback(None, &desired_spec, |spec| { // Show obtained AudioSpec println!("{:?}", spec); diff --git a/examples/audio-wav.rs b/examples/audio-wav.rs index eca3d3c3..0b389b2c 100644 --- a/examples/audio-wav.rs +++ b/examples/audio-wav.rs @@ -32,7 +32,7 @@ fn main() { samples: None // default }; - let device = audio_subsystem.open_playback(None, desired_spec, |spec| { + let device = audio_subsystem.open_playback(None, &desired_spec, |spec| { let wav = AudioSpecWAV::load_wav("./tests/sine.wav") .ok() .expect("Could not load test WAV file"); diff --git a/examples/audio-whitenoise.rs b/examples/audio-whitenoise.rs index a1f20ff5..4e36abc7 100644 --- a/examples/audio-whitenoise.rs +++ b/examples/audio-whitenoise.rs @@ -31,7 +31,7 @@ fn main() { }; // None: use default device - let mut device = audio_subsystem.open_playback(None, desired_spec, |spec| { + let mut device = audio_subsystem.open_playback(None, &desired_spec, |spec| { // Show obtained AudioSpec println!("{:?}", spec); diff --git a/src/sdl2/audio.rs b/src/sdl2/audio.rs index 12b5a379..bcfc6983 100644 --- a/src/sdl2/audio.rs +++ b/src/sdl2/audio.rs @@ -34,7 +34,7 @@ //! samples: None // default sample size //! }; //! -//! let device = audio_subsystem.open_playback(None, desired_spec, |spec| { +//! let device = audio_subsystem.open_playback(None, &desired_spec, |spec| { //! // initialize the audio callback //! SquareWave { //! phase_inc: 440.0 / spec.freq as f32, @@ -67,7 +67,7 @@ use sys::audio as ll; impl AudioSubsystem { /// Opens a new audio device given the desired parameters and callback. #[inline] - pub fn open_playback(&self, device: Option<&str>, spec: AudioSpecDesired, get_callback: F) -> SdlResult> + pub fn open_playback(&self, device: Option<&str>, spec: &AudioSpecDesired, get_callback: F) -> SdlResult> where CB: AudioCallback, F: FnOnce(AudioSpec) -> CB { AudioDevice::open_playback(self, device, spec, get_callback) @@ -364,6 +364,7 @@ extern "C" fn audio_callback_marshall } } +#[derive(Clone)] pub struct AudioSpecDesired { /// DSP frequency (samples per second). Set to None for the device's fallback frequency. pub freq: Option, @@ -456,7 +457,7 @@ pub struct AudioDevice { impl AudioDevice { /// Opens a new audio device given the desired parameters and callback. - pub fn open_playback(a: &AudioSubsystem, device: Option<&str>, spec: AudioSpecDesired, get_callback: F) -> SdlResult> + pub fn open_playback(a: &AudioSubsystem, device: Option<&str>, spec: &AudioSpecDesired, get_callback: F) -> SdlResult> where F: FnOnce(AudioSpec) -> CB { use std::mem;