]> git.donarmstrong.com Git - kiibohd-controller.git/commitdiff
Fixing compiler errors for usbMuxUart Output module
authorJacob Alexander <haata@kiibohd.com>
Sat, 7 Mar 2015 07:37:09 +0000 (23:37 -0800)
committerJacob Alexander <haata@kiibohd.com>
Sat, 7 Mar 2015 07:37:09 +0000 (23:37 -0800)
- Removing (currently) redundant usbMuxUart capabilities.kll file
- Issues were due to the recent AddModule cmake function addition

Output/usbMuxUart/capabilities.kll [deleted file]
Output/usbMuxUart/output_com.c
Output/usbMuxUart/output_com.h
Output/usbMuxUart/setup.cmake

diff --git a/Output/usbMuxUart/capabilities.kll b/Output/usbMuxUart/capabilities.kll
deleted file mode 100644 (file)
index 8cfdc03..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-Name = usbMuxUartCapabilities;
-Version = 0.1;
-Author = "HaaTa (Jacob Alexander) 2014";
-KLL = 0.3;
-
-# Modified Date
-Date = 2014-09-28;
-
-
-# Capabilties available to the usbMuxUart output module
-consCtrlOut => Output_consCtrlSend_capability( consCode : 2 );
-sysCtrlOut  => Output_sysCtrlSend_capability( sysCode : 1 );
-usbKeyOut   => Output_usbCodeSend_capability( usbCode : 1 );
-
index 5c883e7e982213199868751fdd155a718adb42cb..d33d7e0a64daddb2a5600805de041902f309e128 100644 (file)
 // USB Includes
 #if defined(_at90usb162_) || defined(_atmega32u4_) || defined(_at90usb646_) || defined(_at90usb1286_)
 #elif defined(_mk20dx128_) || defined(_mk20dx128vlf5_) || defined(_mk20dx256_) || defined(_mk20dx256vlh7_)
-#include <uartOut/arm/uart_serial.h>
-#include <pjrcUSB/arm/usb_dev.h>
-#include <pjrcUSB/arm/usb_keyboard.h>
-#include <pjrcUSB/arm/usb_serial.h>
+#include <arm/uart_serial.h>
+#include <arm/usb_dev.h>
+#include <arm/usb_keyboard.h>
+#include <arm/usb_serial.h>
 #endif
 
 // Local Includes
@@ -135,10 +135,69 @@ USBKeyChangeState USBKeys_Changed = USBKeyChangeState_None;
 // 0 is often used to show that a USB cable is not plugged in (but has power)
          uint8_t  Output_Available = 0;
 
+// Debug control variable for Output modules
+// 0 - Debug disabled (default)
+// 1 - Debug enabled
+         uint8_t  Output_DebugMode = 0;
+
 
 
 // ----- Capabilities -----
 
+// Set Boot Keyboard Protocol
+void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args )
+{
+       // Display capability name
+       if ( stateType == 0xFF && state == 0xFF )
+       {
+               print("Output_kbdProtocolBoot()");
+               return;
+       }
+
+       // Only set if necessary
+       if ( USBKeys_Protocol == 0 )
+               return;
+
+       // TODO Analog inputs
+       // Only set on key press
+       if ( stateType != 0x01 )
+               return;
+
+       // Flush the key buffers
+       Output_flushBuffers();
+
+       // Set the keyboard protocol to Boot Mode
+       USBKeys_Protocol = 0;
+}
+
+
+// Set NKRO Keyboard Protocol
+void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args )
+{
+       // Display capability name
+       if ( stateType == 0xFF && state == 0xFF )
+       {
+               print("Output_kbdProtocolNKRO()");
+               return;
+       }
+
+       // Only set if necessary
+       if ( USBKeys_Protocol == 1 )
+               return;
+
+       // TODO Analog inputs
+       // Only set on key press
+       if ( stateType != 0x01 )
+               return;
+
+       // Flush the key buffers
+       Output_flushBuffers();
+
+       // Set the keyboard protocol to NKRO Mode
+       USBKeys_Protocol = 1;
+}
+
+
 // Sends a Consumer Control code to the USB Output buffer
 void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args )
 {
@@ -374,6 +433,20 @@ void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *a
 
 // ----- Functions -----
 
+// Flush Key buffers
+void Output_flushBuffers()
+{
+       // Zero out USBKeys_Keys array
+       for ( uint8_t c = 0; c < USB_NKRO_BITFIELD_SIZE_KEYS; c++ )
+               USBKeys_Keys[ c ] = 0;
+
+       // Zero out other key buffers
+       USBKeys_ConsCtrl = 0;
+       USBKeys_Modifiers = 0;
+       USBKeys_SysCtrl = 0;
+}
+
+
 // USB Module Setup
 inline void Output_setup()
 {
index b041ea738482f3d0c1f6d0d5fea075b2ec997f07..e73fd09c7fd1df82e7227380594d26d925e61d89 100644 (file)
@@ -80,6 +80,8 @@ extern USBKeyChangeState USBKeys_Changed;
 
 extern          uint8_t  Output_Available; // 0 - Output module not fully functional, 1 - Output module working
 
+extern          uint8_t  Output_DebugMode; // 0 - Debug disabled, 1 - Debug enabled
+
 
 
 // ----- Capabilities -----
@@ -88,6 +90,10 @@ void Output_consCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *
 void Output_sysCtrlSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
 void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *args );
 
+// Configuration capabilities
+void Output_kbdProtocolBoot_capability( uint8_t state, uint8_t stateType, uint8_t *args );
+void Output_kbdProtocolNKRO_capability( uint8_t state, uint8_t stateType, uint8_t *args );
+
 
 
 // ----- Functions -----
@@ -95,6 +101,8 @@ void Output_usbCodeSend_capability( uint8_t state, uint8_t stateType, uint8_t *a
 void Output_setup();
 void Output_send();
 
+void Output_flushBuffers();
+
 void Output_firmwareReload();
 void Output_softReset();
 
index 32dfeccba5e43352b7ec55f1fbb47a8c08b96655..bd078936b24f13f012111f4920f74dacd4326d35 100644 (file)
@@ -23,6 +23,12 @@ set( Module_SRCS
        output_com.c
 )
 
+# Remove duplicate output_com.c files from pjrcUSB and uartOut
+list ( REMOVE_ITEM Output_SRCS
+       Output/pjrcUSB/output_com.c
+       Output/uartOut/output_com.c
+)
+
 
 ###
 # Compiler Family Compatibility