diff options
author | Treehugger Robot <treehugger-gerrit@google.com> | 2020-10-20 12:12:41 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2020-10-20 12:12:41 +0000 |
commit | 33bc8c89903459ffcd42f4c2256c3629348fbb5d (patch) | |
tree | 4287bbc136a5b91fa107188b4a149503432e5964 /include | |
parent | de7f2688fa1dd1dc264acea96c9f42b1ed74ff3f (diff) | |
parent | 5b4d34a03e15ef2cd16ccf77ee70c51700efdeac (diff) | |
download | bt-33bc8c89903459ffcd42f4c2256c3629348fbb5d.tar.gz |
Merge "Refactor advertising callback mechanism for GD"
Diffstat (limited to 'include')
-rw-r--r-- | include/hardware/ble_advertiser.h | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/include/hardware/ble_advertiser.h b/include/hardware/ble_advertiser.h index 6055d8925..72731b221 100644 --- a/include/hardware/ble_advertiser.h +++ b/include/hardware/ble_advertiser.h @@ -41,6 +41,32 @@ struct PeriodicAdvertisingParameters { uint16_t periodic_advertising_properties; }; +/** + * LE Advertising related callbacks invoked from from the Bluetooth native stack + * All callbacks are invoked on the JNI thread + */ +class AdvertisingCallbacks { + public: + virtual ~AdvertisingCallbacks() = default; + virtual void OnAdvertisingSetStarted(int reg_id, uint8_t advertiser_id, + int8_t tx_power, uint8_t status) = 0; + virtual void OnAdvertisingEnabled(uint8_t advertiser_id, bool enable, + uint8_t status) = 0; + virtual void OnAdvertisingDataSet(uint8_t advertiser_id, uint8_t status) = 0; + virtual void OnScanResponseDataSet(uint8_t advertiser_id, uint8_t status) = 0; + virtual void OnAdvertisingParametersUpdated(uint8_t advertiser_id, + int8_t tx_power, + uint8_t status) = 0; + virtual void OnPeriodicAdvertisingParametersUpdated(uint8_t advertiser_id, + uint8_t status) = 0; + virtual void OnPeriodicAdvertisingDataSet(uint8_t advertiser_id, + uint8_t status) = 0; + virtual void OnPeriodicAdvertisingEnabled(uint8_t advertiser_id, bool enable, + uint8_t status) = 0; + virtual void OnOwnAddressRead(uint8_t advertiser_id, uint8_t address_type, + RawAddress address) = 0; +}; + class BleAdvertiserInterface { public: virtual ~BleAdvertiserInterface() = default; @@ -86,10 +112,11 @@ class BleAdvertiserInterface { /** Start the advertising set. This include registering, setting all * parameters and data, and enabling it. |register_cb| is called when the set - * is advertising. |timeout_cb| is called when the timeout_s have passed */ + * is advertising. |timeout_cb| is called when the timeout_s have passed. + * |reg_id| is the callback id assigned from upper layer */ virtual void StartAdvertisingSet( - IdTxPowerStatusCallback register_cb, AdvertiseParameters params, - std::vector<uint8_t> advertise_data, + int reg_id, IdTxPowerStatusCallback register_cb, + AdvertiseParameters params, std::vector<uint8_t> advertise_data, std::vector<uint8_t> scan_response_data, PeriodicAdvertisingParameters periodic_params, std::vector<uint8_t> periodic_data, uint16_t duration, @@ -105,6 +132,7 @@ class BleAdvertiserInterface { virtual void SetPeriodicAdvertisingEnable(int advertiser_id, bool enable, StatusCallback cb) = 0; + virtual void RegisterCallbacks(AdvertisingCallbacks* callbacks) = 0; }; #endif /* ANDROID_INCLUDE_BLE_ADVERTISER_H */ |