From 34863f5b702c0dbb00d8db5c00efd43d895fcd4c Mon Sep 17 00:00:00 2001 From: Jonathan Bradley Date: Fri, 4 Jul 2025 07:06:45 -0400 Subject: pke: audio: first-pass actually play an asset --- src/audio-types.hpp | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) (limited to 'src/audio-types.hpp') diff --git a/src/audio-types.hpp b/src/audio-types.hpp index 84ab155..aeba5db 100644 --- a/src/audio-types.hpp +++ b/src/audio-types.hpp @@ -4,12 +4,16 @@ #include "asset-manager.hpp" #include "pk.h" +#include "vendor-glm-include.hpp" + #define PKE_AUDIO_MAX_CONCURRENT_COUNT 8 +#define PKE_AUDIO_MAX_SPATIAL_DISTANCE 256.f TypeSafeInt_constexpr(pke_audio_flags, uint8_t, 0xFF); -TypeSafeInt_constexpr(pke_audio_source, uint8_t, 0x0F); +TypeSafeInt_constexpr(pke_audio_source, uint8_t, 0x40); -const pke_audio_flags pke_audio_flag_none = pke_audio_flags{0x00}; +const pke_audio_flags pke_audio_flag_none = pke_audio_flags{0x00}; +const pke_audio_flags pke_audio_flag_pos_spatial = pke_audio_flags{0x01}; const pke_audio_source pke_audio_source_music = pke_audio_source{0x00}; const pke_audio_source pke_audio_source_ambient = pke_audio_source{0x01}; @@ -19,16 +23,19 @@ const pke_audio_source pke_audio_source_sfx = pke_audio_source{0x03}; struct pke_audio_obj { AssetHandle handle; // key pke_audio_source source; // key + glm::vec3 position_source[PKE_AUDIO_MAX_CONCURRENT_COUNT]; pke_audio_flags flags[PKE_AUDIO_MAX_CONCURRENT_COUNT]; uint32_t play_heads[PKE_AUDIO_MAX_CONCURRENT_COUNT]; uint8_t play_count; }; struct pke_audio_master { - pk_arr_t playing_objects; - float source_volumes[pke_audio_source_T_MAX]; - uint32_t channel_count; // mono, stereo, 7.1 - std::mutex mtx_buffer; + pk_arr_t playing_objects; + pk_membucket *bkt_transient; + float master_volume; + float source_volumes[pke_audio_source_T_MAX]; + uint32_t channel_count; // mono, stereo, 7.1 + std::mutex mtx_buffer; }; extern struct pke_audio_master pke_audio_mstr; -- cgit v1.2.3