mirror of
https://github.com/qmk/qmk_firmware.git
synced 2025-07-16 21:01:31 +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;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
__attribute__((weak)) bool bluetooth_can_send_nkro(void) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
__attribute__((weak)) uint8_t bluetooth_keyboard_leds(void) {
|
__attribute__((weak)) uint8_t bluetooth_keyboard_leds(void) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -37,6 +37,11 @@ void bluetooth_task(void);
|
|||||||
*/
|
*/
|
||||||
bool bluetooth_is_connected(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.
|
* \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 "action_layer.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
#include "keycode_config.h"
|
#include "keycode_config.h"
|
||||||
#include "usb_device_state.h"
|
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
extern keymap_config_t keymap_config;
|
extern keymap_config_t keymap_config;
|
||||||
@ -319,14 +318,12 @@ void send_nkro_report(void) {
|
|||||||
*/
|
*/
|
||||||
void send_keyboard_report(void) {
|
void send_keyboard_report(void) {
|
||||||
#ifdef NKRO_ENABLE
|
#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();
|
send_nkro_report();
|
||||||
} else {
|
return;
|
||||||
send_6kro_report();
|
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
send_6kro_report();
|
|
||||||
#endif
|
#endif
|
||||||
|
send_6kro_report();
|
||||||
}
|
}
|
||||||
|
|
||||||
/** \brief Get mods
|
/** \brief Get mods
|
||||||
|
@ -46,13 +46,9 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(strip $(NKRO_ENABLE)), yes)
|
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
|
OPT_DEFS += -DNKRO_ENABLE
|
||||||
SHARED_EP_ENABLE = yes
|
SHARED_EP_ENABLE = yes
|
||||||
endif
|
endif
|
||||||
endif
|
|
||||||
|
|
||||||
ifeq ($(strip $(NO_SUSPEND_POWER_DOWN)), yes)
|
ifeq ($(strip $(NO_SUSPEND_POWER_DOWN)), yes)
|
||||||
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
|
OPT_DEFS += -DNO_SUSPEND_POWER_DOWN
|
||||||
|
@ -21,6 +21,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|||||||
#include "host.h"
|
#include "host.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
|
#include "usb_device_state.h"
|
||||||
|
|
||||||
#ifdef DIGITIZER_ENABLE
|
#ifdef DIGITIZER_ENABLE
|
||||||
# include "digitizer.h"
|
# include "digitizer.h"
|
||||||
@ -90,6 +91,23 @@ static host_driver_t *host_get_active_driver(void) {
|
|||||||
return driver;
|
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
|
#ifdef SPLIT_KEYBOARD
|
||||||
uint8_t split_led_state = 0;
|
uint8_t split_led_state = 0;
|
||||||
void set_split_host_keyboard_leds(uint8_t led_state) {
|
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_t *host_get_driver(void);
|
||||||
|
|
||||||
/* host driver interface */
|
/* host driver interface */
|
||||||
|
bool host_can_send_nkro(void);
|
||||||
uint8_t host_keyboard_leds(void);
|
uint8_t host_keyboard_leds(void);
|
||||||
led_t host_keyboard_led_state(void);
|
led_t host_keyboard_led_state(void);
|
||||||
void host_keyboard_send(report_keyboard_t *report);
|
void host_keyboard_send(report_keyboard_t *report);
|
||||||
|
Loading…
Reference in New Issue
Block a user