use sdl2; use sdl2::audio::{AudioQueue, AudioSpecDesired}; use rustboyadvance_ng::AudioInterface; pub struct Sdl2AudioPlayer { pub device: AudioQueue, freq: i32, } impl AudioInterface for Sdl2AudioPlayer { fn get_sample_rate(&self) -> i32 { self.freq } fn play(&mut self, samples: &[i16]) { self.device.queue(&samples); } } pub fn create_audio_player(sdl: &sdl2::Sdl) -> Sdl2AudioPlayer { let audio_subsystem = sdl.audio().unwrap(); let desired_spec = AudioSpecDesired { freq: Some(44_100), channels: Some(2), // stereo samples: None, }; let device = audio_subsystem .open_queue::(None, &desired_spec) .unwrap(); println!("Found audio device: {:?}", device.spec()); let freq = device.spec().freq; device.resume(); Sdl2AudioPlayer { device, freq } }