From b0f7017cac6e966ad14bfee24c83bda8ee41bf1b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Br=C3=BCckner?= Date: Tue, 21 Dec 2021 22:41:42 +0100 Subject: [PATCH 1/2] [HL] Correctly set sample rate in Haxe API when system falls back to different mix format --- Backends/Kinc-HL/KoreC/kore.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Backends/Kinc-HL/KoreC/kore.cpp b/Backends/Kinc-HL/KoreC/kore.cpp index f53d842ff..dda5b8cbd 100644 --- a/Backends/Kinc-HL/KoreC/kore.cpp +++ b/Backends/Kinc-HL/KoreC/kore.cpp @@ -98,9 +98,9 @@ extern "C" void hl_init_kore(vbyte *title, int width, int height, int samplesPer extern "C" void hl_kore_init_audio(vclosure *callCallback, vclosure *readSample, int *outSamplesPerSecond) { audioCallCallback = *((FN_AUDIO_CALL_CALLBACK*)(&callCallback->fun)); audioReadSample = *((FN_AUDIO_READ_SAMPLE*)(&readSample->fun)); - *outSamplesPerSecond = Kore::Audio2::samplesPerSecond; Kore::Audio2::audioCallback = mix; Kore::Audio2::init(); + *outSamplesPerSecond = Kore::Audio2::samplesPerSecond; } extern "C" void hl_run_kore() { From c70a8cce5d67e7a5296d610f668d5a17b83da2ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20Br=C3=BCckner?= Date: Tue, 21 Dec 2021 22:42:49 +0100 Subject: [PATCH 2/2] [HL] Use system sample rate for audio buffers to fix wrong playback speeds --- Backends/Kinc-HL/kha/SystemImpl.hx | 4 ++-- Backends/Kinc-HL/kha/audio2/Audio.hx | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Backends/Kinc-HL/kha/SystemImpl.hx b/Backends/Kinc-HL/kha/SystemImpl.hx index 9cb52fd23..4d09d92b7 100644 --- a/Backends/Kinc-HL/kha/SystemImpl.hx +++ b/Backends/Kinc-HL/kha/SystemImpl.hx @@ -37,11 +37,11 @@ class SystemImpl { var g4 = new kha.korehl.graphics4.Graphics(); framebuffer = new Framebuffer(0, null, null, g4); framebuffer.init(new kha.graphics2.Graphics1(framebuffer), new kha.korehl.graphics4.Graphics2(framebuffer), g4); - kha.audio2.Audio._init(); - kha.audio1.Audio._init(); final samplesRef: hl.Ref = kha.audio2.Audio.samplesPerSecond; kore_init_audio(kha.audio2.Audio._callCallback, kha.audio2.Audio._readSample, samplesRef); kha.audio2.Audio.samplesPerSecond = samplesRef.get(); + kha.audio1.Audio._init(); + kha.audio2.Audio._init(); keyboard = new kha.input.Keyboard(); mouse = new kha.input.MouseImpl(); pen = new kha.input.Pen(); diff --git a/Backends/Kinc-HL/kha/audio2/Audio.hx b/Backends/Kinc-HL/kha/audio2/Audio.hx index 832b8f0e8..8edd5e6b0 100644 --- a/Backends/Kinc-HL/kha/audio2/Audio.hx +++ b/Backends/Kinc-HL/kha/audio2/Audio.hx @@ -10,7 +10,7 @@ class Audio { public static function _init() { var bufferSize = 1024 * 2; - buffer = new Buffer(bufferSize * 4, 2, 44100); + buffer = new Buffer(bufferSize * 4, 2, samplesPerSecond); } public static function _callCallback(samples: Int): Void {