# HG changeset patch # User Jacob Alexander # Date 1462754945 25200 # Node ID a33c07208e166a2c23a8a3d03e3acc322ea6a8a3 # Parent 91f032304beb51a4679a5d82f69c701b8a5bbd86 Updating KLL to generate _KLL defines for upcoming firmware update - Compatible with earlier Kiibohd firmware diff -r 91f032304beb -r a33c07208e16 backends/kiibohd.py --- a/backends/kiibohd.py Sun May 08 17:16:41 2016 -0700 +++ b/backends/kiibohd.py Sun May 08 17:49:05 2016 -0700 @@ -1,9 +1,10 @@ #!/usr/bin/env python3 -# KLL Compiler - Kiibohd Backend -# -# Backend code generator for the Kiibohd Controller firmware. -# -# Copyright (C) 2014-2015 by Jacob Alexander +''' +KLL Compiler - Kiibohd Backend + +Backend code generator for the Kiibohd Controller firmware. +''' +# Copyright (C) 2014-2016 by Jacob Alexander # # This file is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -37,6 +38,11 @@ ### Classes ### class Backend( BackendBase ): + ''' + Kiibohd Code-Generation Backend + + Kiibohd specific code generation. + ''' # Default templates and output files templatePaths = ["templates/kiibohdKeymap.h", "templates/kiibohdDefs.h"] outputPaths = ["generatedKeymap.h", "kll_defs.h"] @@ -147,6 +153,9 @@ self.fill_dict['CapabilitiesList'] += "};" self.fill_dict['CapabilitiesIndices'] += "} CapabilityIndex;" + # Define for total number of capabilities + self.fill_dict['Defines'] += "\n#define CapabilitiesNum_KLL {0}".format( len( capabilities.keys() ) ) + ## Results Macros ## self.fill_dict['ResultMacros'] = "" @@ -217,13 +226,16 @@ for result in range( 0, len( macros.resultsIndexSorted ) ): self.fill_dict['ResultMacroList'] += "\tDefine_RM( {0} ),\n".format( result ) self.fill_dict['ResultMacroList'] += "};" - - results_count = len( macros.resultsIndexSorted ); + + results_count = len( macros.resultsIndexSorted ) ## Result Macro Record ## self.fill_dict['ResultMacroRecord'] = "ResultMacroRecord ResultMacroRecordList[ ResultMacroNum ];" + # Define for total number of Result Macros + self.fill_dict['Defines'] += "\n#define ResultMacroNum_KLL {0}".format( len( macros.resultsIndexSorted ) ) + ## Trigger Macros ## self.fill_dict['TriggerMacros'] = "" @@ -259,10 +271,9 @@ if stateWordSize == "8" and (triggers_count > 255 or results_count > 255): print ("{0} Over 255 trigger or result macros, changing stateWordSize from {1} to 16.".format( WARNING, stateWordSize ) ) print( "Results count: ", results_count ) - print( "Triggers count:", triggers_count ) + print( "Triggers count: ", triggers_count ) stateWordSize == "16" self.fill_dict['Defines'] = self.fill_dict['Defines'].replace("StateWordSize_define 8", "StateWordSize_define 16") - #print (self.fill_dict['Defines']) ## Trigger Macro List ## self.fill_dict['TriggerMacroList'] = "const TriggerMacro TriggerMacroList[] = {\n" @@ -277,6 +288,9 @@ ## Trigger Macro Record ## self.fill_dict['TriggerMacroRecord'] = "TriggerMacroRecord TriggerMacroRecordList[ TriggerMacroNum ];" + # Define for total number of Trigger Macros + self.fill_dict['Defines'] += "\n#define TriggerMacroNum_KLL {0}".format( len( macros.triggersIndexSorted ) ) + ## Max Scan Code ## self.fill_dict['MaxScanCode'] = "#define MaxScanCode 0x{0:X}".format( macros.overallMaxScanCode ) @@ -368,6 +382,9 @@ self.fill_dict['LayerIndexList'] += '\tLayer_IN( layer{0}_scanMap, "{0}: {2}", 0x{1:02X} ),\n'.format( layer, firstScanCode, stackName ) self.fill_dict['LayerIndexList'] += "};" + # Define for total number of Trigger Macros + self.fill_dict['Defines'] += "\n#define LayerNum_KLL {0}".format( len( macros.triggerList ) ) + ## Layer State ## self.fill_dict['LayerState'] = "uint8_t LayerState[ LayerNum ];" diff -r 91f032304beb -r a33c07208e16 templates/kiibohdDefs.h --- a/templates/kiibohdDefs.h Sun May 08 17:16:41 2016 -0700 +++ b/templates/kiibohdDefs.h Sun May 08 17:49:05 2016 -0700 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2015 by Jacob Alexander +/* Copyright (C) 2014-2016 by Jacob Alexander * * This file is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by diff -r 91f032304beb -r a33c07208e16 templates/kiibohdKeymap.h --- a/templates/kiibohdKeymap.h Sun May 08 17:16:41 2016 -0700 +++ b/templates/kiibohdKeymap.h Sun May 08 17:49:05 2016 -0700 @@ -1,4 +1,4 @@ -/* Copyright (C) 2014-2015 by Jacob Alexander +/* Copyright (C) 2014-2016 by Jacob Alexander * * This file is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by