mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 04:41:28 +00:00
Remove force disable of NKRO when Bluetooth enabled (#25201)
This commit is contained in:
parent
ac991405d0
commit
ab1332bb6c
@ -11,6 +11,10 @@ __attribute__((weak)) bool bluetooth_is_connected(void) {
|
||||
return true;
|
||||
}
|
||||
|
||||
__attribute__((weak)) bool bluetooth_can_send_nkro(void) {
|
||||
return false;
|
||||
}
|
||||
|
||||
__attribute__((weak)) uint8_t bluetooth_keyboard_leds(void) {
|
||||
return 0;
|
||||
}
|
||||
|
@ -37,6 +37,11 @@ void bluetooth_task(void);
|
||||
*/
|
||||
bool bluetooth_is_connected(void);
|
||||
|
||||
/**
|
||||
* \brief Detects if `bluetooth_send_nkro` should be used over `bluetooth_send_keyboard`.
|
||||
*/
|
||||
bool bluetooth_can_send_nkro(void);
|
||||
|
||||
/**
|
||||
* \brief Get current LED state.
|
||||
*/
|
||||
|
@ -21,7 +21,6 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "action_layer.h"
|
||||
#include "timer.h"
|
||||
#include "keycode_config.h"
|
||||
#include "usb_device_state.h"
|
||||
#include <string.h>
|
||||
|
||||
extern keymap_config_t keymap_config;
|
||||
@ -319,14 +318,12 @@ void send_nkro_report(void) {
|
||||
*/
|
||||
void send_keyboard_report(void) {
|
||||
#ifdef NKRO_ENABLE
|
||||
if (usb_device_state_get_protocol() == USB_PROTOCOL_REPORT && keymap_config.nkro) {
|
||||
if (host_can_send_nkro() && keymap_config.nkro) {
|
||||
send_nkro_report();
|
||||
} else {
|
||||
send_6kro_report();
|
||||
return;
|
||||
}
|
||||
#else
|
||||
send_6kro_report();
|
||||
#endif
|
||||
send_6kro_report();
|
||||
}
|
||||
|
||||
/** \brief Get mods
|
||||
|
@ -46,12 +46,8 @@ else
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(NKRO_ENABLE)), yes)
|
||||
ifeq ($(strip $(BLUETOOTH_ENABLE)), yes)
|
||||
$(info NKRO is not currently supported with Bluetooth, and has been disabled.)
|
||||
else
|
||||
OPT_DEFS += -DNKRO_ENABLE
|
||||
SHARED_EP_ENABLE = yes
|
||||
endif
|
||||
OPT_DEFS += -DNKRO_ENABLE
|
||||
SHARED_EP_ENABLE = yes
|
||||
endif
|
||||
|
||||
ifeq ($(strip $(NO_SUSPEND_POWER_DOWN)), yes)
|
||||
|
@ -21,6 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
#include "host.h"
|
||||
#include "util.h"
|
||||
#include "debug.h"
|
||||
#include "usb_device_state.h"
|
||||
|
||||
#ifdef DIGITIZER_ENABLE
|
||||
# include "digitizer.h"
|
||||
@ -90,6 +91,23 @@ static host_driver_t *host_get_active_driver(void) {
|
||||
return driver;
|
||||
}
|
||||
|
||||
bool host_can_send_nkro(void) {
|
||||
#ifdef CONNECTION_ENABLE
|
||||
switch (connection_get_host()) {
|
||||
# ifdef BLUETOOTH_ENABLE
|
||||
case CONNECTION_HOST_BLUETOOTH:
|
||||
return bluetooth_can_send_nkro();
|
||||
# endif
|
||||
case CONNECTION_HOST_NONE:
|
||||
return false;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
return usb_device_state_get_protocol() == USB_PROTOCOL_REPORT;
|
||||
}
|
||||
|
||||
#ifdef SPLIT_KEYBOARD
|
||||
uint8_t split_led_state = 0;
|
||||
void set_split_host_keyboard_leds(uint8_t led_state) {
|
||||
|
@ -32,6 +32,7 @@ void host_set_driver(host_driver_t *driver);
|
||||
host_driver_t *host_get_driver(void);
|
||||
|
||||
/* host driver interface */
|
||||
bool host_can_send_nkro(void);
|
||||
uint8_t host_keyboard_leds(void);
|
||||
led_t host_keyboard_led_state(void);
|
||||
void host_keyboard_send(report_keyboard_t *report);
|
||||
|
Loading…
Reference in New Issue
Block a user