summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--configure.ac38
-rw-r--r--src/Makefile.am4
-rw-r--r--src/daemon/main.c2
-rw-r--r--src/modules/module-detect.c4
-rw-r--r--src/modules/module-hal-detect.c16
5 files changed, 40 insertions, 24 deletions
diff --git a/configure.ac b/configure.ac
index 40792130..f7034792 100644
--- a/configure.ac
+++ b/configure.ac
@@ -664,26 +664,42 @@ AM_CONDITIONAL([HAVE_GDBM], [test "x$HAVE_GDBM" = x1])
#### OSS support (optional) ####
-AC_ARG_ENABLE([oss],
- AS_HELP_STRING([--disable-oss],[Disable optional OSS support]),
+AC_ARG_ENABLE([oss-output],
+ AS_HELP_STRING([--disable-oss-output],[Disable optional OSS output support]),
[
case "${enableval}" in
- yes) oss=yes ;;
- no) oss=no ;;
- *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss) ;;
+ yes) oss_output=yes ;;
+ no) oss_output=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-output) ;;
esac
],
- [oss=auto])
+ [oss_output=auto])
-if test "x${oss}" != xno ; then
+AC_ARG_ENABLE([oss-wrapper],
+ AS_HELP_STRING([--disable-oss-wrapper],[Disable optional OSS wrapper support]),
+ [
+ case "${enableval}" in
+ yes) oss_wrapper=yes ;;
+ no) oss_wrapper=no ;;
+ *) AC_MSG_ERROR(bad value ${enableval} for --disable-oss-wrapper) ;;
+ esac
+ ],
+ [oss_wrapper=auto])
+
+if test "x${oss_output}" != xno || test "x${oss_wrapper}" != "xno"; then
AC_CHECK_HEADERS([sys/soundcard.h],
[
+ if test "x${oss_output}" != "xno"; then
+ AC_DEFINE([HAVE_OSS_OUTPUT], 1, [Have OSS output?])
+ fi
+ if test "x${oss_wrapper}" != "xno"; then
+ AC_DEFINE([HAVE_OSS_WRAPPER], 1, [Have OSS wrapper (padsp)?])
+ fi
HAVE_OSS=1
- AC_DEFINE([HAVE_OSS], 1, [Have OSS?])
],
[
HAVE_OSS=0
- if test "x$oss" = xyes ; then
+ if test "x$oss_output" = xyes || test "x$oss_wrapper" = "xyes"; then
AC_MSG_ERROR([*** OSS support not found])
fi
])
@@ -692,8 +708,8 @@ else
fi
AC_SUBST(HAVE_OSS)
-AM_CONDITIONAL([HAVE_OSS], [test "x$HAVE_OSS" = x1])
-
+AM_CONDITIONAL([HAVE_OSS_OUTPUT], [test "x$HAVE_OSS" = x1 && test "x${oss_output}" != "xno"])
+AM_CONDITIONAL([HAVE_OSS_WRAPPER], [test "x$HAVE_OSS" = x1 && test "x${oss_wrapper}" != "xno"])
#### ALSA support (optional) ####
diff --git a/src/Makefile.am b/src/Makefile.am
index c022fa7c..5d711577 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -776,7 +776,7 @@ libpulse_mainloop_glib_la_LDFLAGS = $(AM_LDFLAGS) $(VERSIONING_LDFLAGS) -version
# OSS emulation #
###################################
-if HAVE_OSS
+if HAVE_OSS_WRAPPER
lib_LTLIBRARIES += libpulsedsp.la
bin_SCRIPTS += utils/padsp
endif
@@ -1031,7 +1031,7 @@ modlibexec_LTLIBRARIES += \
module-x11-cork-request.la
endif
-if HAVE_OSS
+if HAVE_OSS_OUTPUT
modlibexec_LTLIBRARIES += \
liboss-util.la \
module-oss.la
diff --git a/src/daemon/main.c b/src/daemon/main.c
index b209c514..7a951954 100644
--- a/src/daemon/main.c
+++ b/src/daemon/main.c
@@ -113,7 +113,7 @@ int allow_severity = LOG_INFO;
int deny_severity = LOG_WARNING;
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_WRAPPER
/* padsp looks for this symbol in the running process and disables
* itself if it finds it and it is set to 7 (which is actually a bit
* mask). For details see padsp. */
diff --git a/src/modules/module-detect.c b/src/modules/module-detect.c
index 18479df3..956fe4c5 100644
--- a/src/modules/module-detect.c
+++ b/src/modules/module-detect.c
@@ -119,7 +119,7 @@ static int detect_alsa(pa_core *c, int just_one) {
}
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
static int detect_oss(pa_core *c, int just_one) {
FILE *f;
int n = 0, b = 0;
@@ -240,7 +240,7 @@ int pa__init(pa_module*m) {
#ifdef HAVE_ALSA
if ((n = detect_alsa(m->core, just_one)) <= 0)
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
if ((n = detect_oss(m->core, just_one)) <= 0)
#endif
#ifdef HAVE_SOLARIS
diff --git a/src/modules/module-hal-detect.c b/src/modules/module-hal-detect.c
index 79758b92..b5b2aaf0 100644
--- a/src/modules/module-hal-detect.c
+++ b/src/modules/module-hal-detect.c
@@ -55,14 +55,14 @@ PA_MODULE_AUTHOR("Shahms King");
PA_MODULE_DESCRIPTION("Detect available audio hardware and load matching drivers");
PA_MODULE_VERSION(PACKAGE_VERSION);
PA_MODULE_LOAD_ONCE(TRUE);
-#if defined(HAVE_ALSA) && defined(HAVE_OSS)
+#if defined(HAVE_ALSA) && defined(HAVE_OSS_OUTPUT)
PA_MODULE_USAGE("api=<alsa or oss> "
"tsched=<enable system timer based scheduling mode?>"
"subdevs=<init all subdevices>");
#elif defined(HAVE_ALSA)
PA_MODULE_USAGE("api=<alsa> "
"tsched=<enable system timer based scheduling mode?>");
-#elif defined(HAVE_OSS)
+#elif defined(HAVE_OSS_OUTPUT)
PA_MODULE_USAGE("api=<oss>"
"subdevs=<init all subdevices>");
#endif
@@ -84,7 +84,7 @@ struct userdata {
#ifdef HAVE_ALSA
pa_bool_t use_tsched;
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
pa_bool_t init_subdevs;
#endif
};
@@ -97,7 +97,7 @@ static const char* const valid_modargs[] = {
#ifdef HAVE_ALSA
"tsched",
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
"subdevs",
#endif
NULL
@@ -270,7 +270,7 @@ fail:
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
static pa_bool_t hal_oss_device_is_pcm(LibHalContext *context, const char *udi, pa_bool_t init_subdevices) {
char *class = NULL, *dev = NULL, *e;
@@ -402,7 +402,7 @@ static struct device* hal_device_add(struct userdata *u, const char *udi) {
if (pa_streq(u->capability, CAPABILITY_ALSA))
r = hal_device_load_alsa(u, udi, d);
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
if (pa_streq(u->capability, CAPABILITY_OSS))
r = hal_device_load_oss(u, udi, d);
#endif
@@ -761,7 +761,7 @@ int pa__init(pa_module*m) {
api = pa_modargs_get_value(ma, "api", "oss");
#endif
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
if (pa_streq(api, "oss"))
u->capability = CAPABILITY_OSS;
#endif
@@ -771,7 +771,7 @@ int pa__init(pa_module*m) {
goto fail;
}
-#ifdef HAVE_OSS
+#ifdef HAVE_OSS_OUTPUT
if (pa_modargs_get_value_boolean(ma, "subdevs", &u->init_subdevs) < 0) {
pa_log("Failed to parse subdevs argument.");
goto fail;