2014-03-07 10:28:29

by Lukasz Rymanowski

[permalink] [raw]
Subject: [PATCH 1/2] android: Fix type of discovery on start/stop discovery

Discovering type was confused with adapter settings. With this patch it
is fixed
---
android/bluetooth.c | 14 ++++++--------
1 file changed, 6 insertions(+), 8 deletions(-)

diff --git a/android/bluetooth.c b/android/bluetooth.c
index 1101b64..6d08a50 100644
--- a/android/bluetooth.c
+++ b/android/bluetooth.c
@@ -2408,14 +2408,13 @@ static void get_adapter_properties(void)
static bool start_discovery(void)
{
struct mgmt_cp_start_discovery cp;
- uint8_t type = 1 << BDADDR_BREDR;

- if (adapter.current_settings & type)
- cp.type = type;
+ if (adapter.current_settings & MGMT_SETTING_BREDR)
+ cp.type = 1 << BDADDR_BREDR;
else
cp.type = 0;

- DBG("type=0x%x", type);
+ DBG("type=0x%x", cp.type);

if (mgmt_send(mgmt_if, MGMT_OP_START_DISCOVERY, adapter.index,
sizeof(cp), &cp, NULL, NULL, NULL) > 0)
@@ -2428,14 +2427,13 @@ static bool start_discovery(void)
static bool stop_discovery(void)
{
struct mgmt_cp_stop_discovery cp;
- uint8_t type = 1 << BDADDR_BREDR;

- if (adapter.current_settings & type)
- cp.type = type;
+ if (adapter.current_settings & MGMT_SETTING_BREDR)
+ cp.type = 1 << BDADDR_BREDR;
else
cp.type = 0;

- DBG("type=0x%x", type);
+ DBG("type=0x%x", cp.type);

if (mgmt_send(mgmt_if, MGMT_OP_STOP_DISCOVERY, adapter.index,
sizeof(cp), &cp, NULL, NULL, NULL) > 0)
--
1.8.4



2014-03-09 14:09:01

by Szymon Janc

[permalink] [raw]
Subject: Re: [PATCH 1/2] android: Fix type of discovery on start/stop discovery

Hi Ɓukasz,

On Friday 07 of March 2014 11:28:29 Lukasz Rymanowski wrote:
> Discovering type was confused with adapter settings. With this patch it
> is fixed
> ---
> android/bluetooth.c | 14 ++++++--------
> 1 file changed, 6 insertions(+), 8 deletions(-)
>
> diff --git a/android/bluetooth.c b/android/bluetooth.c
> index 1101b64..6d08a50 100644
> --- a/android/bluetooth.c
> +++ b/android/bluetooth.c
> @@ -2408,14 +2408,13 @@ static void get_adapter_properties(void)
> static bool start_discovery(void)
> {
> struct mgmt_cp_start_discovery cp;
> - uint8_t type = 1 << BDADDR_BREDR;
>
> - if (adapter.current_settings & type)
> - cp.type = type;
> + if (adapter.current_settings & MGMT_SETTING_BREDR)
> + cp.type = 1 << BDADDR_BREDR;
> else
> cp.type = 0;
>
> - DBG("type=0x%x", type);
> + DBG("type=0x%x", cp.type);
>
> if (mgmt_send(mgmt_if, MGMT_OP_START_DISCOVERY, adapter.index,
> sizeof(cp), &cp, NULL, NULL, NULL) > 0)
> @@ -2428,14 +2427,13 @@ static bool start_discovery(void)
> static bool stop_discovery(void)
> {
> struct mgmt_cp_stop_discovery cp;
> - uint8_t type = 1 << BDADDR_BREDR;
>
> - if (adapter.current_settings & type)
> - cp.type = type;
> + if (adapter.current_settings & MGMT_SETTING_BREDR)
> + cp.type = 1 << BDADDR_BREDR;
> else
> cp.type = 0;
>
> - DBG("type=0x%x", type);
> + DBG("type=0x%x", cp.type);
>
> if (mgmt_send(mgmt_if, MGMT_OP_STOP_DISCOVERY, adapter.index,
> sizeof(cp), &cp, NULL, NULL, NULL) > 0)

Both patches applied. Thanks.

--
BR
Szymon Janc

2014-03-07 10:28:30

by Lukasz Rymanowski

[permalink] [raw]
Subject: [PATCH 2/2] android: Support LE discovery if adapter supports LE

---
android/bluetooth.c | 6 ++++++
1 file changed, 6 insertions(+)

diff --git a/android/bluetooth.c b/android/bluetooth.c
index 6d08a50..c6e40ca 100644
--- a/android/bluetooth.c
+++ b/android/bluetooth.c
@@ -2414,6 +2414,9 @@ static bool start_discovery(void)
else
cp.type = 0;

+ if (adapter.current_settings & MGMT_SETTING_LE)
+ cp.type |= (1 << BDADDR_LE_PUBLIC) | (1 << BDADDR_LE_RANDOM);
+
DBG("type=0x%x", cp.type);

if (mgmt_send(mgmt_if, MGMT_OP_START_DISCOVERY, adapter.index,
@@ -2433,6 +2436,9 @@ static bool stop_discovery(void)
else
cp.type = 0;

+ if (adapter.current_settings & MGMT_SETTING_LE)
+ cp.type |= (1 << BDADDR_LE_PUBLIC) | (1 << BDADDR_LE_RANDOM);
+
DBG("type=0x%x", cp.type);

if (mgmt_send(mgmt_if, MGMT_OP_STOP_DISCOVERY, adapter.index,
--
1.8.4