core: Fix for disabling NKRO in Boot protocol
This commit is contained in:
		
							parent
							
								
									e8a4a63ec4
								
							
						
					
					
						commit
						ed9766a7d4
					
				@ -76,7 +76,7 @@ void send_keyboard_report(void) {
 | 
			
		||||
void add_key(uint8_t key)
 | 
			
		||||
{
 | 
			
		||||
#ifdef NKRO_ENABLE
 | 
			
		||||
    if (keyboard_nkro) {
 | 
			
		||||
    if (keyboard_protocol && keyboard_nkro) {
 | 
			
		||||
        add_key_bit(key);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
@ -87,7 +87,7 @@ void add_key(uint8_t key)
 | 
			
		||||
void del_key(uint8_t key)
 | 
			
		||||
{
 | 
			
		||||
#ifdef NKRO_ENABLE
 | 
			
		||||
    if (keyboard_nkro) {
 | 
			
		||||
    if (keyboard_protocol && keyboard_nkro) {
 | 
			
		||||
        del_key_bit(key);
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
@ -160,7 +160,7 @@ uint8_t has_anymod(void)
 | 
			
		||||
uint8_t get_first_key(void)
 | 
			
		||||
{
 | 
			
		||||
#ifdef NKRO_ENABLE
 | 
			
		||||
    if (keyboard_nkro) {
 | 
			
		||||
    if (keyboard_protocol && keyboard_nkro) {
 | 
			
		||||
        uint8_t i = 0;
 | 
			
		||||
        for (; i < KEYBOARD_REPORT_BITS && !keyboard_report->nkro.bits[i]; i++)
 | 
			
		||||
            ;
 | 
			
		||||
 | 
			
		||||
@ -315,6 +315,7 @@ static bool command_common(uint8_t code)
 | 
			
		||||
            print_val_hex8(host_keyboard_leds());
 | 
			
		||||
            print_val_hex8(keyboard_protocol);
 | 
			
		||||
            print_val_hex8(keyboard_idle);
 | 
			
		||||
            print_val_hex8(keyboard_nkro);
 | 
			
		||||
            print_val_hex32(timer_count);
 | 
			
		||||
 | 
			
		||||
#ifdef PROTOCOL_PJRC
 | 
			
		||||
 | 
			
		||||
@ -53,6 +53,7 @@
 | 
			
		||||
#include "lufa.h"
 | 
			
		||||
 | 
			
		||||
uint8_t keyboard_idle = 0;
 | 
			
		||||
/* 0: Boot Protocol, 1: Report Protocol(default) */
 | 
			
		||||
uint8_t keyboard_protocol = 1;
 | 
			
		||||
static uint8_t keyboard_led_stats = 0;
 | 
			
		||||
 | 
			
		||||
@ -349,10 +350,7 @@ void EVENT_USB_Device_ControlRequest(void)
 | 
			
		||||
                    Endpoint_ClearSETUP();
 | 
			
		||||
                    Endpoint_ClearStatusStage();
 | 
			
		||||
 | 
			
		||||
                    keyboard_protocol = ((USB_ControlRequest.wValue & 0xFF) != 0x00);
 | 
			
		||||
#ifdef NKRO_ENABLE
 | 
			
		||||
                    keyboard_nkro = !!keyboard_protocol;
 | 
			
		||||
#endif
 | 
			
		||||
                    keyboard_protocol = (USB_ControlRequest.wValue & 0xFF);
 | 
			
		||||
                    clear_keyboard();
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
@ -399,7 +397,7 @@ static void send_keyboard(report_keyboard_t *report)
 | 
			
		||||
 | 
			
		||||
    /* Select the Keyboard Report Endpoint */
 | 
			
		||||
#ifdef NKRO_ENABLE
 | 
			
		||||
    if (keyboard_nkro) {
 | 
			
		||||
    if (keyboard_protocol && keyboard_nkro) {
 | 
			
		||||
        /* Report protocol - NKRO */
 | 
			
		||||
        Endpoint_SelectEndpoint(NKRO_IN_EPNUM);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user