PebbleOS
Loading...
Searching...
No Matches
Typedefs | Enumerations | Functions
bluetooth_persistent_storage.h File Reference
#include <pbl/services/comm_session/session_remote_version.h>
#include <pbl/bluetooth/types.h>
#include <pbl/bluetooth/bonding_sync.h>
#include <pbl/bluetooth/sm_types.h>

Typedefs

typedef void(* BtPersistBondingChangeHandler) (pbl_bt_bonding_id_t affected_bonding, BtPersistBondingOp operation)
 Handler of bonding database changes.
 
typedef void(* BtPersistBondingDBEachBLE) (struct pbl_bt_device_internal *device, struct pbl_bt_sm_key *irk, const char *name, pbl_bt_bonding_id_t *id, void *context)
 Callback for bt_persistent_storage_for_each_ble_pairing().
 

Enumerations

enum  BtPersistBondingOp { BtPersistBondingOpInvalid = -1 , BtPersistBondingOpDidAdd , BtPersistBondingOpDidChange , BtPersistBondingOpWillDelete }
 Change made to a bonding. More...
 
enum  BtPersistBondingType { BtPersistBondingTypeBTClassic , BtPersistBondingTypeBLE , BtPersistBondingNumTypes }
 Transport of a bonding. More...
 

Functions

bool bt_persistent_storage_has_pinned_ble_pairings (void)
 Check whether any BLE bonding requires address pinning.
 
bool bt_persistent_storage_set_ble_pinned_address (const struct pbl_bt_addr *address)
 Store the pinned local BLE address.
 
bool bt_persistent_storage_get_ble_pinned_address (struct pbl_bt_addr *address_out)
 Get the pinned local BLE address.
 
pbl_bt_bonding_id_t bt_persistent_storage_store_ble_pairing (const struct pbl_bt_sm_pairing_info *pairing_info, bool is_gateway, const char *device_name, bool requires_address_pinning, uint8_t flags)
 Add or update a BLE bonding.
 
bool bt_persistent_storage_update_ble_device_name (pbl_bt_bonding_id_t bonding, const char *device_name)
 Update the name of a BLE bonding.
 
void bt_persistent_storage_delete_ble_pairing_by_id (pbl_bt_bonding_id_t)
 Delete the BLE bonding with the given ID, with its CCCDs.
 
void bt_persistent_storage_delete_ble_pairing_by_addr (const struct pbl_bt_device_internal *device)
 Delete the BLE bonding with an identity address, with its CCCDs.
 
bool bt_persistent_storage_get_ble_pairing_by_id (pbl_bt_bonding_id_t bonding, struct pbl_bt_sm_key *IRK_out, struct pbl_bt_device_internal *device_out, char *name_out)
 Look up a BLE bonding by ID.
 
bool bt_persistent_storage_get_ble_pairing_by_addr (const struct pbl_bt_device_internal *device, struct pbl_bt_sm_key *IRK_out, char name_out[PBL_BT_DEVICE_NAME_BUFFER_SIZE])
 Look up a BLE bonding by identity address.
 
pbl_bt_bonding_id_t bt_persistent_storage_get_ble_ancs_bonding (void)
 Get the first BLE bonding that supports ANCS.
 
bool bt_persistent_storage_is_ble_ancs_bonding (pbl_bt_bonding_id_t bonding)
 Check whether a bonding is a BLE bonding that supports ANCS.
 
bool bt_persistent_storage_has_ble_ancs_bonding (void)
 Check whether any BLE bonding supports ANCS.
 
bool bt_persistent_storage_has_active_ble_gateway_bonding (void)
 Check whether the active gateway is a BLE bonding.
 
void bt_persistent_storage_for_each_ble_pairing (BtPersistBondingDBEachBLE cb, void *context)
 Call a function for each BLE bonding.
 
void bt_persistent_storage_register_existing_ble_bondings (void)
 Register all stored BLE bondings and CCCDs with the Bluetooth driver.
 
pbl_bt_cccd_id_t bt_persistent_storage_store_cccd (const struct pbl_bt_cccd *cccd)
 Store a CCCD, replacing the one for the same peer and characteristic.
 
bool bt_persistent_storage_delete_cccd (const struct pbl_bt_device_internal *peer, uint16_t chr_val_handle)
 Delete a stored CCCD.
 
void bt_persistent_storage_set_active_gateway (pbl_bt_bonding_id_t bonding)
 Set the active gateway, the bonding that implements Pebble Protocol.
 
bool bt_persistent_storage_get_active_gateway (pbl_bt_bonding_id_t *bonding_out, BtPersistBondingType *type_out)
 Get the active gateway.
 
bool bt_persistent_storage_is_unfaithful (void)
 Check whether the watch is unfaithful.
 
void bt_persistent_storage_set_unfaithful (bool is_unfaithful)
 Set whether the watch is unfaithful.
 
bool bt_persistent_storage_get_root_key (enum pbl_bt_sm_root_key_type key_type, struct pbl_bt_sm_key *key_out)
 Get a BLE root key.
 
void bt_persistent_storage_set_root_keys (struct pbl_bt_sm_key *keys_in)
 Store the BLE root keys.
 
bool bt_persistent_storage_get_local_device_name (char *local_device_name_out, size_t max_size)
 Get the stored local device name.
 
void bt_persistent_storage_set_local_device_name (char *local_device_name, size_t max_size)
 Store the local device name.
 
bool bt_persistent_storage_get_airplane_mode_enabled (void)
 Get the stored airplane mode setting.
 
void bt_persistent_storage_set_airplane_mode_enabled (bool enable)
 Store the airplane mode setting.
 
void bt_persistent_storage_get_cached_system_capabilities (PebbleProtocolCapabilities *capabilities_out)
 Get the cached capabilities of the last system session.
 
void bt_persistent_storage_set_cached_system_capabilities (const PebbleProtocolCapabilities *capabilities)
 Cache the capabilities of the system session.
 
void bt_persistent_storage_init (void)
 Initialize the database, before the Bluetooth stack starts.
 
void bt_persistent_storage_delete_all_pairings (void)
 Delete all bondings, keeping the local device settings.
 
int bt_persistent_storage_get_raw_data (const void *key, size_t key_len, void *data_out, size_t buf_len)
 Read a raw database record, for unit tests.