X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=vg_audio.h;h=09998718a11ada12f06aeb68f40d5dd126d02573;hb=c8399b3248b4965990ec2573d3ac2e27b1b8dbcc;hp=4d203bf9c1aafae550af5dc158bac615b108ba7c;hpb=4f4aba081a05f72ad1bbc7844ca4060cd1f43fe6;p=vg.git diff --git a/vg_audio.h b/vg_audio.h index 4d203bf..0999871 100644 --- a/vg_audio.h +++ b/vg_audio.h @@ -94,7 +94,7 @@ struct audio_clip{ }; }; -static struct vg_audio_system{ +struct vg_audio_system{ SDL_AudioDeviceID sdl_output_device; void *audio_pool, @@ -205,7 +205,7 @@ static struct vg_audio_system{ float internal_global_volume, external_global_volume; } -vg_audio = { .external_global_volume = 1.0f }; +static vg_audio = { .external_global_volume = 1.0f }; #include "vg/vg_audio_dsp.h" @@ -850,10 +850,25 @@ static void audio_channel_mix( audio_channel *ch, float *buffer ) } } - if( !vg_validf( framevol_l ) ) vg_fatal_error( "NaN left channel" ); - if( !vg_validf( framevol_r ) ) vg_fatal_error( "NaN right channel" ); - if( !vg_validf( frame_samplerate ) ) - vg_fatal_error( "NaN sample rate" ); + if( !vg_validf( framevol_l ) || + !vg_validf( framevol_r ) || + !vg_validf( frame_samplerate ) ){ + vg_fatal_error( "Invalid sampling conditions.\n" + "This crash is to protect your ears.\n" + " channel: %p (%s)\n" + " sample_rate: %f\n" + " volume: L%f R%f\n" + " listener: %.2f %.2f %.2f [%.2f %.2f %.2f]\n", + ch, ch->name, frame_samplerate, + framevol_l, framevol_r, + vg_audio.internal_listener_pos[0], + vg_audio.internal_listener_pos[1], + vg_audio.internal_listener_pos[2], + vg_audio.internal_listener_ears[0], + vg_audio.internal_listener_ears[1], + vg_audio.internal_listener_ears[2] + ); + } } u32 buffer_length = AUDIO_MIX_FRAME_SIZE;