diff --git a/app/include/zmk/ble.h b/app/include/zmk/ble.h index 963bbb91b..4e978b14b 100644 --- a/app/include/zmk/ble.h +++ b/app/include/zmk/ble.h @@ -28,6 +28,7 @@ int zmk_ble_prof_disconnect(uint8_t index); int zmk_ble_active_profile_index(void); int zmk_ble_profile_index(const bt_addr_le_t *addr); +bt_addr_le_t *zmk_ble_profile_address(uint8_t index); bt_addr_le_t *zmk_ble_active_profile_addr(void); struct bt_conn *zmk_ble_active_profile_conn(void); diff --git a/app/src/ble.c b/app/src/ble.c index e7a25b09e..c749c8e5a 100644 --- a/app/src/ble.c +++ b/app/src/ble.c @@ -250,6 +250,13 @@ int zmk_ble_profile_index(const bt_addr_le_t *addr) { return -ENODEV; } +bt_addr_le_t *zmk_ble_profile_address(uint8_t index) { + if (index >= ZMK_BLE_PROFILE_COUNT) { + return (bt_addr_le_t *)(BT_ADDR_LE_NONE); + } + return &profiles[index].peer; +} + #if IS_ENABLED(CONFIG_SETTINGS) static void ble_save_profile_work(struct k_work *work) { settings_save_one("ble/active_profile", &active_profile, sizeof(active_profile));