Adding initial work for SimpleMap style macros

- Differentiating between simple and complex macros
- Worst case requires more flash
- Best case will use a lot less RAM
- Requires update to kll compiler
This commit is contained in:
Jacob Alexander 2015-02-09 22:18:01 -08:00
parent d63886954c
commit b4c1951b0d
4 changed files with 71 additions and 55 deletions

View file

@ -26,7 +26,7 @@
#include <scan_loop.h>
// Keymaps
#include "usb_hid.h"
#include <usb_hid.h>
#include <generatedKeymap.h> // Generated using kll at compile time, in build directory
// Local Includes
@ -485,13 +485,13 @@ inline void Macro_appendResultMacroToPendingList( const TriggerMacro *triggerMac
{
if ( macroTriggerListBuffer[ keyIndex ].scanCode == scanCode )
{
ResultMacroRecordList[ resultMacroIndex ].state = macroTriggerListBuffer[ keyIndex ].state;
ResultMacroRecordList[ resultMacroIndex ].stateType = macroTriggerListBuffer[ keyIndex ].type;
ResultMacroList[ resultMacroIndex ].record->state = macroTriggerListBuffer[ keyIndex ].state;
ResultMacroList[ resultMacroIndex ].record->stateType = macroTriggerListBuffer[ keyIndex ].type;
}
}
// Reset the macro position
ResultMacroRecordList[ resultMacroIndex ].pos = 0;
ResultMacroList[ resultMacroIndex ].record->pos = 0;
}
@ -644,7 +644,7 @@ TriggerMacroEval Macro_evalTriggerMacro( var_uint_t triggerMacroIndex )
{
// Lookup TriggerMacro
const TriggerMacro *macro = &TriggerMacroList[ triggerMacroIndex ];
TriggerMacroRecord *record = &TriggerMacroRecordList[ triggerMacroIndex ];
TriggerMacroRecord *record = TriggerMacroList[ triggerMacroIndex ].record;
// Check if macro has finished and should be incremented sequence elements
if ( record->state == TriggerMacro_Release )
@ -797,7 +797,7 @@ inline ResultMacroEval Macro_evalResultMacro( var_uint_t resultMacroIndex )
{
// Lookup ResultMacro
const ResultMacro *macro = &ResultMacroList[ resultMacroIndex ];
ResultMacroRecord *record = &ResultMacroRecordList[ resultMacroIndex ];
ResultMacroRecord *record = ResultMacroList[ resultMacroIndex ].record;
// Current Macro position
var_uint_t pos = record->pos;
@ -889,8 +889,8 @@ inline void Macro_updateTriggerMacroPendingList()
macroTriggerMacroPendingList[ macroTriggerMacroPendingListSize++ ] = triggerMacroIndex;
// Reset macro position
TriggerMacroRecordList[ triggerMacroIndex ].pos = 0;
TriggerMacroRecordList[ triggerMacroIndex ].state = TriggerMacro_Waiting;
TriggerMacroList[ triggerMacroIndex ].record->pos = 0;
TriggerMacroList[ triggerMacroIndex ].record->state = TriggerMacro_Waiting;
}
}
}
@ -1011,16 +1011,16 @@ inline void Macro_setup()
// Initialize TriggerMacro states
for ( var_uint_t macro = 0; macro < TriggerMacroNum; macro++ )
{
TriggerMacroRecordList[ macro ].pos = 0;
TriggerMacroRecordList[ macro ].state = TriggerMacro_Waiting;
TriggerMacroList[ macro ].record->pos = 0;
TriggerMacroList[ macro ].record->state = TriggerMacro_Waiting;
}
// Initialize ResultMacro states
for ( var_uint_t macro = 0; macro < ResultMacroNum; macro++ )
{
ResultMacroRecordList[ macro ].pos = 0;
ResultMacroRecordList[ macro ].state = 0;
ResultMacroRecordList[ macro ].stateType = 0;
ResultMacroList[ macro ].record->pos = 0;
ResultMacroList[ macro ].record->state = 0;
ResultMacroList[ macro ].record->stateType = 0;
}
}
@ -1358,7 +1358,7 @@ void macroDebugShowTrigger( var_uint_t index )
// Trigger Macro Show
const TriggerMacro *macro = &TriggerMacroList[ index ];
TriggerMacroRecord *record = &TriggerMacroRecordList[ index ];
TriggerMacroRecord *record = TriggerMacroList[ index ].record;
print( NL );
info_msg("Trigger Macro Index: ");
@ -1430,7 +1430,7 @@ void macroDebugShowResult( var_uint_t index )
// Trigger Macro Show
const ResultMacro *macro = &ResultMacroList[ index ];
ResultMacroRecord *record = &ResultMacroRecordList[ index ];
ResultMacroRecord *record = ResultMacroList[ index ].record;
print( NL );
info_msg("Result Macro Index: ");