}
-// Evaluate/Update the TriggerMacro
+// Evaluate/Update TriggerMacro
void Macro_evalTriggerMacro( TriggerMacro *triggerMacro )
{
// Which combo in the sequence is being evaluated
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++ )
}
-
-
-/*
-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
// 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];
}
*/
- // 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 )
}
}
+
inline void Macro_setup()
{
// Register Macro CLI dictionary