bespokesynth: Fix compatibility with pipewire's JACK emulation

This commit is contained in:
OPNA2608
2025-01-08 15:12:47 +01:00
parent ebdf35c436
commit 450fcb5710
2 changed files with 36 additions and 0 deletions
@@ -0,0 +1,30 @@
diff --git a/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp b/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
index 4cce7016f..25554a7cd 100644
--- a/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
+++ b/libs/JUCE/modules/juce_audio_devices/native/juce_JackAudio_linux.cpp
@@ -291,7 +291,6 @@ public:
juce::jack_on_info_shutdown (client, infoShutdownCallback, this);
juce::jack_set_xrun_callback (client, xrunCallback, this);
juce::jack_activate (client);
- deviceIsOpen = true;
if (! inputChannels.isZero())
{
@@ -336,6 +335,7 @@ public:
}
updateActivePorts();
+ deviceIsOpen = true;
return lastError;
}
@@ -525,7 +525,8 @@ private:
static void portConnectCallback (jack_port_id_t, jack_port_id_t, int, void* arg)
{
if (JackAudioIODevice* device = static_cast<JackAudioIODevice*> (arg))
- device->mainThreadDispatcher.updateActivePorts();
+ if (device->isOpen())
+ device->mainThreadDispatcher.updateActivePorts();
}
static void threadInitCallback (void* /* callbackArgument */)
+6
View File
@@ -66,6 +66,12 @@ stdenv.mkDerivation (finalAttrs: {
fetchSubmodules = true;
};
patches = [
# Fix compatibility with pipewire's JACK emulation
# https://github.com/BespokeSynth/BespokeSynth/issues/1405#issuecomment-1721437868
./2001-bespokesynth-fix-pipewire-jack.patch
];
# Linux builds are sandboxed properly, this always returns "localhost" there.
# Darwin builds doesn't have the same amount of sandboxing by default, and the builder's hostname is returned.
# In case this ever gets embedded into VersionInfoBld.cpp, hardcode it to the Linux value