mirror of
https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
synced 2025-10-29 05:40:23 -04:00
hal: add stub module that loads module-udev-detect instead of module-hal-detect
This adds module-hal-detect-compat.c which when enabled will be compiled into a module module-hal-detect which simply loads module-udev-detect. The purpose of this is to allow easy upgrading without breaking default.pa. Distributions are recommended to enable this to easy upgrades from HAL versions of PA to udev versions.
This commit is contained in:
parent
ebe35968d7
commit
c904f97e2d
3 changed files with 124 additions and 1 deletions
28
configure.ac
28
configure.ac
|
|
@ -1118,6 +1118,28 @@ AM_CONDITIONAL([HAVE_UDEV], [test "x$HAVE_UDEV" = x1])
|
|||
|
||||
AC_DEFINE([LIBUDEV_I_KNOW_THE_API_IS_SUBJECT_TO_CHANGE], 1, [I know the API is subject to change.])
|
||||
|
||||
#### HAL compat support (optional) ####
|
||||
|
||||
AC_ARG_ENABLE([hal-compat],
|
||||
AS_HELP_STRING([--disable-hal-compat],[Disable optional HAL->udev transition compatibility support]),
|
||||
[
|
||||
case "${enableval}" in
|
||||
yes) halcompat=yes ;;
|
||||
no) halcompat=no ;;
|
||||
*) AC_MSG_ERROR(bad value ${enableval} for --disable-hal-compat) ;;
|
||||
esac
|
||||
],
|
||||
[halcompat=auto])
|
||||
if test "x${halcompat}" != xno -a "x$HAVE_HAL" = "x0" -a "x$HAVE_UDEV" = "x1" ; then
|
||||
HAVE_HAL_COMPAT=1
|
||||
AC_DEFINE([HAVE_HAL_COMPAT], 1, [Have HAL compatibility.])
|
||||
else
|
||||
HAVE_HAL_COMPAT=0
|
||||
fi
|
||||
|
||||
AC_SUBST(HAVE_HAL_COMPAT)
|
||||
AM_CONDITIONAL([HAVE_HAL_COMPAT], [test "x$HAVE_HAL_COMPAT" = x1])
|
||||
|
||||
#### BlueZ support (optional) ####
|
||||
|
||||
AC_ARG_ENABLE([bluez],
|
||||
|
|
@ -1441,6 +1463,11 @@ if test "x$HAVE_UDEV" = "x1" ; then
|
|||
ENABLE_UDEV=yes
|
||||
fi
|
||||
|
||||
ENABLE_HAL_COMPAT=no
|
||||
if test "x$HAVE_HAL_COMPAT" = "x1" ; then
|
||||
ENABLE_HAL_COMPAT=yes
|
||||
fi
|
||||
|
||||
ENABLE_TCPWRAP=no
|
||||
if test "x${LIBWRAP_LIBS}" != x ; then
|
||||
ENABLE_TCPWRAP=yes
|
||||
|
|
@ -1507,6 +1534,7 @@ echo "
|
|||
Enable LIRC: ${ENABLE_LIRC}
|
||||
Enable HAL: ${ENABLE_HAL}
|
||||
Enable udev: ${ENABLE_UDEV}
|
||||
Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
|
||||
Enable BlueZ: ${ENABLE_BLUEZ}
|
||||
Enable TCP Wrappers: ${ENABLE_TCPWRAP}
|
||||
Enable libsamplerate: ${ENABLE_LIBSAMPLERATE}
|
||||
|
|
|
|||
|
|
@ -1120,6 +1120,11 @@ modlibexec_LTLIBRARIES += \
|
|||
module-hal-detect.la
|
||||
endif
|
||||
|
||||
if HAVE_HAL_COMPAT
|
||||
modlibexec_LTLIBRARIES += \
|
||||
module-hal-detect.la
|
||||
endif
|
||||
|
||||
if HAVE_UDEV
|
||||
modlibexec_LTLIBRARIES += \
|
||||
module-udev-detect.la
|
||||
|
|
@ -1576,10 +1581,16 @@ module_jack_source_la_LDFLAGS = $(MODULE_LDFLAGS)
|
|||
module_jack_source_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la $(JACK_LIBS) libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
|
||||
module_jack_source_la_CFLAGS = $(AM_CFLAGS) $(JACK_CFLAGS)
|
||||
|
||||
if HAVE_HAL_COMPAT
|
||||
module_hal_detect_la_SOURCES = modules/module-hal-detect-compat.c
|
||||
module_hal_detect_la_LIBADD = $(AM_LIBADD) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
|
||||
module_hal_detect_la_CFLAGS = $(AM_CFLAGS)
|
||||
else
|
||||
module_hal_detect_la_SOURCES = modules/module-hal-detect.c
|
||||
module_hal_detect_la_LDFLAGS = $(MODULE_LDFLAGS)
|
||||
module_hal_detect_la_LIBADD = $(AM_LIBADD) $(HAL_LIBS) libpulsecore-@PA_MAJORMINORMICRO@.la libpulsecommon-@PA_MAJORMINORMICRO@.la libpulse.la
|
||||
module_hal_detect_la_CFLAGS = $(AM_CFLAGS) $(HAL_CFLAGS)
|
||||
endif
|
||||
module_hal_detect_la_LDFLAGS = $(MODULE_LDFLAGS)
|
||||
|
||||
module_udev_detect_la_SOURCES = modules/module-udev-detect.c
|
||||
module_udev_detect_la_LDFLAGS = $(MODULE_LDFLAGS)
|
||||
|
|
|
|||
84
src/modules/module-hal-detect-compat.c
Normal file
84
src/modules/module-hal-detect-compat.c
Normal file
|
|
@ -0,0 +1,84 @@
|
|||
/***
|
||||
This file is part of PulseAudio.
|
||||
|
||||
Copyright 2009 Lennart Poettering
|
||||
|
||||
PulseAudio is free software; you can redistribute it and/or modify
|
||||
it under the terms of the GNU Lesser General Public License as published
|
||||
by the Free Software Foundation; either version 2.1 of the License,
|
||||
or (at your option) any later version.
|
||||
|
||||
PulseAudio is distributed in the hope that it will be useful, but
|
||||
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public License
|
||||
along with PulseAudio; if not, write to the Free Software
|
||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
USA.
|
||||
***/
|
||||
|
||||
#ifdef HAVE_CONFIG_H
|
||||
#include <config.h>
|
||||
#endif
|
||||
|
||||
#include <pulse/xmalloc.h>
|
||||
|
||||
#include <pulsecore/module.h>
|
||||
#include <pulsecore/modargs.h>
|
||||
#include <pulsecore/log.h>
|
||||
#include <pulsecore/core-util.h>
|
||||
|
||||
#include "module-hal-detect-symdef.h"
|
||||
|
||||
PA_MODULE_AUTHOR("Lennart Poettering");
|
||||
PA_MODULE_DESCRIPTION("Compatibility module");
|
||||
PA_MODULE_VERSION(PACKAGE_VERSION);
|
||||
PA_MODULE_LOAD_ONCE(TRUE);
|
||||
PA_MODULE_DEPRECATED("Please use module-udev-detect instead of module-hal-detect!");
|
||||
|
||||
static const char* const valid_modargs[] = {
|
||||
"api",
|
||||
"tsched",
|
||||
"subdevices",
|
||||
NULL,
|
||||
};
|
||||
|
||||
int pa__init(pa_module*m) {
|
||||
pa_modargs *ma = NULL;
|
||||
pa_bool_t tsched = TRUE;
|
||||
pa_module *n;
|
||||
char *t;
|
||||
|
||||
pa_assert(m);
|
||||
|
||||
if (!(ma = pa_modargs_new(m->argument, valid_modargs))) {
|
||||
pa_log("Failed to parse module arguments");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if (pa_modargs_get_value_boolean(ma, "tsched", &tsched) < 0) {
|
||||
pa_log("tsched= expects boolean arguments");
|
||||
goto fail;
|
||||
}
|
||||
|
||||
pa_log_warn("We will now load module-udev-detect. Please make sure to remove module-hal-detect from your configuration.");
|
||||
|
||||
t = pa_sprintf_malloc("tsched=%s", pa_yes_no(tsched));
|
||||
n = pa_module_load(m->core, "module-udev-detect", t);
|
||||
pa_xfree(t);
|
||||
|
||||
if (n)
|
||||
pa_module_unload_request(m, TRUE);
|
||||
|
||||
pa_modargs_free(ma);
|
||||
|
||||
return n ? 0 : -1;
|
||||
|
||||
fail:
|
||||
if (ma)
|
||||
pa_modargs_free(ma);
|
||||
|
||||
return -1;
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue