Mercurial > louis > kiibohd-kll
changeset 8:a2598221d010
Fixed layer generation to only build trigger lists from the given layer.
- Required more complex correlation to get the layer ownership right for each trigger macro from the global list
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Mon, 08 Sep 2014 23:51:44 -0700 |
parents | 8104b5dd54c4 |
children | 53940964a8e7 |
files | kll_lib/containers.py |
diffstat | 1 files changed, 24 insertions(+), 17 deletions(-) [+] |
line wrap: on
line diff
--- a/kll_lib/containers.py Sun Sep 07 23:22:07 2014 -0700 +++ b/kll_lib/containers.py Mon Sep 08 23:51:44 2014 -0700 @@ -200,24 +200,31 @@ 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] ) + # 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 ] ) ] - # Look for max Scan Code - if combo > self.maxScanCode[ layer ]: - self.maxScanCode[ layer ] = combo + # 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 ]