libobs: Add obs_audio_monitoring_supported()

Currently, ifdefs are used to determine if monitoring is supported.
This is difficult to maintain and restricts plugins from knowing if
monitoring is supported by OBS. This adds a runtime function to fix
that issue.
master
tt2468 2021-08-31 04:21:20 -07:00 committed by Jim
parent 544633d9bb
commit 6e9644ec15
7 changed files with 35 additions and 1 deletions

View File

@ -425,6 +425,12 @@ Video, Audio, and Graphics
---------------------
.. function:: bool obs_audio_monitoring_supported(void)
:return: Whether audio monitoring is supported on the current platform
---------------------
.. function:: void obs_enum_audio_monitoring_devices(obs_enum_audio_device_cb cb, void *data)
Enumerates audio devices which can be used for audio monitoring.

View File

@ -114,8 +114,9 @@ if(WIN32)
util/windows/HRError.hpp
util/windows/WinHandle.hpp)
set(libobs_audio_monitoring_SOURCES
audio-monitoring/win32/wasapi-output.c
audio-monitoring/win32/wasapi-enum-devices.c
audio-monitoring/win32/wasapi-monitoring-supported.c
audio-monitoring/win32/wasapi-output.c
)
set(libobs_audio_monitoring_HEADERS
audio-monitoring/win32/wasapi-output.h
@ -138,6 +139,7 @@ elseif(APPLE)
util/apple/cfstring-utils.h)
set(libobs_audio_monitoring_SOURCES
audio-monitoring/osx/coreaudio-enum-devices.c
audio-monitoring/osx/coreaudio-monitoring-supported.c
audio-monitoring/osx/coreaudio-output.c
)
set(libobs_audio_monitoring_HEADERS
@ -219,6 +221,7 @@ elseif(UNIX)
set(libobs_audio_monitoring_SOURCES
audio-monitoring/pulse/pulseaudio-wrapper.c
audio-monitoring/pulse/pulseaudio-enum-devices.c
audio-monitoring/pulse/pulseaudio-monitoring-supported.c
audio-monitoring/pulse/pulseaudio-output.c)
else()
set(libobs_audio_monitoring_SOURCES

View File

@ -1,5 +1,10 @@
#include <obs-internal.h>
bool obs_audio_monitoring_supported(void)
{
return false;
}
void obs_enum_audio_monitoring_devices(obs_enum_audio_device_cb cb, void *data)
{
UNUSED_PARAMETER(cb);

View File

@ -0,0 +1,6 @@
#include "../../obs-internal.h"
bool obs_audio_monitoring_supported(void)
{
return true;
}

View File

@ -0,0 +1,6 @@
#include <obs-internal.h>
bool obs_audio_monitoring_supported(void)
{
return true;
}

View File

@ -0,0 +1,6 @@
#include "../../obs-internal.h"
bool obs_audio_monitoring_supported(void)
{
return true;
}

View File

@ -743,6 +743,8 @@ EXPORT bool obs_obj_is_private(void *obj);
typedef bool (*obs_enum_audio_device_cb)(void *data, const char *name,
const char *id);
EXPORT bool obs_audio_monitoring_supported(void);
EXPORT void obs_enum_audio_monitoring_devices(obs_enum_audio_device_cb cb,
void *data);