]> git.donarmstrong.com Git - kiibohd-kll.git/commitdiff
Fixed layer generation to only build trigger lists from the given layer.
authorJacob Alexander <haata@kiibohd.com>
Tue, 9 Sep 2014 06:51:44 +0000 (23:51 -0700)
committerJacob Alexander <haata@kiibohd.com>
Tue, 9 Sep 2014 06:51:44 +0000 (23:51 -0700)
- Required more complex correlation to get the layer ownership right for each trigger macro from the global list

kll_lib/containers.py

index 5bf9e70c9c771c78408aff146aa41c306b4f67aa..a6c205ad96a6997b549fbc0e67b89a2734e009a2 100644 (file)
@@ -200,24 +200,31 @@ class Macros:
                        self.triggerList.append( [ [] ] * 0xFF )
                        self.maxScanCode.append( 0x00 )
 
-                       # Iterate through triggersIndex to locate necessary ScanCodes and corresponding triggerIndex
-                       for triggerItem in self.triggersIndex.keys():
-                               # Iterate over the trigger portion of the triggerItem (other part is the index)
-                               for sequence in triggerItem[ 0 ]:
-                                       for combo in sequence:
-                                               # Append triggerIndex for each found scanCode of the Trigger List
-                                               # Do not re-add if triggerIndex is already in the Trigger List
-                                               if not triggerItem[1] in self.triggerList[ layer ][ combo ]:
-                                                       # Append is working strangely with list pre-initialization
-                                                       # Doing a 0 check replacement instead -HaaTa
-                                                       if len( self.triggerList[ layer ][ combo ] ) == 0:
-                                                               self.triggerList[ layer ][ combo ] = [ triggerItem[ 1 ] ]
-                                                       else:
-                                                               self.triggerList[ layer ][ combo ].append( triggerItem[1] )
-
-                                               # Look for max Scan Code
-                                               if combo > self.maxScanCode[ layer ]:
-                                                       self.maxScanCode[ layer ] = combo
+                       # Iterate through trigger macros to locate necessary ScanCodes and corresponding triggerIndex
+                       for trigger in self.macros[ layer ].keys():
+                               for variant in range( 0, len( self.macros[ layer ][ trigger ] ) ):
+                                       # Identify result index
+                                       resultIndex = self.resultsIndex[ self.macros[ layer ][ trigger ][ variant ] ]
+
+                                       # Identify trigger index
+                                       triggerIndex = self.triggersIndex[ tuple( [ trigger, resultIndex ] ) ]
+
+                                       # Iterate over the trigger to locate the ScanCodes
+                                       for sequence in trigger:
+                                               for combo in sequence:
+                                                       # Append triggerIndex for each found scanCode of the Trigger List
+                                                       # Do not re-add if triggerIndex is already in the Trigger List
+                                                       if not triggerIndex in self.triggerList[ layer ][ combo ]:
+                                                               # Append is working strangely with list pre-initialization
+                                                               # Doing a 0 check replacement instead -HaaTa
+                                                               if len( self.triggerList[ layer ][ combo ] ) == 0:
+                                                                       self.triggerList[ layer ][ combo ] = [ triggerIndex ]
+                                                               else:
+                                                                       self.triggerList[ layer ][ combo ].append( triggerIndex )
+
+                                                       # Look for max Scan Code
+                                                       if combo > self.maxScanCode[ layer ]:
+                                                               self.maxScanCode[ layer ] = combo
 
                        # Shrink triggerList to actual max size
                        self.triggerList[ layer ] = self.triggerList[ layer ][ : self.maxScanCode[ layer ] + 1 ]