struct vg_audio_system{
SDL_AudioDeviceID sdl_output_device;
- char *force_device_name; /* NULL: using default */
+ vg_str device_choice; /* buffer is null? use default from OS */
void *audio_pool,
*decode_buffer;
spec_desired.userdata = NULL;
vg_audio.sdl_output_device =
- SDL_OpenAudioDevice( vg_audio.force_device_name, 0,
+ SDL_OpenAudioDevice( vg_audio.device_choice.buffer, 0,
&spec_desired, &spec_got,0 );
vg_info( "Start audio device (%u, F32, %u) @%s\n",
spec_desired.freq,
AUDIO_FRAME_SIZE,
- vg_audio.force_device_name );
+ vg_audio.device_choice.buffer );
if( vg_audio.sdl_output_device ){
SDL_PauseAudioDevice( vg_audio.sdl_output_device, 0 );
}
}
-
-static void vg_audio_init(void){
+static void vg_audio_register(void){
vg_console_reg_var( "debug_audio", &vg_audio.debug_ui,
k_var_dtype_i32, VG_VAR_CHEAT );
vg_console_reg_var( "debug_dsp", &vg_audio.debug_dsp,
k_var_dtype_i32, VG_VAR_CHEAT );
vg_console_reg_var( "volume", &vg_audio.external_global_volume,
k_var_dtype_f32, VG_VAR_PERSISTENT );
+ vg_console_reg_var( "vg_audio_device", &vg_audio.device_choice,
+ k_var_dtype_str, VG_VAR_PERSISTENT );
+}
+static void vg_audio_init(void){
/* allocate memory */
/* 32mb fixed */
vg_audio.audio_pool =