summaryrefslogtreecommitdiff
path: root/src/audio-types.hpp
diff options
context:
space:
mode:
authorJonathan Bradley <jcb@pikum.xyz>2025-07-14 16:35:32 -0400
committerJonathan Bradley <jcb@pikum.xyz>2025-07-14 16:35:32 -0400
commit7f0b0a59425321dcc880ddc0f4b479bce85e0bb0 (patch)
treec5c10d187faf26a248d859deac68ba83bbe26e97 /src/audio-types.hpp
parentf88ca0bc946bae086e02eacdc6c129f00e2e07e3 (diff)
pke: audio: process each tick, impl buffer copy
Diffstat (limited to 'src/audio-types.hpp')
-rw-r--r--src/audio-types.hpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/audio-types.hpp b/src/audio-types.hpp
index a0ab3fb..c573f2b 100644
--- a/src/audio-types.hpp
+++ b/src/audio-types.hpp
@@ -9,6 +9,8 @@
#define PKE_AUDIO_MAX_CONCURRENT_COUNT 8
#define PKE_AUDIO_MAX_SPATIAL_DISTANCE 256.f
+#define PKE_AUDIO_BITRATE 48000
+#define PKE_AUDIO_BUFFER_FRAMES 2048
TypeSafeInt_constexpr(pke_audio_flags, uint8_t, 0xFF);
TypeSafeInt_constexpr(pke_audio_source, uint8_t, 0x40);
@@ -26,7 +28,7 @@ struct pke_audio_fx_params_reverb {
};
struct pke_audio_fx_params_delay {
- uint64_t delay_frames;
+ int64_t delay_frames;
};
struct pke_audio_fx_params_low_pass_filter {
@@ -46,11 +48,16 @@ struct pke_audio_obj {
struct pke_audio_master {
pk_arr_t<pke_audio_obj> playing_objects;
- pk_membucket *bkt_transient;
+ pk_membucket *bkt;
float master_volume;
float source_volumes[pke_audio_source_T_MAX];
uint32_t channel_count; // mono, stereo, 7.1
+ float *buffer;
+ int64_t buffer_size;
+ int64_t buffer_frames;
+ int64_t elapsed_ns;
std::mutex mtx_buffer;
+ std::chrono::time_point<std::chrono::steady_clock> last_tick_tp{};
};
extern struct pke_audio_master pke_audio_mstr;