thestk / rtaudio

A set of C++ classes that provide a common API for realtime audio input/output across Linux (native ALSA, JACK, PulseAudio and OSS), Macintosh OS X (CoreAudio and JACK), and Windows (DirectSound, ASIO, and WASAPI) operating systems.
Other
1.49k stars 317 forks source link

Build with PulseAudio support fails on macOS: `RtAudio.cpp: error: 'sched_getscheduler' was not declared in this scope` #419

Open barracuda156 opened 7 months ago

barracuda156 commented 7 months ago
[ 10%] Building CXX object CMakeFiles/rtaudio.dir/RtAudio.cpp.o
/opt/local/bin/g++-mp-13 -DHAVE_GETTIMEOFDAY -DRTAUDIO_EXPORT -D__LINUX_PULSE__ -D__MACOSX_CORE__ -Drtaudio_EXPORTS -I/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_rtaudio/rtaudio/work/rtaudio-6.0.1 -pipe -Os -DNDEBUG -I/opt/local/include -D_GLIBCXX_USE_CXX11_ABI=0 -Wall -arch ppc -mmacosx-version-min=10.6 -fPIC -std=c++11 -MD -MT CMakeFiles/rtaudio.dir/RtAudio.cpp.o -MF CMakeFiles/rtaudio.dir/RtAudio.cpp.o.d -o CMakeFiles/rtaudio.dir/RtAudio.cpp.o -c /opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_rtaudio/rtaudio/work/rtaudio-6.0.1/RtAudio.cpp
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_rtaudio/rtaudio/work/rtaudio-6.0.1/RtAudio.cpp: In function 'void* pulseaudio_callback(void*)':
/opt/local/var/macports/build/_opt_PPCSnowLeopardPorts_audio_rtaudio/rtaudio/work/rtaudio-6.0.1/RtAudio.cpp:9360:15: error: 'sched_getscheduler' was not declared in this scope
 9360 |              (sched_getscheduler(0) == SCHED_RR ? "" : "_NOT_ ") <<
      |               ^~~~~~~~~~~~~~~~~~
make[2]: *** [CMakeFiles/rtaudio.dir/RtAudio.cpp.o] Error 1

There is no error when it is built only with CoreAudio support.

ntonnaett commented 7 months ago

Does PulseAudio work on macOS?

barracuda156 commented 7 months ago

@ntonnaett It does, yes. (I cannot say whether every possible functionality is supported on every macOS version, but it works and is used in other software on Apple.)