diff options
| author | Jonathan Bradley <jcb@pikum.xyz> | 2025-07-04 07:06:45 -0400 |
|---|---|---|
| committer | Jonathan Bradley <jcb@pikum.xyz> | 2025-07-04 07:06:45 -0400 |
| commit | 34863f5b702c0dbb00d8db5c00efd43d895fcd4c (patch) | |
| tree | 09e0249e16e937c22ec0c04cfa1bc4b0e4de337e /src/audio-types.hpp | |
| parent | 1c87a0e431d30aaf19195f8a45c7607add21018a (diff) | |
pke: audio: first-pass actually play an asset
Diffstat (limited to 'src/audio-types.hpp')
| -rw-r--r-- | src/audio-types.hpp | 19 |
1 files changed, 13 insertions, 6 deletions
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<pke_audio_obj> 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<pke_audio_obj> 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; |
