diff options
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; |
