Mercurial > louis > kiibohd-controller
diff Output/usbMuxUart/output_com.c @ 300:7119c2149abb
Fixing compiler errors for usbMuxUart Output module
- Removing (currently) redundant usbMuxUart capabilities.kll file
- Issues were due to the recent AddModule cmake function addition
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Fri, 06 Mar 2015 23:37:09 -0800 |
parents | d5bf41d7f7ef |
children | 4f47971c45c2 |
line wrap: on
line diff
--- a/Output/usbMuxUart/output_com.c Fri Mar 06 22:18:15 2015 -0800 +++ b/Output/usbMuxUart/output_com.c Fri Mar 06 23:37:09 2015 -0800 @@ -33,10 +33,10 @@ // 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 @@ // 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 @@ // ----- 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() {