- # 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 )
+ # Replace Case
+ elif operator == ":":
+ macros_map.replaceScanCode( trigger, result )
+
+ print ( triggers )
+ print ( results )
+
+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:
+ # Append Case
+ if operator == ":+":
+ macros_map.appendScanCode( scanCode, result )
+
+ # Remove Case
+ elif operator == ":-":
+ macros_map.removeScanCode( scanCode, result )
+
+ # Replace Case
+ elif operator == ":":
+ macros_map.replaceScanCode( scanCode, result )
+
+ #print ( triggers )
+ print ( results )