le scan is not started after stop because stop_pending is set TRUE.
stop_pending will be set FALSE if le discovery is finished.
Change-Id: Id8d9d759e1afcbf1080c98239a14b1affb40a3b6
#define HAL_PROP_DEVICE_BLE_ADV_DATA 0x17
#define HAL_PROP_ADAPTER_LOCAL_LE_FEAT 0x18
#define HAL_PROP_DEVICE_IS_ALIAS_SET 0x19
+#define HAL_PROP_ADAPTER_LE_DISCOVERY_FINISHED 0x1a
struct hal_prop_device_info {
uint8_t version;
}
} else if (!g_strcmp0(key, "LEDiscovering")) {
- GVariant *result;
+// GVariant *result;
is_le_discovering = g_variant_get_boolean(value);
DBG("##LE Discovering = [%d]", is_le_discovering);
if (is_le_discovering)
continue;
+#if 0 /* No need to stop le discovery in case LEDiscovering is false */
adapter_proxy = _bt_hal_get_adapter_proxy();
if (adapter_proxy == NULL) {
ERR("adapter_proxy == NULL");
continue;
}
g_variant_unref(result);
+#endif
+
+ size += __bt_insert_hal_properties(buf + size,
+ HAL_PROP_ADAPTER_LE_DISCOVERY_FINISHED, sizeof(gboolean), &is_le_discovering);
+ ev->num_props++;
} else if (!g_strcmp0(key, "Modalias")) {
char *modalias = NULL;
g_variant_get(value, "s", &modalias);
*/
BT_PROPERTY_REMOTE_IS_ALIAS_SET,
+ /**
+ * Description - Bluetooth Adapter LE Discovery finished
+ * Data type - gboolean
+ */
+ BT_PROPERTY_ADAPTER_LE_DISCOVERY_FINISHED,
+
BT_PROPERTY_REMOTE_DEVICE_TIMESTAMP = 0xFF,
} bt_property_type_t;
EVENT(OAL_EVENT_BLE_MULTI_ADVERTISING_UPDATE) /* NULL*/\
EVENT(OAL_EVENT_BLE_DISCOVERY_STARTED) /* NULL */\
EVENT(OAL_EVENT_BLE_DISCOVERY_STOPPED) /* NULL */\
+ EVENT(OAL_EVENT_BLE_DISCOVERY_FINISHED) /* NULL */\
EVENT(OAL_EVENT_BLE_REMOTE_DEVICE_FOUND) /* event_ble_scan_result_info */\
EVENT(OAL_EVENT_BLE_LOCAL_FEATURES) /* adapter le features */\
EVENT(OAL_EVENT_GATTS_SERVICE_ADDED) /* gatts Service Added */\
sizeof(event_adapter_le_features_t));
break;
}
+ case BT_PROPERTY_ADAPTER_LE_DISCOVERY_FINISHED: {
+ gboolean le_discovering = *(gboolean *)properties[i].val;
+ if (le_discovering == FALSE) {
+ BT_INFO("LE Discovery finished");
+ send_event(OAL_EVENT_BLE_DISCOVERY_FINISHED, NULL, 0);
+ }
+ break;
+ }
default:
BT_WARN("Unhandled property: %d", properties[i].type);
break;
static bluetooth_le_scan_params_t le_scan_params = { BT_LE_ACTIVE_SCAN, 0, 0 };
static int g_gatt_client_id = 0;
+static void _bt_disable_all_scanner_status(void);
/******************************************* LE Scan *********************************************/
break;
}
+ case OAL_EVENT_BLE_DISCOVERY_FINISHED: {
+ _bt_disable_all_scanner_status();
+ break;
+ }
default:
break;
}
return BLUETOOTH_ERROR_NONE;
}
-void _bt_disable_all_scanner_status(void)
+static void _bt_disable_all_scanner_status(void)
{
GSList *l;
bt_adapter_le_scanner_t *scanner;
#endif
case OAL_EVENT_BLE_DISCOVERY_STARTED:
case OAL_EVENT_BLE_DISCOVERY_STOPPED:
+ case OAL_EVENT_BLE_DISCOVERY_FINISHED:
case OAL_EVENT_BLE_REMOTE_DEVICE_FOUND:
case OAL_EVENT_BLE_LOCAL_FEATURES:
if (adapter_le_cb)