Add a QSA backend for QNX
This commit is contained in:
@@ -62,6 +62,9 @@ static struct BackendInfo BackendList[] = {
|
||||
#ifdef HAVE_SNDIO
|
||||
{ "sndio", alc_sndio_init, alc_sndio_deinit, alc_sndio_probe, EmptyFuncs },
|
||||
#endif
|
||||
#ifdef HAVE_QSA
|
||||
{ "qsa", alc_qsa_init, alc_qsa_deinit, alc_qsa_probe, EmptyFuncs },
|
||||
#endif
|
||||
#ifdef HAVE_MMDEVAPI
|
||||
{ "mmdevapi", alcMMDevApiInit, alcMMDevApiDeinit, alcMMDevApiProbe, EmptyFuncs },
|
||||
#endif
|
||||
|
||||
+1170
File diff suppressed because it is too large
Load Diff
@@ -37,6 +37,7 @@ OPTION(ALSOFT_BACKEND_ALSA "Check for ALSA backend" ON)
|
||||
OPTION(ALSOFT_BACKEND_OSS "Check for OSS backend" ON)
|
||||
OPTION(ALSOFT_BACKEND_SOLARIS "Check for Solaris backend" ON)
|
||||
OPTION(ALSOFT_BACKEND_SNDIO "Check for SndIO backend" ON)
|
||||
OPTION(ALSOFT_BACKEND_QSA "Check for QSA backend" ON)
|
||||
OPTION(ALSOFT_BACKEND_MMDEVAPI "Check for MMDevApi" ON)
|
||||
OPTION(ALSOFT_BACKEND_DSOUND "Check for DirectSound backend" ON)
|
||||
OPTION(ALSOFT_BACKEND_WINMM "Check for Windows Multimedia backend" ON)
|
||||
@@ -50,6 +51,7 @@ OPTION(ALSOFT_REQUIRE_ALSA "Require ALSA backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_OSS "Require OSS backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_SOLARIS "Require Solaris backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_SNDIO "Require SndIO backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_QSA "Require QSA backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_MMDEVAPI "Require MMDevApi" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_DSOUND "Require DirectSound backend" OFF)
|
||||
OPTION(ALSOFT_REQUIRE_WINMM "Require Windows Multimedia backend" OFF)
|
||||
@@ -76,6 +78,12 @@ ELSE()
|
||||
SET(LIBNAME openal)
|
||||
ENDIF()
|
||||
|
||||
# QNX's gcc do not uses /usr/include and /usr/lib pathes by default
|
||||
IF ("${CMAKE_C_PLATFORM_ID}" STREQUAL "QNX")
|
||||
ADD_DEFINITIONS("-I/usr/include")
|
||||
SET(EXTRA_LIBS ${EXTRA_LIBS} -L/usr/lib)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT LIBTYPE)
|
||||
SET(LIBTYPE SHARED)
|
||||
ENDIF()
|
||||
@@ -509,6 +517,7 @@ SET(HAVE_ALSA 0)
|
||||
SET(HAVE_OSS 0)
|
||||
SET(HAVE_SOLARIS 0)
|
||||
SET(HAVE_SNDIO 0)
|
||||
SET(HAVE_QSA 0)
|
||||
SET(HAVE_DSOUND 0)
|
||||
SET(HAVE_MMDEVAPI 0)
|
||||
SET(HAVE_WINMM 0)
|
||||
@@ -582,6 +591,27 @@ IF(ALSOFT_REQUIRE_SNDIO AND NOT HAVE_SNDIO)
|
||||
MESSAGE(FATAL_ERROR "Failed to enabled required SndIO backend")
|
||||
ENDIF()
|
||||
|
||||
# Check QSA backend
|
||||
IF (ALSOFT_BACKEND_QSA AND "${CMAKE_C_PLATFORM_ID}" STREQUAL "QNX")
|
||||
CHECK_INCLUDE_FILE(sys/asoundlib.h HAVE_SYS_ASOUNDLIB_H)
|
||||
IF(HAVE_SYS_ASOUNDLIB_H)
|
||||
CHECK_SHARED_FUNCTION_EXISTS(snd_pcm_open "sys/asoundlib.h" asound "" HAVE_LIBASOUND)
|
||||
IF(HAVE_LIBASOUND OR HAVE_DLFCN_H)
|
||||
SET(HAVE_QSA 1)
|
||||
SET(ALC_OBJS ${ALC_OBJS} Alc/backends/qsa.c)
|
||||
SET(EXTRA_LIBS asound ${EXTRA_LIBS})
|
||||
IF(HAVE_DLFCN_H)
|
||||
SET(BACKENDS "${BACKENDS} QSA,")
|
||||
ELSE()
|
||||
SET(BACKENDS "${BACKENDS} QSA \(linked\),")
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
ENDIF()
|
||||
IF(ALSOFT_REQUIRE_QSA AND NOT HAVE_QSA)
|
||||
MESSAGE(FATAL_ERROR "Failed to enabled required QSA backend")
|
||||
ENDIF()
|
||||
|
||||
# Check for MMDevApi backend
|
||||
IF(HAVE_WINDOWS_H)
|
||||
IF(ALSOFT_BACKEND_MMDEVAPI)
|
||||
|
||||
@@ -118,7 +118,7 @@ void *GetSymbol(void *handle, const char *name);
|
||||
|
||||
typedef void *volatile XchgPtr;
|
||||
|
||||
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
|
||||
#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) && !defined(__QNXNTO__)
|
||||
typedef ALuint RefCount;
|
||||
static __inline RefCount IncrementRef(volatile RefCount *ptr)
|
||||
{ return __sync_add_and_fetch(ptr, 1); }
|
||||
@@ -449,6 +449,9 @@ void alc_ca_probe(enum DevProbe type);
|
||||
ALCboolean alc_opensl_init(BackendFuncs *func_list);
|
||||
void alc_opensl_deinit(void);
|
||||
void alc_opensl_probe(enum DevProbe type);
|
||||
ALCboolean alc_qsa_init(BackendFuncs *func_list);
|
||||
void alc_qsa_deinit(void);
|
||||
void alc_qsa_probe(enum DevProbe type);
|
||||
ALCboolean alc_null_init(BackendFuncs *func_list);
|
||||
void alc_null_deinit(void);
|
||||
void alc_null_probe(enum DevProbe type);
|
||||
|
||||
+1
-1
@@ -121,7 +121,7 @@
|
||||
# followed by all other available backends, while 'oss' will list OSS only).
|
||||
# Backends prepended with - won't be available for use (eg. '-oss,' will allow
|
||||
# all available backends except OSS). An empty list means the default.
|
||||
#drivers = pulse,alsa,core,oss,solaris,sndio,mmdevapi,dsound,winmm,port,opensl,null,wave
|
||||
#drivers = pulse,alsa,core,oss,solaris,sndio,qsa,mmdevapi,dsound,winmm,port,opensl,null,wave
|
||||
|
||||
## excludefx:
|
||||
# Sets which effects to exclude, preventing apps from using them. This can
|
||||
|
||||
@@ -41,6 +41,9 @@
|
||||
/* Define if we have the SndIO backend */
|
||||
#cmakedefine HAVE_SNDIO
|
||||
|
||||
/* Define if we have the QSA backend */
|
||||
#cmakedefine HAVE_QSA
|
||||
|
||||
/* Define if we have the MMDevApi backend */
|
||||
#cmakedefine HAVE_MMDEVAPI
|
||||
|
||||
|
||||
Reference in New Issue
Block a user