[PATCH 24/56] bluetooth: Create pa_bluetooth_device for BlueZ 5 support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, 2013-07-12 at 15:06 -0300, jprvita at gmail.com wrote:
> From: Jo?o Paulo Rechi Vita <jprvita at openbossa.org>
> 
> Create a structure pa_bluetooth_device to store information about the
> bluetooth device and utility functions to manipulate this structure.
> ---
>  src/modules/bluetooth/bluez5-util.c | 84 +++++++++++++++++++++++++++++++++++++
>  src/modules/bluetooth/bluez5-util.h | 18 ++++++++
>  2 files changed, 102 insertions(+)
> 
> diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
> index d5f1846..574a22d 100644
> --- a/src/modules/bluetooth/bluez5-util.c
> +++ b/src/modules/bluetooth/bluez5-util.c
> @@ -44,8 +44,86 @@ struct pa_bluetooth_discovery {
>      pa_dbus_connection *connection;
>      bool filter_added;
>      pa_hook hooks[PA_BLUETOOTH_HOOK_MAX];
> +    pa_hashmap *devices;
>  };
>  
> +static pa_bluetooth_device* pa_bluetooth_discovery_create_device(pa_bluetooth_discovery *y, const char *path) {

Static functions shouldn't have the "pa_bluetooth" prefix. Since this
seems to be a normal object allocation function, I'd use name
"device_new".

> +pa_bluetooth_device* pa_bluetooth_discovery_get_device_by_address(pa_bluetooth_discovery *y, const char *address) {
> +    pa_bluetooth_device *d;
> +    void *state = NULL;
> +
> +    pa_assert(y);
> +    pa_assert(PA_REFCNT_VALUE(y) > 0);
> +    pa_assert(address);
> +
> +    while ((d = pa_hashmap_iterate(y->devices, &state, NULL)))
> +        if (pa_streq(d->address, address))
> +            return d->device_info_valid == 1 ? d : NULL;

If there are two devices with the same address, this will return NULL if
the first encountered device has invalid info, even if the second device
would be ok.

-- 
Tanu



[Index of Archives]     [Linux Audio Users]     [AMD Graphics]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux