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