add strings to console variables
[vg.git] / vg_audio.h
index 2bba7ea09ec4e4ea31fa806cf3519523844a6750..5df5638b0b1660a474df3b450e27b6735e03181f 100644 (file)
@@ -96,7 +96,7 @@ struct audio_clip{
 
 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;
@@ -276,13 +276,13 @@ static void vg_audio_device_init(void){
    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 );
@@ -298,15 +298,18 @@ static void vg_audio_device_init(void){
    }
 }
 
-
-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 =