diff Macro/PartialMap/macro.c @ 185:68f3dc0cddd0

Macro cleanup. - Preparation for KLL support
author Jacob Alexander <haata@kiibohd.com>
date Sun, 27 Jul 2014 23:15:41 -0700
parents f9ef267ccc8b
children 50702debf278
line wrap: on
line diff
--- a/Macro/PartialMap/macro.c	Sat Jul 26 14:06:19 2014 -0700
+++ b/Macro/PartialMap/macro.c	Sun Jul 27 23:15:41 2014 -0700
@@ -198,7 +198,7 @@
 }
 
 
-// Evaluate/Update the TriggerMacro
+// Evaluate/Update TriggerMacro
 void Macro_evalTriggerMacro( TriggerMacro *triggerMacro )
 {
 	// Which combo in the sequence is being evaluated
@@ -208,7 +208,7 @@
 	uint8_t comboLength = triggerMacro->guide[ comboPos ];
 
 	// Iterate over list of keys currently pressed
-	for ( uint8_t keyPressed = 0; keyPressed < macroTriggerListBufferSize; keyPressed += 2 )
+	for ( uint8_t keyPressed = 0; keyPressed < macroTriggerListBufferSize; keyPressed++ )
 	{
 		// Compare with keys in combo
 		for ( unsigned int comboKey = 0; comboKey < comboLength; comboKey++ )
@@ -241,59 +241,22 @@
 }
 
 
-
-
-/*
-inline void Macro_bufferAdd( uint8_t byte )
+// Evaluate/Update ResultMacro
+void Macro_evalResultMacro( ResultMacro *resultMacro )
 {
-	// Make sure we haven't overflowed the key buffer
-	// Default function for adding keys to the KeyIndex_Buffer, does a DefaultMap_Lookup
-	if ( KeyIndex_BufferUsed < KEYBOARD_BUFFER )
-	{
-		uint8_t key = DefaultMap_Lookup[byte];
-		for ( uint8_t c = 0; c < KeyIndex_BufferUsed; c++ )
-		{
-			// Key already in the buffer
-			if ( KeyIndex_Buffer[c] == key )
-				return;
-		}
-
-		// Add to the buffer
-		KeyIndex_Buffer[KeyIndex_BufferUsed++] = key;
-	}
+	// TODO
 }
 
-inline void Macro_bufferRemove( uint8_t byte )
-{
-	uint8_t key = DefaultMap_Lookup[byte];
 
-	// Check for the released key, and shift the other keys lower on the buffer
-	for ( uint8_t c = 0; c < KeyIndex_BufferUsed; c++ )
-	{
-		// Key to release found
-		if ( KeyIndex_Buffer[c] == key )
-		{
-			// Shift keys from c position
-			for ( uint8_t k = c; k < KeyIndex_BufferUsed - 1; k++ )
-				KeyIndex_Buffer[k] = KeyIndex_Buffer[k + 1];
-
-			// Decrement Buffer
-			KeyIndex_BufferUsed--;
-
-			return;
-		}
-	}
-
-	// Error case (no key to release)
-	erro_msg("Could not find key to release: ");
-	printHex( key );
-}
-*/
-
+// Called immediately after USB has finished sending a buffer
 inline void Macro_finishWithUSBBuffer( uint8_t sentKeys )
 {
+	// XXX Currently not used to trigger anything (with this particular Macro module)
 }
 
+
+// Macro Procesing Loop
+// Called once per USB buffer send
 inline void Macro_process()
 {
 	// Only do one round of macro processing between Output Module timer sends
@@ -320,6 +283,10 @@
 		// Lookup trigger list for this key
 		unsigned int *triggerList = Macro_layerLookup( scanCode );
 
+		// Skip, if no trigger list
+		if ( triggerList == 0 )
+			continue;
+
 		// The first element is the length of the trigger list
 		unsigned int triggerListSize = triggerList[0];
 
@@ -393,6 +360,7 @@
 	}
 }
 
+
 inline void Macro_setup()
 {
 	// Register Macro CLI dictionary