/* * Copyright 2021 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef BLE_SCANNER_H #define BLE_SCANNER_H #include #include #include #include "btm_ble_api.h" using status_cb = base::Callback; using handle_cb = base::Callback; // methods we expose to c code: void btm_ble_scanner_cleanup(void); void btm_ble_scanner_init(); class BleScannerHciInterface; class BleScanningManager { public: virtual ~BleScanningManager() = default; static void Initialize(BleScannerHciInterface* interface); static void CleanUp(); static bool IsInitialized(); static base::WeakPtr Get(); virtual void PeriodicScanStart(uint8_t options, uint8_t set_id, uint8_t adv_addr_type, const RawAddress& adv_addr, uint16_t skip_num, uint16_t sync_timeout, uint8_t sync_cte_type) = 0; virtual void PeriodicScanCancelStart(/*status_cb command_complete*/) = 0; virtual void PeriodicScanTerminate(uint16_t sync_handle/*, status_cb command_complete*/) = 0; virtual void PeriodicAdvSyncTransfer(const RawAddress& bd_addr, uint16_t service_data, uint16_t sync_handle, handle_cb command_complete) = 0; virtual void PeriodicAdvSetInfoTransfer(const RawAddress& bd_addr, uint16_t service_data, uint8_t adv_handle, handle_cb command_complete) = 0; virtual void SetPeriodicAdvSyncTransferParams(const RawAddress& bd_addr, uint8_t mode, uint16_t skip, uint16_t sync_timeout, uint8_t cte_type, bool set_defaults, status_cb command_complete) = 0; virtual void OnPeriodicScanResult(uint16_t sync_handle, uint8_t tx_power, int8_t rssi, uint8_t cte_type, uint8_t pkt_data_status, uint8_t pkt_data_len, const uint8_t* pkt_data) = 0; virtual void OnPeriodicScanEstablished(uint8_t status, uint16_t sync_handle, uint8_t set_id, uint8_t adv_addr_type, const RawAddress& adv_addr, uint8_t adv_phy, uint16_t adv_interval, uint8_t adv_clock_accuracy) = 0; virtual void OnPeriodicScanLost(uint16_t sync_handle) = 0; }; #endif // BLE_SCANNER_H