[pulseaudio-discuss] [RFC next v0 04/11] bluetooth: Add embedded BlueZ backend inside bluetooth-util
Tanu Kaskinen
tanu.kaskinen at linux.intel.com
Tue Jun 25 05:04:32 PDT 2013
On Wed, 2013-05-15 at 10:46 +0200, Mikel Astiz wrote:
> From: Mikel Astiz <mikel.astiz at bmw-carit.de>
>
> BlueZ 5 supports external profiles, meaning that certain Bluetooth
> profiles (e.g. HFP/HSP) are completely handled outside BlueZ.
>
> However, some other profiles (i.e. A2DP) are still implemented inside
> BlueZ, so let's keep a BlueZ-specific backend inside bluetooth-util.
>
> Furthermore, in the case of BlueZ 4, this embedded backend also supports
> HSP/HFP.
> ---
> src/modules/bluetooth/bluetooth-util.c | 36 ++++++++++++++++++++++++++++++++++
> 1 file changed, 36 insertions(+)
>
> diff --git a/src/modules/bluetooth/bluetooth-util.c b/src/modules/bluetooth/bluetooth-util.c
> index 56156a9..9f7cf77 100644
> --- a/src/modules/bluetooth/bluetooth-util.c
> +++ b/src/modules/bluetooth/bluetooth-util.c
> @@ -96,6 +96,9 @@ struct profile_data {
> void *backend_private;
> };
>
> +typedef struct bluez_backend_private {
> +} bluez_backend_private;
I'd drop at least "private" from the name, because there isn't any
public counterpart. "backend" feels a bit redundant too, so I would go
with plain "bluez" (or "pa_bluez", if this moves to a separate file). I
can see that such name might feel awkward, though, so I'd be OK with
"bluez_backend" too.
> +
> struct pa_bluetooth_discovery {
> PA_REFCNT_DECLARE;
>
> @@ -109,6 +112,8 @@ struct pa_bluetooth_discovery {
> struct profile_data profiles[PA_BLUETOOTH_PROFILE_COUNT];
> pa_hook hooks[PA_BLUETOOTH_HOOK_MAX];
> bool filter_added;
> +
> + bluez_backend_private backend_private;
If there are going to be multiple backends, I think the field name
should contain "bluez" in it to distinguish it from other backends.
Perhaps even bare "bluez" would be good as the field name.
> };
>
> static void get_properties_reply(DBusPendingCall *pending, void *userdata);
> @@ -1975,6 +1980,33 @@ static DBusHandlerResult endpoint_handler(DBusConnection *c, DBusMessage *m, voi
> return DBUS_HANDLER_RESULT_HANDLED;
> }
>
> +pa_bluetooth_backend bluez_backend = {
> +};
I wouldn't actually want to have the pa_bluetooth_backend struct at all.
You use it for storing callbacks, but the callbacks could as well be
part of pa_bluetooth_transport. As an analogy, we don't have
pa_sink_backend struct either, the sink callbacks are part of pa_sink.
--
Tanu
More information about the pulseaudio-discuss
mailing list