Mercurial > louis > kiibohd-controller
diff Macro/PartialMap/macro.c @ 362:e4be15c39cce
Adding initial WhiteFox support.
- Includes fix for over-range ScanCodes (would cause hard faults)
- Updated some documentation
- Requires recent kll compiler for the layout
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Sun, 16 Aug 2015 12:27:12 -0700 |
parents | 7c6ac7b88cda |
children | 5aa3f6a92682 |
line wrap: on
line diff
--- a/Macro/PartialMap/macro.c Sat Aug 15 21:53:59 2015 -0700 +++ b/Macro/PartialMap/macro.c Sun Aug 16 12:27:12 2015 -0700 @@ -456,7 +456,7 @@ case 0x03: break; default: - erro_print("Invalid key state"); + erro_msg("Invalid key state - "); error = 1; break; } @@ -464,11 +464,18 @@ // Invalid TriggerGuide type default: - erro_print("Invalid type"); + erro_msg("Invalid type - "); error = 1; break; } + // Check if ScanCode is out of range + if ( scanCode > MaxScanCode ) + { + warn_msg("ScanCode is out of range/not defined - "); + error = 1; + } + // Display TriggerGuide if ( error ) { @@ -529,6 +536,15 @@ case 0x01: // Pressed case 0x02: // Held case 0x03: // Released + // Check if ScanCode is out of range + if ( scanCode > MaxScanCode ) + { + warn_msg("ScanCode is out of range/not defined: "); + printHex( scanCode ); + print( NL ); + return; + } + macroTriggerListBuffer[ macroTriggerListBufferSize ].scanCode = scanCode; macroTriggerListBuffer[ macroTriggerListBufferSize ].state = state; macroTriggerListBuffer[ macroTriggerListBufferSize ].type = 0x00; // Normal key @@ -549,6 +565,15 @@ // TODO Handle change for interconnect if ( state != 0x00 ) { + // Check if ScanCode is out of range + if ( scanCode > MaxScanCode ) + { + warn_msg("ScanCode is out of range/not defined: "); + printHex( scanCode ); + print( NL ); + return; + } + macroTriggerListBuffer[ macroTriggerListBufferSize ].scanCode = scanCode; macroTriggerListBuffer[ macroTriggerListBufferSize ].state = state; macroTriggerListBuffer[ macroTriggerListBufferSize ].type = 0x02; // Analog key @@ -567,6 +592,9 @@ // TODO Handle change for interconnect if ( state != 0x00 ) { + // Check if LedCode is out of range + // TODO + macroTriggerListBuffer[ macroTriggerListBufferSize ].scanCode = ledCode; macroTriggerListBuffer[ macroTriggerListBufferSize ].state = state; macroTriggerListBuffer[ macroTriggerListBufferSize ].type = 0x01; // LED key