bluetooth: Create NULL backend

This commit is contained in:
João Paulo Rechi Vita 2014-08-22 11:07:14 +03:00 committed by Tanu Kaskinen
parent 2198048e5d
commit dca5d07937
5 changed files with 64 additions and 1 deletions

View file

@ -1028,6 +1028,21 @@ AS_IF([test "x$HAVE_BLUEZ_4" = "x1" || test "x$HAVE_BLUEZ_5" = "x1"], HAVE_BLUEZ
AC_SUBST(HAVE_BLUEZ) AC_SUBST(HAVE_BLUEZ)
AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1]) AM_CONDITIONAL([HAVE_BLUEZ], [test "x$HAVE_BLUEZ" = x1])
## Bluetooth Headset profiles backend ##
AC_ARG_WITH(bluetooth_headset_backend,
AS_HELP_STRING([--with-bluetooth-headset-backend=<null>],[Backend for Bluetooth headset profiles (null)]))
if test -z "$with_bluetooth_headset_backend" ; then
BLUETOOTH_HEADSET_BACKEND=null
else
BLUETOOTH_HEADSET_BACKEND=$with_bluetooth_headset_backend
fi
AS_IF([test "x$BLUETOOTH_HEADSET_BACKEND" != "xnull"],
[AC_MSG_ERROR([*** Invalid Bluetooth Headset backend])])
AC_SUBST(BLUETOOTH_HEADSET_BACKEND)
#### UDEV support (optional) #### #### UDEV support (optional) ####
AC_ARG_ENABLE([udev], AC_ARG_ENABLE([udev],
@ -1497,6 +1512,7 @@ echo "
Enable D-Bus: ${ENABLE_DBUS} Enable D-Bus: ${ENABLE_DBUS}
Enable BlueZ 4: ${ENABLE_BLUEZ_4} Enable BlueZ 4: ${ENABLE_BLUEZ_4}
Enable BlueZ 5: ${ENABLE_BLUEZ_5} Enable BlueZ 5: ${ENABLE_BLUEZ_5}
headset backed: ${BLUETOOTH_HEADSET_BACKEND}
Enable udev: ${ENABLE_UDEV} Enable udev: ${ENABLE_UDEV}
Enable HAL->udev compat: ${ENABLE_HAL_COMPAT} Enable HAL->udev compat: ${ENABLE_HAL_COMPAT}
Enable systemd login: ${ENABLE_SYSTEMD} Enable systemd login: ${ENABLE_SYSTEMD}

View file

@ -2099,7 +2099,8 @@ module_bluez4_device_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) $(SBC_CFLAGS)
libbluez5_util_la_SOURCES = \ libbluez5_util_la_SOURCES = \
modules/bluetooth/bluez5-util.c \ modules/bluetooth/bluez5-util.c \
modules/bluetooth/bluez5-util.h \ modules/bluetooth/bluez5-util.h \
modules/bluetooth/a2dp-codecs.h modules/bluetooth/a2dp-codecs.h \
modules/bluetooth/backend-@BLUETOOTH_HEADSET_BACKEND@.c
libbluez5_util_la_LDFLAGS = -avoid-version libbluez5_util_la_LDFLAGS = -avoid-version
libbluez5_util_la_LIBADD = $(MODULE_LIBADD) $(DBUS_LIBS) libbluez5_util_la_LIBADD = $(MODULE_LIBADD) $(DBUS_LIBS)
libbluez5_util_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS) libbluez5_util_la_CFLAGS = $(AM_CFLAGS) $(DBUS_CFLAGS)

View file

@ -0,0 +1,37 @@
/***
This file is part of PulseAudio.
Copyright 2013 João Paulo Rechi Vita
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 <pulsecore/log.h>
#include "bluez5-util.h"
pa_bluetooth_backend *pa_bluetooth_backend_new(pa_core *c) {
pa_log_debug("Bluetooth Headset Backend API support disabled");
return NULL;
}
void pa_bluetooth_backend_free(pa_bluetooth_backend *b) {
/* Nothing to do here */
}

View file

@ -87,6 +87,7 @@ struct pa_bluetooth_discovery {
pa_hashmap *devices; pa_hashmap *devices;
pa_hashmap *transports; pa_hashmap *transports;
pa_bluetooth_backend *backend;
PA_LLIST_HEAD(pa_dbus_pending, pending); PA_LLIST_HEAD(pa_dbus_pending, pending);
}; };
@ -1590,6 +1591,7 @@ pa_bluetooth_discovery* pa_bluetooth_discovery_get(pa_core *c) {
endpoint_init(y, PA_BLUETOOTH_PROFILE_A2DP_SINK); endpoint_init(y, PA_BLUETOOTH_PROFILE_A2DP_SINK);
endpoint_init(y, PA_BLUETOOTH_PROFILE_A2DP_SOURCE); endpoint_init(y, PA_BLUETOOTH_PROFILE_A2DP_SOURCE);
y->backend = pa_bluetooth_backend_new(c);
get_managed_objects(y); get_managed_objects(y);
@ -1631,6 +1633,9 @@ void pa_bluetooth_discovery_unref(pa_bluetooth_discovery *y) {
pa_hashmap_free(y->transports); pa_hashmap_free(y->transports);
} }
if (y->backend)
pa_bluetooth_backend_free(y->backend);
if (y->connection) { if (y->connection) {
if (y->matches_added) if (y->matches_added)

View file

@ -35,6 +35,7 @@ typedef struct pa_bluetooth_transport pa_bluetooth_transport;
typedef struct pa_bluetooth_device pa_bluetooth_device; typedef struct pa_bluetooth_device pa_bluetooth_device;
typedef struct pa_bluetooth_adapter pa_bluetooth_adapter; typedef struct pa_bluetooth_adapter pa_bluetooth_adapter;
typedef struct pa_bluetooth_discovery pa_bluetooth_discovery; typedef struct pa_bluetooth_discovery pa_bluetooth_discovery;
typedef struct pa_bluetooth_backend pa_bluetooth_backend;
typedef enum pa_bluetooth_hook { typedef enum pa_bluetooth_hook {
PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED, /* Call data: pa_bluetooth_device */ PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED, /* Call data: pa_bluetooth_device */
@ -105,6 +106,9 @@ struct pa_bluetooth_adapter {
bool valid; bool valid;
}; };
pa_bluetooth_backend *pa_bluetooth_backend_new(pa_core *c);
void pa_bluetooth_backend_free(pa_bluetooth_backend *b);
pa_bluetooth_transport *pa_bluetooth_transport_new(pa_bluetooth_device *d, const char *owner, const char *path, pa_bluetooth_transport *pa_bluetooth_transport_new(pa_bluetooth_device *d, const char *owner, const char *path,
pa_bluetooth_profile_t p, const uint8_t *config, size_t size); pa_bluetooth_profile_t p, const uint8_t *config, size_t size);