]> git.donarmstrong.com Git - kiibohd-controller.git/blobdiff - Macro/PartialMap/macro.c
Initial MatrixARM implementation
[kiibohd-controller.git] / Macro / PartialMap / macro.c
index 9f22b1b0234c6d207385af924b1c0eeb0eb069a5..50cee843c0e5eb0844143a1f8bab87861c84b958 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,15 @@ void Macro_evalTriggerMacro( TriggerMacro *triggerMacro )
 }
 
 
-
-
-/*
-inline void Macro_bufferAdd( uint8_t byte )
-{
-       // 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;
-       }
-}
-
-inline void Macro_bufferRemove( uint8_t byte )
+// Evaluate/Update ResultMacro
+void Macro_evalResultMacro( ResultMacro *resultMacro )
 {
-       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 );
+       // TODO
 }
-*/
 
-inline void Macro_finishWithUSBBuffer( uint8_t sentKeys )
-{
-}
 
+// 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 +276,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];
 
@@ -382,8 +342,9 @@ inline void Macro_process()
        }
        */
 
-       // Signal buffer that we've used it
-       Scan_finishedWithBuffer( KeyIndex_BufferUsed );
+       // Signal buffer that we've used it TODO
+       Scan_finishedWithMacro( 0 );
+       //Scan_finishedWithBuffer( KeyIndex_BufferUsed );
 
        // If Macro debug mode is set, clear the USB Buffer
        if ( macroDebugMode )
@@ -393,6 +354,7 @@ inline void Macro_process()
        }
 }
 
+
 inline void Macro_setup()
 {
        // Register Macro CLI dictionary