- # Add to the base usbCode map, overwrite if already defined
- if usbCode_map[ trigger ] != None:
- print ( "USBCodeMap - Replacing '{0}' with '{1}' -> {2}".format( usbCode_map[ trigger ], result, trigger ) )
- usbCode_map[ trigger ] = result
- print ( trigger )
+def eval_scanCode( triggers, operator, results ):
+ # Convert to lists of lists of lists to tuples of tuples of tuples
+ # Tuples are non-mutable, and can be used has index items
+ triggers = tuple( tuple( tuple( sequence ) for sequence in variant ) for variant in triggers )
+ results = tuple( tuple( tuple( sequence ) for sequence in variant ) for variant in results )
+
+ # Iterate over all combinations of triggers and results
+ for trigger in triggers:
+ for result in results:
+ # Append Case
+ if operator == ":+":
+ macros_map.appendScanCode( trigger, result )
+
+ # Remove Case
+ elif operator == ":-":
+ macros_map.removeScanCode( trigger, result )
+
+ # Replace Case
+ elif operator == ":":
+ macros_map.replaceScanCode( trigger, result )
+
+def eval_usbCode( triggers, operator, results ):
+ # Convert to lists of lists of lists to tuples of tuples of tuples
+ # Tuples are non-mutable, and can be used has index items
+ triggers = tuple( tuple( tuple( sequence ) for sequence in variant ) for variant in triggers )
+ results = tuple( tuple( tuple( sequence ) for sequence in variant ) for variant in results )
+
+ # Iterate over all combinations of triggers and results
+ for trigger in triggers:
+ scanCodes = macros_map.lookupUSBCodes( trigger )
+ for scanCode in scanCodes:
+ for result in results:
+ # Cache assignment until file finishes processing
+ macros_map.cacheAssignment( operator, scanCode, result )