From a024710c588f0fb1bda2fa789de4d2a8d9558b90 Mon Sep 17 00:00:00 2001 From: John Carroll Date: Mon, 9 Jan 2023 10:26:27 -0800 Subject: [PATCH] Added an exported function to enable/disable ble v3 from the dart UI including updating the UI. This is expected to be used in test and does not affect interfaces that are unaware of it (IOW, it breaks nothing and NS will still use v2). Now we can just switch back and forth between v2 and v3 without recompilation, but, it needs to be done carefully, once it's toggled toggling back should only be done when not advertising, discovering, or connected/ing. At some point, I will work out the logic for disabling it, it's gonna take a little dart coding. PiperOrigin-RevId: 500748215 --- connections/clients/windows/dart/core_adapter_dart.cc | 11 +++++++++++ connections/clients/windows/dart/core_adapter_dart.h | 3 +++ 2 files changed, 14 insertions(+) diff --git a/connections/clients/windows/dart/core_adapter_dart.cc b/connections/clients/windows/dart/core_adapter_dart.cc index 4ef563f0..33a9f5ab 100644 --- a/connections/clients/windows/dart/core_adapter_dart.cc +++ b/connections/clients/windows/dart/core_adapter_dart.cc @@ -331,6 +331,17 @@ void PostResult(Dart_Port &result_cb, Status::Value value) { } } +void EnableBleV2Dart(Core *pCore, int64_t enable, Dart_Port result_cb) { + if (!pCore) { + PostResult(result_cb, Status::Value::kError); + return; + } + port = result_cb; + + FeatureFlags::GetMutableFlagsForTesting().support_ble_v2 = enable; + PostResult(result_cb, Status::kSuccess); +} + void StartAdvertisingDart( Core *pCore, const char *service_id, AdvertisingOptionsDart connection_options_dart, diff --git a/connections/clients/windows/dart/core_adapter_dart.h b/connections/clients/windows/dart/core_adapter_dart.h index f7ecce1a..1f57ff0e 100644 --- a/connections/clients/windows/dart/core_adapter_dart.h +++ b/connections/clients/windows/dart/core_adapter_dart.h @@ -166,6 +166,9 @@ static void ListenerPayloadCB(const char *endpoint_id, PayloadW &payload); static void ListenerPayloadProgressCB(const char *endpoint_id, const PayloadProgressInfoW &info); +DLL_API void __stdcall EnableBleV2Dart(Core *pCore, int64_t enable, + Dart_Port result_cb); + // Starts advertising an endpoint for a local app. // // service_id - An identifier to advertise your app to other endpoints.