# HG changeset patch # User Jacob Alexander # Date 1323244196 28800 # Node ID f7e1c9883d50dc9809782d3fc59155d96580e623 # Parent 7f65034538eac1d991eb6888e42ca6c7a10073a6 Small macro update for debugging the Sony NEWS diff -r 7f65034538ea -r f7e1c9883d50 CMakeLists.txt --- a/CMakeLists.txt Sun Dec 04 19:55:32 2011 -0800 +++ b/CMakeLists.txt Tue Dec 06 23:49:56 2011 -0800 @@ -64,7 +64,8 @@ #| "atmega32u4" # Teensy 2.0 #| "at90usb646" # Teensy++ 1.0 #| "at90usb1286" # Teensy++ 2.0 -set( MCU "at90usb1286" ) +set( MCU "atmega32u4" ) +#set( MCU "at90usb1286" ) #| Compiler flag to set the C Standard level. diff -r 7f65034538ea -r f7e1c9883d50 Macro/buffer/macro.c --- a/Macro/buffer/macro.c Sun Dec 04 19:55:32 2011 -0800 +++ b/Macro/buffer/macro.c Tue Dec 06 23:49:56 2011 -0800 @@ -174,6 +174,61 @@ } */ +// Scancode Macro Detection +int scancodeMacro( uint8_t scanCode ) +{ + /* + if ( scanCode == 0x7A ) + { + scan_resetKeyboard(); + } + else + { + scan_sendData( scanCode ); + _delay_ms( 200 ); + scan_sendData( 0x80 | scanCode ); + } + return 1; + */ + return 0; +} + +uint8_t sendCode = 0; + +// USBCode Macro Detection +int usbcodeMacro( uint8_t usbCode ) +{ + // Keyboard Input Test Macro + switch ( usbCode ) + { + case KEY_F1: + sendCode--; + scan_sendData( 0x90 ); + scan_sendData( sendCode ); + _delay_ms( 200 ); + break; + + case KEY_F2: + scan_sendData( 0x90 ); + scan_sendData( sendCode ); + _delay_ms( 200 ); + break; + + case KEY_F3: + sendCode++; + scan_sendData( 0x90 ); + scan_sendData( sendCode ); + _delay_ms( 200 ); + break; + + default: + return 0; + } + + return 1; +} + + // Given a list of keypresses, translate into the USB key codes // The buffer is cleared after running // If the buffer doesn't fit into the USB send array, the extra keys are dropped @@ -185,6 +240,16 @@ // Get the keycode from the buffer uint8_t key = KeyIndex_Buffer[index]; + // Check key for special usages using the scancode + // If non-zero return, ignore normal processing of the scancode + if ( scancodeMacro( key ) ) + continue; + + // Check key for special usages using the usbcode + // If non-zero return, ignore normal processing of the usbcode + if ( usbcodeMacro( map[key] ) ) + continue; + // Determine if the key is a modifier uint8_t modFound = 0; for ( uint8_t mod = 0; mod < numberOfModifiers; mod++ ) { diff -r 7f65034538ea -r f7e1c9883d50 Scan/SonyNEWS/scan_loop.c --- a/Scan/SonyNEWS/scan_loop.c Sun Dec 04 19:55:32 2011 -0800 +++ b/Scan/SonyNEWS/scan_loop.c Tue Dec 06 23:49:56 2011 -0800 @@ -177,6 +177,7 @@ dPrintStrs( tmpStr, " " ); // Process the scancode + if ( keyValue != 0x00 ) processKeyValue( keyValue ); sei(); // Re-enable Interrupts @@ -193,6 +194,11 @@ // 0x8C Acks the keyboard and gets 0x70 sent back (delayed) uint8_t scan_sendData( uint8_t dataPayload ) { + // Debug + char tmpStr[6]; + hexToStr( dataPayload, tmpStr ); + info_dPrint( tmpStr, " " ); + UDR1 = dataPayload; return 0; }