changeset 446:f570ab7c861a

Merge pull request #120 from jlsalvador/feature-toggle-keyboard-protocol Adding toggleKbdProtocol capability
author Jacob Alexander <haata@kiibohd.com>
date Thu, 26 May 2016 11:13:35 -0700
parents a6370d67f460 (current diff) 380e1f0123d0 (diff)
children 56237ba5da6f
files
diffstat 3 files changed, 45 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/Output/pjrcUSB/capabilities.kll	Mon May 23 17:19:21 2016 -0700
+++ b/Output/pjrcUSB/capabilities.kll	Thu May 26 11:13:35 2016 -0700
@@ -17,6 +17,7 @@
 # Configuration capabilities
 kbdProtocolBoot => Output_kbdProtocolBoot_capability();
 kbdProtocolNKRO => Output_kbdProtocolNKRO_capability();
+toggleKbdProtocol => Output_toggleKbdProtocol_capability();
 
 # Locale Settings
 keyboardLocale => KeyboardLocale_define;
--- a/Output/pjrcUSB/output_com.c	Mon May 23 17:19:21 2016 -0700
+++ b/Output/pjrcUSB/output_com.c	Thu May 26 11:13:35 2016 -0700
@@ -218,6 +218,28 @@
 }
 
 
+// Toggle Keyboard Protocol
+void Output_toggleKbdProtocol_capability( uint8_t state, uint8_t stateType, uint8_t *args )
+{
+	// Display capability name
+	if ( stateType == 0xFF && state == 0xFF )
+	{
+		print("Output_toggleKbdProtocol()");
+		return;
+	}
+
+	// Only toggle protocol if release state
+	if ( stateType == 0x00 && state == 0x03 )
+	{
+		// Flush the key buffers
+		Output_flushBuffers();
+
+		// Toggle the keyboard protocol Mode
+		USBKeys_Protocol = !USBKeys_Protocol;
+	}
+}
+
+
 // Sends a Consumer Control code to the USB Output buffer
 void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args )
 {
--- a/Output/usbMuxUart/output_com.c	Mon May 23 17:19:21 2016 -0700
+++ b/Output/usbMuxUart/output_com.c	Thu May 26 11:13:35 2016 -0700
@@ -222,6 +222,28 @@
 }
 
 
+// Toggle Keyboard Protocol
+void Output_toggleKbdProtocol_capability( uint8_t state, uint8_t stateType, uint8_t *args )
+{
+	// Display capability name
+	if ( stateType == 0xFF && state == 0xFF )
+	{
+		print("Output_toggleKbdProtocol()");
+		return;
+	}
+
+	// Only toggle protocol if release state
+	if ( stateType == 0x00 && state == 0x03 )
+	{
+		// Flush the key buffers
+		Output_flushBuffers();
+
+		// Toggle the keyboard protocol Mode
+		USBKeys_Protocol = !USBKeys_Protocol;
+	}
+}
+
+
 // Sends a Consumer Control code to the USB Output buffer
 void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args )
 {