]> git.donarmstrong.com Git - kiibohd-controller.git/commitdiff
Adding toggleKbdProtocol capability
authorJosé Luis Salvador Rufo <salvador.joseluis@gmail.com>
Thu, 26 May 2016 11:06:12 +0000 (13:06 +0200)
committerJosé Luis Salvador Rufo <salvador.joseluis@gmail.com>
Thu, 26 May 2016 11:06:12 +0000 (13:06 +0200)
Output/pjrcUSB/capabilities.kll
Output/pjrcUSB/output_com.c
Output/usbMuxUart/output_com.c

index c83f910ae65337e77ab7033839c701ae8b895624..94a6c206cb041aef99cfa4b74ffcd041deece1c1 100644 (file)
@@ -17,6 +17,7 @@ mouseOut    => Output_usbMouse_capability( mouseCode : 2, relative_x : 2, relati
 # Configuration capabilities
 kbdProtocolBoot => Output_kbdProtocolBoot_capability();
 kbdProtocolNKRO => Output_kbdProtocolNKRO_capability();
+toggleKbdProtocol => Output_toggleKbdProtocol_capability();
 
 # Locale Settings
 keyboardLocale => KeyboardLocale_define;
index 082c42bc0b47722b6d509dee7222053c19db4206..6a9e64d6578bba87c4be32f8b850614300d31228 100644 (file)
@@ -218,6 +218,28 @@ void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_
 }
 
 
+// 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 )
 {
index 00fbff68bc3160fecd008f9dc5c7a0105af489b3..1d41a9b5c17bed0bd91cb7052334b441fa8125c2 100644 (file)
@@ -222,6 +222,28 @@ void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_
 }
 
 
+// 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 )
 {