commit 4d783d76cb996f31fc3fd2d1d6a9b74af056139c
parent f3c35fe5f87061126e7b77c5fca8f4bfa8b5b590
Author: falkTX <falktx@falktx.com>
Date: Sun, 2 Apr 2023 21:57:00 +0200
Use wasapi on windows standalones
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
4 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/Makefile.plugins.mk b/Makefile.plugins.mk
@@ -98,14 +98,16 @@ endif
else ifneq ($(SKIP_RTAUDIO_FALLBACK),true)
+JACK_FLAGS += -DHAVE_GETTIMEOFDAY
+
ifeq ($(MACOS),true)
JACK_LIBS += -framework CoreAudio -framework CoreFoundation -framework CoreMIDI
else ifeq ($(WINDOWS),true)
JACK_LIBS += -lole32 -lwinmm
# DirectSound
-JACK_LIBS += -ldsound
+# JACK_LIBS += -ldsound
# WASAPI
-# JACK_LIBS += -lksuser -lmfplat -lmfuuid -lwmcodecdspuuid
+JACK_LIBS += -lksuser -lmfplat -lmfuuid -lwmcodecdspuuid
else
ifeq ($(HAVE_PULSEAUDIO),true)
JACK_FLAGS += $(PULSEAUDIO_FLAGS)
diff --git a/cmake/DPF-plugin.cmake b/cmake/DPF-plugin.cmake
@@ -223,6 +223,7 @@ function(dpf__build_jack NAME HAS_UI)
OUTPUT_NAME "${NAME}")
target_compile_definitions("${NAME}" PUBLIC "HAVE_JACK")
+ target_compile_definitions("${NAME}-jack" PRIVATE "HAVE_GETTIMEOFDAY")
find_package(PkgConfig)
pkg_check_modules(SDL2 "sdl2")
@@ -266,7 +267,7 @@ function(dpf__build_jack NAME HAS_UI)
"${APPLE_COREFOUNDATION_FRAMEWORK}"
"${APPLE_COREMIDI_FRAMEWORK}")
elseif(WIN32)
- target_link_libraries("${NAME}-jack" PRIVATE "dsound" "ole32" "winmm")
+ target_link_libraries("${NAME}-jack" PRIVATE "ksuser" "mfplat" "mfuuid" "ole32" "winmm" "wmcodecdspuuid")
if(HAS_UI AND MINGW)
set_target_properties("${NAME}-jack" PROPERTIES WIN32_EXECUTABLE TRUE)
endif()
diff --git a/distrho/src/jackbridge/RtAudioBridge.hpp b/distrho/src/jackbridge/RtAudioBridge.hpp
@@ -28,9 +28,9 @@
# define RTAUDIO_API_TYPE MACOSX_CORE
# define RTMIDI_API_TYPE MACOSX_CORE
#elif defined(DISTRHO_OS_WINDOWS) && !defined(_MSC_VER)
-# define __WINDOWS_DS__
+# define __WINDOWS_WASAPI__
# define __WINDOWS_MM__
-# define RTAUDIO_API_TYPE WINDOWS_DS
+# define RTAUDIO_API_TYPE WINDOWS_WASAPI
# define RTMIDI_API_TYPE WINDOWS_MM
#else
# if defined(HAVE_PULSEAUDIO)
diff --git a/distrho/src/jackbridge/rtaudio/RtAudio.cpp b/distrho/src/jackbridge/rtaudio/RtAudio.cpp
@@ -4640,13 +4640,10 @@ void RtApiWasapi::stopStream( void )
stream_.state = STREAM_STOPPING;
// wait until stream thread is stopped
- while( stream_.state != STREAM_STOPPED ) {
- Sleep( 1 );
+ for (int i=0; i < 2 && stream_.state != STREAM_STOPPED; ++i ) {
+ Sleep( 1000 * stream_.bufferSize / stream_.sampleRate );
}
- // Wait for the last buffer to play before stopping.
- Sleep( 1000 * stream_.bufferSize / stream_.sampleRate );
-
// close thread handle
if ( stream_.callbackInfo.thread && !CloseHandle( ( void* ) stream_.callbackInfo.thread ) ) {
errorText_ = "RtApiWasapi::stopStream: Unable to close callback thread.";