X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=kll.py;h=accbca6cfcf1fad94003121cc3979d8b841db888;hb=99cd939f8a6d9f847c737776f2b45c081728d351;hp=b2ca7efcf43fb49781b93eb02d332eb48bcdd6fe;hpb=e1add027a74a6a3c7ff9150cb4f633e0c1dc7609;p=kiibohd-kll.git diff --git a/kll.py b/kll.py index b2ca7ef..accbca6 100755 --- a/kll.py +++ b/kll.py @@ -273,8 +273,7 @@ def make_seqString( token ): ( ":", 0x01 ), ( "^", -0x10 ), ( "_", -0x18 ), - ( "{}|", -0x1E ), - ( "~", -0x20 ), + ( "{}|~", -0x1E ), ( "@", -0x32 ), ( "?", -0x38 ), ) @@ -478,6 +477,15 @@ def hidCodeToCapability( items ): return items +# Convert tuple of tuples to list of lists +def listit( t ): + return list( map( listit, t ) ) if isinstance( t, ( list, tuple ) ) else t + +# Convert list of lists to tuple of tuples +def tupleit( t ): + return tuple( map( tupleit, t ) ) if isinstance( t, ( tuple, list ) ) else t + + ## Evaluation Rules def eval_scanCode( triggers, operator, results ): @@ -486,8 +494,26 @@ def eval_scanCode( triggers, operator, results ): 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 ) + # Lookup interconnect id (Current file scope) + # Default to 0 if not specified + if 'ConnectId' not in variables_dict.overallVariables.keys(): + id_num = 0 + else: + id_num = int( variables_dict.overallVariables['ConnectId'] ) + # Iterate over all combinations of triggers and results - for trigger in triggers: + for sequence in triggers: + # Convert tuple of tuples to list of lists so each element can be modified + trigger = listit( sequence ) + + # Create ScanCode entries for trigger + for seq_index, combo in enumerate( sequence ): + for com_index, scancode in enumerate( combo ): + trigger[ seq_index ][ com_index ] = macros_map.scanCodeStore.append( ScanCode( scancode, id_num ) ) + + # Convert back to a tuple of tuples + trigger = tupleit( trigger ) + for result in results: # Append Case if operator == ":+":