diff options
author | Lennart Poettering <lennart@poettering.net> | 2007-09-06 20:06:02 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2007-09-06 20:06:02 +0000 |
commit | b1fd53b20ba77dab903eb4d83e2b9d1a8d99f2b6 (patch) | |
tree | eb18fcd68966da565d4f45f0fedbecc9ce7f8497 | |
parent | a0d19c0d13e61d1f713637cba445911cb8cfef68 (diff) |
explicitly test for the availability of dbus_watch_get_unix_fd() before using it. The previous version-based check didn't work anyway since the constants checked for weren't set.
git-svn-id: file:///home/lennart/svn/public/pulseaudio/branches/lennart@1772 fefdeb5f-60dc-0310-8127-8f9354f1896f
-rw-r--r-- | configure.ac | 44 | ||||
-rw-r--r-- | src/modules/dbus-util.c | 15 |
2 files changed, 51 insertions, 8 deletions
diff --git a/configure.ac b/configure.ac index 626a1ce6..71e95b8e 100644 --- a/configure.ac +++ b/configure.ac @@ -713,7 +713,6 @@ AC_ARG_ENABLE([hal], esac ], [hal=auto]) - if test "x${hal}" != xno -a \( "x$HAVE_OSS" = "x1" -o "x$HAVE_ALSA" = "x1" \) ; then PKG_CHECK_MODULES(HAL, [ hal >= 0.5.7 ], HAVE_HAL=1, @@ -732,6 +731,49 @@ AC_SUBST(HAL_LIBS) AC_SUBST(HAVE_HAL) AM_CONDITIONAL([HAVE_HAL], [test "x$HAVE_HAL" = x1]) +#### D-Bus support (optional) #### + +AC_ARG_ENABLE([dbus], + AC_HELP_STRING([--disable-dbus], [Disable optional D-Bus support]), + [ + case "${enableval}" in + yes) dbus=yes ;; + no) dbus=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-dbus) ;; + esac + ], + [dbus=auto]) + +if test "x$HAVE_HAL" = x1 ; then + dbus=yes +fi + +if test "x${dbus}" != xno ; then + + PKG_CHECK_MODULES(DBUS, [ dbus-1 >= 1.0.0 ], + [ + HAVE_DBUS=1 + saved_LIBS="$LIBS" + LIBS="$LIBS $DBUS_LIBS" + AC_CHECK_FUNCS(dbus_watch_get_unix_fd) + LIBS="$saved_LIBS" + + ], + [ + HAVE_DBUS=0 + if test "x$dbus" = xyes ; then + AC_MSG_ERROR([*** D-Bus support not found]) + fi + ]) +else + HAVE_DBUS=0 +fi + +AC_SUBST(DBUS_CFLAGS) +AC_SUBST(DBUS_LIBS) +AC_SUBST(HAVE_DBUS) +AM_CONDITIONAL([HAVE_DBUS], [test "x$HAVE_DBUS" = x1]) + #### PulseAudio system group & user ##### AC_ARG_WITH(system_user, AS_HELP_STRING([--with-system-user=<user>],[User for running the PulseAudio daemon as a system-wide instance (pulse)])) diff --git a/src/modules/dbus-util.c b/src/modules/dbus-util.c index 360f7827..9078ec72 100644 --- a/src/modules/dbus-util.c +++ b/src/modules/dbus-util.c @@ -96,7 +96,7 @@ static void handle_io_event(PA_GCC_UNUSED pa_mainloop_api *ea, pa_io_event *e, i unsigned int flags = 0; DBusWatch *watch = userdata; -#if (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MINOR == 1 && DBUS_VERSION_MICRO >= 1) || (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MINOR > 1) || (DBUS_VERSION_MAJOR > 1) +#if HAVE_DBUS_WATCH_GET_UNIX_FD pa_assert(fd == dbus_watch_get_unix_fd(watch)); #else pa_assert(fd == dbus_watch_get_fd(watch)); @@ -141,14 +141,15 @@ static dbus_bool_t add_watch(DBusWatch *watch, void *data) { pa_assert(watch); pa_assert(c); - ev = c->mainloop->io_new(c->mainloop, -#if (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MINOR == 1 && DBUS_VERSION_MICRO >= 1) || (DBUS_VERSION_MAJOR == 1 && DBUS_VERSION_MAJOR > 1) || (DBUS_VERSION_MAJOR > 1) - dbus_watch_get_unix_fd(watch), + ev = c->mainloop->io_new( + c->mainloop, +#if HAVE_DBUS_WATCH_GET_UNIX_FD + dbus_watch_get_unix_fd(watch), #else - dbus_watch_get_fd(watch), + dbus_watch_get_fd(watch), #endif - get_watch_flags(watch), handle_io_event, watch); - + get_watch_flags(watch), handle_io_event, watch); + dbus_watch_set_data(watch, ev, NULL); return TRUE; |