X-Git-Url: https://harrygodden.com/git/?a=blobdiff_plain;f=audio.h;h=0572d6dcf52b623fc7a3f313c370e0d70e0f4d7c;hb=d4746875c05dd3e077e1b266e50ffe4856b45502;hp=498acc35f616680b65d5950522bf99f37f543ccd;hpb=cb16ccb05a796178c879ea8d5091663d215a5217;p=carveJwlIkooP6JGAAIwe30JlM.git diff --git a/audio.h b/audio.h index 498acc3..0572d6d 100644 --- a/audio.h +++ b/audio.h @@ -2,6 +2,12 @@ #define AUDIO_H #include "common.h" +#include "world.h" + +static float audio_occlusion_current = 0.0f, + k_audio_occlusion_rate = 1.0f; + +static int k_audio_debug_soundscape = 0; sfx_vol_control audio_vol_all = { .val = 1.0f, .name = "All" }; @@ -10,6 +16,7 @@ sfx_set audio_board = .sources = "sound/skate.ogg\0" "sound/wheel.ogg\0" "sound/slide.ogg\0" + "sound/reverb.ogg\0" }; sfx_system audio_player0 = @@ -39,12 +46,38 @@ sfx_system audio_player2 = .flags = SFX_FLAG_REPEAT | SFX_FLAG_PERSISTENT }; +sfx_system audio_player3 = +{ + .vol = 0.0f, + .ch = 1, + .vol_src = &audio_vol_all, + .name = "Player3", + .flags = SFX_FLAG_REPEAT | SFX_FLAG_PERSISTENT +}; + static void audio_init(void) { sfx_set_init( &audio_board, NULL ); sfx_set_play( &audio_board, &audio_player0, 0 ); sfx_set_play( &audio_board, &audio_player1, 1 ); sfx_set_play( &audio_board, &audio_player2, 2 ); + sfx_set_play( &audio_board, &audio_player3, 3 ); + + vg_convar_push( (struct vg_convar){ + .name = "aud_debug_soundscape", + .data = &k_audio_debug_soundscape, + .data_type = k_convar_dtype_i32, + .opt_i32 = { .min=0, .max=1, .clamp=0 }, + .persistent = 1 + }); + + vg_convar_push( (struct vg_convar){ + .name = "aud_occlusion_rate", + .data = &k_audio_occlusion_rate, + .data_type = k_convar_dtype_f32, + .opt_f32 = { .clamp = 0 }, + .persistent = 1 + }); } static void audio_free(void) @@ -52,4 +85,65 @@ static void audio_free(void) sfx_set_free( &audio_board ); } +static void audio_sample_occlusion( v3f origin ) +{ + float d = 0.0f, + sample_dist = 880.0f; + + int sample_count = 8; + + for( int i=0; i