Update Kha/Backends/Kinc-HL/kinc-bridge/kinc.c.h

This commit is contained in:
Onek8 2025-02-01 13:53:43 +00:00
parent 20db9cc24d
commit 181b860360

View File

@ -42,8 +42,8 @@ static void update(void *data) {
static bool mixThreadregistered = false;
static void mix(kinc_a2_buffer_t *buffer, int samples) {
#ifdef KORE_MULTITHREADED_AUDIO
static void mix(kinc_a2_buffer_t *buffer, uint32_t samples, void *userdata) {
#ifdef KINC_MULTITHREADED_AUDIO
if (!mixThreadregistered) {
vdynamic *ret;
hl_register_thread(&ret);
@ -54,16 +54,18 @@ static void mix(kinc_a2_buffer_t *buffer, int samples) {
audioCallCallback(samples);
for (int i = 0; i < samples; ++i) {
float value = audioReadSample();
*(float *)&buffer->data[buffer->write_location] = value;
buffer->write_location += 4;
for (uint32_t i = 0; i < samples; i += 2) {
float left_value = audioReadSample();
float right_value = audioReadSample();
*(float *)&buffer->channels[0][buffer->write_location] = left_value;
*(float *)&buffer->channels[1][buffer->write_location] = right_value;
buffer->write_location += 1;
if (buffer->write_location >= buffer->data_size) {
buffer->write_location = 0;
}
}
#ifdef KORE_MULTITHREADED_AUDIO
#ifdef KINC_MULTITHREADED_AUDIO
hl_blocking(false);
#endif
}
@ -92,9 +94,9 @@ void hl_init_kore(vbyte *title, int width, int height, int samplesPerPixel, bool
void hl_kinc_init_audio(vclosure *callCallback, vclosure *readSample, int *outSamplesPerSecond) {
audioCallCallback = *((FN_AUDIO_CALL_CALLBACK *)(&callCallback->fun));
audioReadSample = *((FN_AUDIO_READ_SAMPLE *)(&readSample->fun));
kinc_a2_set_callback(mix);
kinc_a2_set_callback(mix, NULL);
kinc_a2_init();
*outSamplesPerSecond = kinc_a2_samples_per_second;
*outSamplesPerSecond = kinc_a2_samples_per_second();
}
void hl_run_kore(void) {