[pulseaudio-discuss] [PATCH 3/5] bluetooth: Fix notifying about new devices
Tanu Kaskinen
tanu.kaskinen at linux.intel.com
Wed Oct 2 07:31:11 PDT 2013
On Tue, 2013-10-01 at 10:34 -0300, João Paulo Rechi Vita wrote:
> On Sun, Sep 29, 2013 at 12:49 PM, Tanu Kaskinen
> <tanu.kaskinen at linux.intel.com> wrote:
> > Normally devices are created and their properties are parsed before
> > creating any transports for the device, and the
> > DEVICE_CONNECTION_CHANGED hook is fired when the first transport is
> > created. It's possible, however, that a transport is created before
> > the device that it belongs to, and in this case
> > DEVICE_CONNECTION_CHANGED should be fired when the properties have
> > been successfully parsed for the device. The old code didn't fire the
> > hook at this situation, and this patch fixes that.
> > ---
> > src/modules/bluetooth/bluez5-util.c | 43 +++++++++++++++++++++++++++++--------
> > 1 file changed, 34 insertions(+), 9 deletions(-)
> >
> > diff --git a/src/modules/bluetooth/bluez5-util.c b/src/modules/bluetooth/bluez5-util.c
> > index eaff4b1..c7e934e 100644
> > --- a/src/modules/bluetooth/bluez5-util.c
> > +++ b/src/modules/bluetooth/bluez5-util.c
> > @@ -438,14 +438,29 @@ static void device_remove(pa_bluetooth_discovery *y, const char *path) {
> > }
> > }
> >
> > +static void set_device_info_valid(pa_bluetooth_device *device, int valid) {
> > + bool old_any_connected;
> > +
> > + pa_assert(device);
> > + pa_assert(valid == -1 || valid == 0 || valid == 1);
> > +
> > + if (valid == device->device_info_valid)
> > + return;
> > +
> > + old_any_connected = pa_bluetooth_device_any_transport_connected(device);
> > + device->device_info_valid = valid;
> > +
> > + if (pa_bluetooth_device_any_transport_connected(device) != old_any_connected)
> > + pa_hook_fire(&device->discovery->hooks[PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED], device);
> > +}
> > +
>
> I like the idea of having a helper function here. But wouldn't be
> better to factor the occurences of "device->device_info_valid = X"
> into set_device_info_valid() in one commit and the
> DEVICE_CONNECTION_CHANGED hook fire, together with the respective
> checks, in a separate commit? I think they are two different
> modifications, so the would belong to separate commits, making the
> history cleaner and easier to read. If for some reason you don't want
> to separate them it's ok for me (just please explain me why you think
> so).
Good point, I'll update the patches.
--
Tanu
More information about the pulseaudio-discuss
mailing list