Re: [PATCH 5/6] android/gatt: Use kernel auto connect feature if possible

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

 



Hi Luiz,

On 1 August 2014 10:50, Luiz Augusto von Dentz <luiz.dentz@xxxxxxxxx> wrote:
> Hi Lukasz,
>
> On Thu, Jul 31, 2014 at 2:11 PM, Lukasz Rymanowski
> <lukasz.rymanowski@xxxxxxxxx> wrote:
>> ---
>>  android/gatt.c | 27 +++++++++++++++++++++++++++
>>  1 file changed, 27 insertions(+)
>>
>> diff --git a/android/gatt.c b/android/gatt.c
>> index 448bcb8..de0912d 100644
>> --- a/android/gatt.c
>> +++ b/android/gatt.c
>> @@ -1383,6 +1383,8 @@ static void connect_cb(GIOChannel *io, GError *gerr, gpointer user_data)
>>
>>         device_set_state(dev, DEVICE_CONNECTED);
>>
>> +       bt_auto_connect_remove(&dev->bdaddr);
>
> In cases like HoG it would be better to have it permanent on the auto
> connect list, we could perhaps add this as a flag to
> bt_gatt_register_app (along with initial security level?) otherwise we
> have to manually retrigger every time.

:) We just have this discussion here about that couple minutes ago.
And yes,I do plan to add flag autoconnect to connect function. This
will come soon.

>
>>         /* Send exchange mtu request as we assume being client and server */
>>         /* TODO: Dont exchange mtu if no client apps */
>>         send_exchange_mtu_request(dev);
>> @@ -1529,6 +1531,10 @@ static void le_device_found_handler(const bdaddr_t *addr, uint8_t addr_type,
>>                                                 sizeof(*ev) + ev->len, ev);
>>
>>  connect:
>> +       /* We use auto connect feature from kernel if possible */
>> +       if (main_opts.kernel_conn_control)
>> +               return;
>> +
>>         dev = find_device_by_addr(addr);
>>         if (!dev) {
>>                 if (!bonded)
>> @@ -1749,6 +1755,19 @@ static int connect_bredr(struct gatt_device *dev)
>>         return 0;
>>  }
>>
>> +static bool auto_connect(struct gatt_device *dev)
>> +{
>> +       bool err;
>> +
>> +       err = bt_auto_connect_add(&dev->bdaddr);
>> +       if (!err)
>> +               return false;
>> +
>> +       device_set_state(dev, DEVICE_CONNECT_INIT);
>> +
>> +       return true;
>> +}
>> +
>>  static bool trigger_connection(struct app_connection *connection)
>>  {
>>         bool ret;
>> @@ -1763,6 +1782,13 @@ static bool trigger_connection(struct app_connection *connection)
>>                                                                 BDADDR_BREDR)
>>                         return connect_bredr(connection->device) == 0;
>>
>> +               /*
>> +                * For LE devices use auto connect feature if possible
>> +                * Note: Connection state is handled inside auto_connect() func
>> +                */
>> +               if (main_opts.kernel_conn_control)
>> +                       return auto_connect(connection->device);
>> +
>>                 /* Trigger discovery if not already started */
>>                 if (!scanning) {
>>                         if (!bt_le_discovery_start()) {
>> @@ -1771,6 +1797,7 @@ static bool trigger_connection(struct app_connection *connection)
>>                                 break;
>>                         }
>>                 }
>> +
>>                 ret = true;
>>                 device_set_state(connection->device, DEVICE_CONNECT_INIT);
>>                 break;
>> --
>> 1.8.4
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
>> the body of a message to majordomo@xxxxxxxxxxxxxxx
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
>
>
>
> --
> Luiz Augusto von Dentz
--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux