1- use crate :: app:: App ;
21use sdl2:: audio:: { AudioCallback , AudioDevice , AudioSpecDesired } ;
32
43pub struct Audio {
5- app : & App ,
64 audio_subsystem : sdl2:: AudioSubsystem ,
75 audio_device_index : u8 ,
86 // device_list: Vec<sdl2::audio::AudioDevice>,
97}
108
119impl Audio {
12- pub fn new ( app : & App ) -> Self {
13- let audio_subsystem = app . sdl_context . audio ( ) . unwrap ( ) ;
10+ pub fn new ( sdl_context : & sdl2 :: Sdl ) -> Self {
11+ let audio_subsystem = sdl_context. audio ( ) . unwrap ( ) ;
1412
1513 Self {
16- app,
1714 audio_subsystem,
1815 audio_device_index : 0 ,
1916 }
@@ -29,12 +26,29 @@ impl Audio {
2926 // }
3027 // }
3128
32- pub fn begin_audio_capture ( mut self ) {
33- let frame_rate = self . app . config . frame_rate . unwrap ( ) ;
29+ pub fn begin_audio_capture ( self , frame_rate : u32 ) {
30+ let sample_rate: u32 = 44100 ;
31+
32+ // should be enough for 1 frame
33+ let buffer_size = ( sample_rate / frame_rate) as u16 ;
34+
3435 let desired_spec = AudioSpecDesired {
35- freq : Some ( 44100 ) ,
36+ freq : Some ( sample_rate . try_into ( ) . unwrap ( ) ) ,
3637 channels : None ,
37- samples : Some ( 512 ) , // should be 1 frame
38+ samples : Some ( buffer_size ) ,
3839 } ;
40+
41+ // let audio_device = self
42+ // .audio_subsystem
43+ // .open_capture(None, &desired_spec, |spec| {
44+ // // initialize the audio callback
45+ // AudioCallback {
46+ // spec,
47+ // buffer_size,
48+ // buffer: vec![0; buffer_size as usize],
49+ // position: 0,
50+ // }
51+ // })
52+ // .unwrap();
3953 }
4054}
0 commit comments