diff --git a/src/sdl2/audio.rs b/src/sdl2/audio.rs index e573e7fe..8abe5919 100644 --- a/src/sdl2/audio.rs +++ b/src/sdl2/audio.rs @@ -262,11 +262,15 @@ impl AudioDevice { } } - pub fn open(device: &str, iscapture: int, spec: &AudioSpec) -> Result<(AudioDevice, ~AudioSpec), ~str> { + pub fn open(device: Option<&str>, iscapture: int, spec: &AudioSpec) -> Result<(AudioDevice, ~AudioSpec), ~str> { //! SDL_OpenAudioDevice let obtained = unsafe { mem::uninit::() }; unsafe { - let ret = ll::SDL_OpenAudioDevice(device.to_c_str().unwrap(), + let device_c_str = match device { + None => ptr::null(), + Some(device) => device.to_c_str().unwrap(), + }; + let ret = ll::SDL_OpenAudioDevice(device_c_str, iscapture as c_int, cast::transmute(spec), cast::transmute(&obtained),