Re: [Bluez-devel] [PATCH] Make BluetoothClient work on all adapters

Bastien Nocera
2007-07-25T07:33:23Z

On Wed, 2007-07-25 at 09:04 +0200, Marcel Holtmann wrote:
> Hi Bastien,
>
> > > > However this includes that we have to monitor if the default adapter
> > > > changes or one adapter gets removed while being in the adapter selector
> > > > widget or device selector widget.
> > >
> > > Fair enough, I knew this would be a sticky point. I'm trying to fix it
> > > up so that we use the default adapter by default with "NULL" passed as
> > > the adapter.
> >
> > Here goes. This should correctly kill the disco on the old default
> > adapter and re-enable it on the new default adapter, when the default
> > adapter changes.
>
> you patch is wrong. You are messing up a DBusConnection object with the
> BluetoothClient object in the callbacks of the DefaultAdapterChanged
> signal.
>
> Actually I also don't like this way, we should store the default path
> globally since that is what really counts. The tree storing all
> information should be fully valid as long as we have an instance of the
> BluetoothClient object and it can store the information about the
> default adapter for us.

The tree storing all information is still valid, there's no information
there as to which is the default adapter.

And to be able to use the default_adapter in the instances, you need to
connect to the signal in the instances.

If you're not interested in stopping the existing discoveries on the
default adapter when the default adapter changes, or transferring those
discoveries to other devices, then it will be much easier.

I'm not sure why we would carry on discovering devices if the model
showing the devices is going away though.

So, the only thing I'm supposed to do, is change the model
automatically, so that when we get the model for the default adapter,
the model should change automatically. That will require the
DefaultAdapterChanged signal to live in the instance, as in my patch, as
globally, we don't have any knownledge of the instances.