# Fixes missing audio output for pulseaudio with >=qt-6.9.2 # Cherry picked from https://github.com/bazineta/js8call From c90ca32143352ec3b55a9779e75b42edc4584edc Mon Sep 17 00:00:00 2001 From: Allan Bazinet Date: Thu, 9 Oct 2025 11:15:36 -0700 Subject: [PATCH] Make Modulator::bytesAvailable() universal As all platforms seem to now require a Modulator::bytesAvailable() override, remove the Windows platform guard from it. Properly decorate the accessor with `override`. --- Modulator.hpp | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/Modulator.hpp b/Modulator.hpp index d4bb4ae6..de199aca 100644 --- a/Modulator.hpp +++ b/Modulator.hpp @@ -74,15 +74,18 @@ class Modulator final return -1; // we don't consume data } -#if defined(Q_OS_WIN) -// On Windows, bytesAvailable() must return a size that exceeds some threshold -// in order for the AudioSink to go into Active state and start pulling data. -// See: https://bugreports.qt.io/browse/QTBUG-108672 - qint64 bytesAvailable() const + // In current Qt versions, bytesAvailable() must return a size + // that exceeds some threshold in order for the AudioSink to go + // into Active state and start pulling data. This behavior began + // on Windows with the 6.4 release, on Mac with 6.8, and on Linux + // with 6.9. + // + // See: https://bugreports.qt.io/browse/QTBUG-108672 + + qint64 bytesAvailable() const override { return 8000; } -#endif private: