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;