diff --git a/src/framework/audio/CMakeLists.txt b/src/framework/audio/CMakeLists.txt index 7c7e21565bba4..0774c8f101fa5 100644 --- a/src/framework/audio/CMakeLists.txt +++ b/src/framework/audio/CMakeLists.txt @@ -295,6 +295,9 @@ if (MUSE_MODULE_AUDIO_JACK) find_package(Jack REQUIRED) set(MODULE_INCLUDE ${MODULE_INCLUDE} ${JACK_INCLUDE_DIRS} ) set(MODULE_LINK ${MODULE_LINK} ${JACK_LIBRARIES} pthread ) + find_package(ALSA REQUIRED) + set(MODULE_INCLUDE ${MODULE_INCLUDE} ${ALSA_INCLUDE_DIRS} ) + set(MODULE_LINK ${MODULE_LINK} ${ALSA_LIBRARIES} pthread ) else () if (OS_IS_MAC) find_library(AudioToolbox NAMES AudioToolbox) diff --git a/src/framework/audio/internal/platform/jack/jackaudiodriver.cpp b/src/framework/audio/internal/platform/jack/jackaudiodriver.cpp index 828f87873929d..bffa069416069 100644 --- a/src/framework/audio/internal/platform/jack/jackaudiodriver.cpp +++ b/src/framework/audio/internal/platform/jack/jackaudiodriver.cpp @@ -37,7 +37,6 @@ static constexpr char JACK_DEFAULT_DEVICE_ID[] = "default"; using namespace muse::audio; -//namespace { struct JackData { float* buffer = nullptr; @@ -50,7 +49,7 @@ struct JackData }; static JackData* s_jackData{ nullptr }; -muse::audio::IAudioDriver::Spec s_format; +static muse::audio::IAudioDriver::Spec s_format2; int muse::audio::jack_process_callback(jack_nframes_t nframes, void*) { @@ -169,7 +168,7 @@ bool JackAudioDriver::open(const Spec& spec, Spec* activeSpec) *activeSpec = spec; activeSpec->format = Format::AudioF32; activeSpec->sampleRate = jackSamplerate; - s_format = *activeSpec; + s_format2 = *activeSpec; } jack_on_shutdown(handle, jack_cleanup_callback, 0); @@ -210,7 +209,7 @@ bool JackAudioDriver::selectOutputDevice(const AudioDeviceID& deviceId) bool ok = true; if (reopen) { - ok = open(s_format, &s_format); + ok = open(s_format2, &s_format2); } if (ok) { @@ -245,22 +244,22 @@ mu::async::Notification JackAudioDriver::availableOutputDevicesChanged() const unsigned int JackAudioDriver::outputDeviceBufferSize() const { - return s_format.samples; + return s_format2.samples; } bool JackAudioDriver::setOutputDeviceBufferSize(unsigned int bufferSize) { - if (s_format.samples == bufferSize) { + if (s_format2.samples == bufferSize) { return true; } bool reopen = isOpened(); close(); - s_format.samples = bufferSize; + s_format2.samples = bufferSize; bool ok = true; if (reopen) { - ok = open(s_format, &s_format); + ok = open(s_format2, &s_format2); } if (ok) { diff --git a/src/framework/audio/internal/platform/lin/linuxaudiodriver.cpp b/src/framework/audio/internal/platform/lin/linuxaudiodriver.cpp index 77ede12636d77..e846a2dc49c15 100644 --- a/src/framework/audio/internal/platform/lin/linuxaudiodriver.cpp +++ b/src/framework/audio/internal/platform/lin/linuxaudiodriver.cpp @@ -52,7 +52,7 @@ struct ALSAData }; static ALSAData* s_alsaData{ nullptr }; -muse::audio::IAudioDriver::Spec s_format; +static muse::audio::IAudioDriver::Spec s_format; static void* alsaThread(void* aParam) {