bt: add BT_CLR_ALL behaviour
Defines behaviour to clear all paired Bluetooth profiles
This commit is contained in:
parent
6f8d080b6a
commit
5257cde1f5
4 changed files with 22 additions and 1 deletions
|
@ -8,7 +8,7 @@
|
||||||
#define BT_NXT_CMD 1
|
#define BT_NXT_CMD 1
|
||||||
#define BT_PRV_CMD 2
|
#define BT_PRV_CMD 2
|
||||||
#define BT_SEL_CMD 3
|
#define BT_SEL_CMD 3
|
||||||
// #define BT_FULL_RESET_CMD 4
|
#define BT_CLR_ALL_CMD 4
|
||||||
#define BT_DISC_CMD 5
|
#define BT_DISC_CMD 5
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -20,4 +20,5 @@ defines these aliases up front.
|
||||||
#define BT_NXT BT_NXT_CMD 0
|
#define BT_NXT BT_NXT_CMD 0
|
||||||
#define BT_PRV BT_PRV_CMD 0
|
#define BT_PRV BT_PRV_CMD 0
|
||||||
#define BT_SEL BT_SEL_CMD
|
#define BT_SEL BT_SEL_CMD
|
||||||
|
#define BT_CLR_ALL BT_CLR_ALL_CMD 0
|
||||||
#define BT_DISC BT_DISC_CMD
|
#define BT_DISC BT_DISC_CMD
|
||||||
|
|
|
@ -24,6 +24,7 @@ int zmk_ble_clear_bonds();
|
||||||
int zmk_ble_prof_next();
|
int zmk_ble_prof_next();
|
||||||
int zmk_ble_prof_prev();
|
int zmk_ble_prof_prev();
|
||||||
int zmk_ble_prof_select(uint8_t index);
|
int zmk_ble_prof_select(uint8_t index);
|
||||||
|
int zmk_ble_clear_all_bonds();
|
||||||
int zmk_ble_prof_disconnect(uint8_t index);
|
int zmk_ble_prof_disconnect(uint8_t index);
|
||||||
|
|
||||||
int zmk_ble_active_profile_index();
|
int zmk_ble_active_profile_index();
|
||||||
|
|
|
@ -31,6 +31,8 @@ static int on_keymap_binding_pressed(struct zmk_behavior_binding *binding,
|
||||||
return zmk_ble_prof_prev();
|
return zmk_ble_prof_prev();
|
||||||
case BT_SEL_CMD:
|
case BT_SEL_CMD:
|
||||||
return zmk_ble_prof_select(binding->param2);
|
return zmk_ble_prof_select(binding->param2);
|
||||||
|
case BT_CLR_ALL_CMD:
|
||||||
|
return zmk_ble_clear_all_bonds();
|
||||||
case BT_DISC_CMD:
|
case BT_DISC_CMD:
|
||||||
return zmk_ble_prof_disconnect(binding->param2);
|
return zmk_ble_prof_disconnect(binding->param2);
|
||||||
default:
|
default:
|
||||||
|
|
|
@ -224,6 +224,23 @@ int zmk_ble_clear_bonds() {
|
||||||
return 0;
|
return 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
int zmk_ble_clear_all_bonds() {
|
||||||
|
LOG_DBG("zmk_ble_clear_all_bonds()");
|
||||||
|
|
||||||
|
// Unpair all profiles
|
||||||
|
for (uint8_t i = 0; i < ZMK_BLE_PROFILE_COUNT; i++) {
|
||||||
|
if (bt_addr_le_cmp(&profiles[i].peer, BT_ADDR_LE_ANY)) {
|
||||||
|
bt_unpair(BT_ID_DEFAULT, &profiles[i].peer);
|
||||||
|
set_profile_address(i, BT_ADDR_LE_ANY);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Automatically switch to profile 0
|
||||||
|
zmk_ble_prof_select(0);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
};
|
||||||
|
|
||||||
int zmk_ble_active_profile_index() { return active_profile; }
|
int zmk_ble_active_profile_index() { return active_profile; }
|
||||||
|
|
||||||
int zmk_ble_profile_index(const bt_addr_le_t *addr) {
|
int zmk_ble_profile_index(const bt_addr_le_t *addr) {
|
||||||
|
|
Loading…
Add table
Reference in a new issue