]> git.donarmstrong.com Git - kiibohd-controller.git/commitdiff
Macro cleanup.
authorJacob Alexander <haata@kiibohd.com>
Mon, 28 Jul 2014 06:15:41 +0000 (23:15 -0700)
committerJacob Alexander <haata@kiibohd.com>
Mon, 28 Jul 2014 06:15:41 +0000 (23:15 -0700)
- Preparation for KLL support

Macro/PartialMap/macro.c

index 9f22b1b0234c6d207385af924b1c0eeb0eb069a5..02caa9796a9dff93b5235d5511ec89b6812dff58 100644 (file)
@@ -198,7 +198,7 @@ inline void Macro_ledState( uint8_t ledCode, uint8_t state )
 }
 
 
-// Evaluate/Update the TriggerMacro
+// Evaluate/Update TriggerMacro
 void Macro_evalTriggerMacro( TriggerMacro *triggerMacro )
 {
        // Which combo in the sequence is being evaluated
@@ -208,7 +208,7 @@ void Macro_evalTriggerMacro( TriggerMacro *triggerMacro )
        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 @@ void Macro_evalTriggerMacro( TriggerMacro *triggerMacro )
 }
 
 
-
-
-/*
-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 @@ inline void Macro_process()
                // 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_process()
        }
 }
 
+
 inline void Macro_setup()
 {
        // Register Macro CLI dictionary