Mercurial > louis > kiibohd-controller
diff Output/pjrcUSB/output_com.c @ 309:4f47971c45c2
Merge remote-tracking branch 'upstream/master'
author | Rowan Decker <Smasher816@gmail.com> |
---|---|
date | Sun, 08 Mar 2015 20:17:39 -0700 |
parents | ab4515606277 9c04b0253707 |
children | a6bafeb5fecf |
line wrap: on
line diff
--- a/Output/pjrcUSB/output_com.c Sun Mar 08 18:40:01 2015 -0700 +++ b/Output/pjrcUSB/output_com.c Sun Mar 08 20:17:39 2015 -0700 @@ -61,6 +61,7 @@ // ----- Function Declarations ----- void cliFunc_kbdProtocol( char* args ); +void cliFunc_outputDebug( char* args ); void cliFunc_readLEDs ( char* args ); void cliFunc_sendKeys ( char* args ); void cliFunc_setKeys ( char* args ); @@ -72,6 +73,7 @@ // Output Module command dictionary CLIDict_Entry( kbdProtocol, "Keyboard Protocol Mode: 0 - Boot, 1 - OS/NKRO Mode" ); +CLIDict_Entry( outputDebug, "Toggle Output Debug mode." ); CLIDict_Entry( readLEDs, "Read LED byte:" NL "\t\t1 NumLck, 2 CapsLck, 4 ScrlLck, 16 Kana, etc." ); CLIDict_Entry( sendKeys, "Send the prepared list of USB codes and modifier byte." ); CLIDict_Entry( setKeys, "Prepare a space separated list of USB codes (decimal). Waits until \033[35msendKeys\033[0m." ); @@ -79,6 +81,7 @@ CLIDict_Def( outputCLIDict, "USB Module Commands" ) = { CLIDict_Item( kbdProtocol ), + CLIDict_Item( outputDebug ), CLIDict_Item( readLEDs ), CLIDict_Item( sendKeys ), CLIDict_Item( setKeys ), @@ -129,6 +132,11 @@ // 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 ----- @@ -211,7 +219,10 @@ // Only send keypresses if press or hold state if ( stateType == 0x00 && state == 0x03 ) // Release state + { + USBKeys_ConsCtrl = 0; return; + } // Set consumer control code USBKeys_ConsCtrl = *(uint16_t*)(&args[0]); @@ -242,7 +253,10 @@ // Only send keypresses if press or hold state if ( stateType == 0x00 && state == 0x03 ) // Release state + { + USBKeys_SysCtrl = 0; return; + } // Set system control code USBKeys_SysCtrl = args[0]; @@ -584,6 +598,24 @@ } +void cliFunc_outputDebug( char* args ) +{ + // Parse number from argument + // NOTE: Only first argument is used + char* arg1Ptr; + char* arg2Ptr; + CLI_argumentIsolation( args, &arg1Ptr, &arg2Ptr ); + + // Default to 1 if no argument is given + Output_DebugMode = 1; + + if ( arg1Ptr[0] != '\0' ) + { + Output_DebugMode = (uint16_t)numToInt( arg1Ptr ); + } +} + + void cliFunc_readLEDs( char* args ) { print( NL );