From: Diego Elio 'Flameeyes' Pettenò Date: Fri, 7 Aug 2009 23:53:15 +0000 (+0200) Subject: Split OSS support in output and wrapper. X-Git-Tag: v0.9.16-test5~97 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=4c1511500759c7701b407227e907c0e5c8e38763;p=platform%2Fupstream%2Fpulseaudio.git Split OSS support in output and wrapper. Since Fedora does not enable OSS output support at all, but still uses padsp, and in Gentoo we could also make use of padsp without OSS output support, split the two things in two parameters, although they both check for sys/soundcard.h once. --- diff --git a/configure.ac b/configure.ac index 4079213..f703479 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 c022fa7..5d71157 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 b209c51..7a95195 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 18479df..956fe4c 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 79758b9..b5b2aaf 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= " "tsched=" "subdevs="); #elif defined(HAVE_ALSA) PA_MODULE_USAGE("api= " "tsched="); -#elif defined(HAVE_OSS) +#elif defined(HAVE_OSS_OUTPUT) PA_MODULE_USAGE("api=" "subdevs="); #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;