This commit is contained in:
ReFil 2024-09-01 21:31:41 +08:00 committed by GitHub
commit f5d3f1691e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 28 additions and 1 deletions

View file

@ -41,4 +41,5 @@ int zmk_ble_unpair_all(void);
#if IS_ENABLED(CONFIG_ZMK_SPLIT_ROLE_CENTRAL)
int zmk_ble_put_peripheral_addr(const bt_addr_le_t *addr);
bt_addr_le_t *zmk_ble_get_peripheral_addr(uint8_t index);
#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_ROLE_CENTRAL) */

View file

@ -22,3 +22,5 @@ int zmk_split_bt_update_hid_indicator(zmk_hid_indicators_t indicators);
int zmk_split_get_peripheral_battery_level(uint8_t source, uint8_t *level);
#endif // IS_ENABLED(CONFIG_ZMK_SPLIT_BLE_CENTRAL_BATTERY_LEVEL_FETCHING)
bool zmk_split_bt_central_peripheral_is_connected(uint8_t index);
bool zmk_split_bt_central_peripheral_is_bonded(uint8_t index);

View file

@ -372,6 +372,14 @@ int zmk_ble_put_peripheral_addr(const bt_addr_le_t *addr) {
return -ENOMEM;
}
bt_addr_le_t *zmk_ble_get_peripheral_addr(uint8_t index) {
if (index < ZMK_SPLIT_BLE_PERIPHERAL_COUNT) {
return &peripheral_addrs[index];
}
// Peripheral index out of range
return (bt_addr_le_t *)BT_ADDR_LE_NONE;
}
#endif /* IS_ENABLED(CONFIG_ZMK_SPLIT_ROLE_CENTRAL) */
#if IS_ENABLED(CONFIG_SETTINGS)

View file

@ -744,6 +744,22 @@ static struct bt_conn_cb conn_callbacks = {
.disconnected = split_central_disconnected,
};
bool zmk_split_bt_central_peripheral_is_connected(uint8_t index) {
// If index is out of range always not connected
if (index >= ZMK_SPLIT_BLE_PERIPHERAL_COUNT)
return false;
else
return (peripherals[index].state == PERIPHERAL_SLOT_STATE_CONNECTED);
}
bool zmk_split_bt_central_peripheral_is_bonded(uint8_t index) {
// If index is out of range always not bonded
if (index >= ZMK_SPLIT_BLE_PERIPHERAL_COUNT)
return false;
else
return (bt_addr_le_cmp(zmk_ble_get_peripheral_addr(index), BT_ADDR_LE_ANY) == 0);
}
K_THREAD_STACK_DEFINE(split_central_split_run_q_stack,
CONFIG_ZMK_SPLIT_BLE_CENTRAL_SPLIT_RUN_STACK_SIZE);