forked from kofal.net/zmk
feat(bluetooth): Add back profiles, split fixes.
* Add back in profiles, not using Zephyr BT identity infrastructure. * Restore additional `&bt` commands for profile operations. * Fix for split pairing and subscriptions, since Zephyr persists subscriptions across connects. * Remove keymap from peripheral builds, reduces firmware size, and avoids unneeded attempts to send HID data.
This commit is contained in:
@@ -4,11 +4,18 @@
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#define BT_CLEAR_BONDS_CMD 0
|
||||
#define BT_CLEAR_BONDS_CMD 0
|
||||
#define BT_PROF_NEXT_CMD 1
|
||||
#define BT_PROF_PREV_CMD 2
|
||||
#define BT_PROF_SEL_CMD 3
|
||||
// #define BT_FULL_RESET_CMD 4
|
||||
|
||||
/*
|
||||
Note: Some future commands will include additional parameters, so we
|
||||
defines these aliases up front.
|
||||
*/
|
||||
|
||||
#define BT_CLEAR_BONDS BT_CLEAR_BONDS_CMD 0
|
||||
#define BT_CLEAR_BONDS BT_CLEAR_BONDS_CMD 0
|
||||
#define BT_PROF_NEXT BT_PROF_NEXT_CMD 0
|
||||
#define BT_PROF_PREV BT_PROF_PREV_CMD 0
|
||||
#define BT_PROF_SEL BT_PROF_SEL_CMD
|
||||
@@ -6,11 +6,16 @@
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <bluetooth/addr.h>
|
||||
#include <zmk/keys.h>
|
||||
|
||||
#include <zmk/ble/profile.h>
|
||||
|
||||
int zmk_ble_clear_bonds();
|
||||
int zmk_ble_prof_next();
|
||||
int zmk_ble_prof_prev();
|
||||
int zmk_ble_prof_select(u8_t index);
|
||||
|
||||
bt_addr_le_t *zmk_ble_active_profile_addr();
|
||||
char *zmk_ble_active_profile_name();
|
||||
|
||||
int zmk_ble_unpair_all();
|
||||
bool zmk_ble_handle_key_user(struct zmk_key_event *key_event);
|
||||
|
||||
16
app/include/zmk/ble/profile.h
Normal file
16
app/include/zmk/ble/profile.h
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com>
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <bluetooth/addr.h>
|
||||
|
||||
#define ZMK_BLE_PROFILE_NAME_MAX 15
|
||||
|
||||
struct zmk_ble_profile {
|
||||
char name[ZMK_BLE_PROFILE_NAME_MAX];
|
||||
bt_addr_le_t peer;
|
||||
};
|
||||
22
app/include/zmk/events/ble-active-profile-changed.h
Normal file
22
app/include/zmk/events/ble-active-profile-changed.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Copyright (c) 2020 Peter Johanson <peter@peterjohanson.com>
|
||||
*
|
||||
* SPDX-License-Identifier: MIT
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <zephyr.h>
|
||||
#include <zmk/event-manager.h>
|
||||
#include <device.h>
|
||||
|
||||
#include <zmk/ble/profile.h>
|
||||
|
||||
|
||||
struct ble_active_profile_changed {
|
||||
struct zmk_event_header header;
|
||||
u8_t index;
|
||||
struct zmk_ble_profile *profile;
|
||||
};
|
||||
|
||||
ZMK_EVENT_DECLARE(ble_active_profile_changed);
|
||||
Reference in New Issue
Block a user