diff --git a/Lib/CMake/kll.cmake b/Lib/CMake/kll.cmake index 8693f06..92205c0 100644 --- a/Lib/CMake/kll.cmake +++ b/Lib/CMake/kll.cmake @@ -114,13 +114,15 @@ endforeach () # #| KLL Options -set ( kll_backend -b kiibohd ) -set ( kll_template -t ${PROJECT_SOURCE_DIR}/kll/templates/kiibohdKeymap.h ) +set ( kll_backend -b kiibohd ) +set ( kll_template -t ${PROJECT_SOURCE_DIR}/kll/templates/kiibohdKeymap.h ) set ( kll_outputname generatedKeymap.h ) -set ( kll_output -o ${kll_outputname} ) +set ( kll_output -o ${kll_outputname} ) +set ( kll_define_output --defines-output kll_defs.h ) +set ( kll_define_template --defines-template ${PROJECT_SOURCE_DIR}/kll/templates/kiibohdDefs.h ) #| KLL Cmd -set ( kll_cmd ${PROJECT_SOURCE_DIR}/kll/kll.py ${BaseMap_Args} ${DefaultMap_Args} ${PartialMap_Args} ${kll_backend} ${kll_template} ${kll_output} ) +set ( kll_cmd ${PROJECT_SOURCE_DIR}/kll/kll.py ${BaseMap_Args} ${DefaultMap_Args} ${PartialMap_Args} ${kll_backend} ${kll_template} ${kll_output} ${kll_define_template} ${kll_define_output} ) add_custom_command ( OUTPUT ${kll_outputname} COMMAND ${kll_cmd} DEPENDS ${KLL_DEPENDS} diff --git a/Macro/PartialMap/capabilities.kll b/Macro/PartialMap/capabilities.kll index e039b6c..4572c05 100644 --- a/Macro/PartialMap/capabilities.kll +++ b/Macro/PartialMap/capabilities.kll @@ -1,10 +1,10 @@ Name = PartialMapCapabilities; Version = 0.1; Author = "HaaTa (Jacob Alexander) 2014"; -KLL = 0.3; +KLL = 0.3a; # Modified Date -Date = 2014-09-14; +Date = 2014-11-21; # Capabilties available to the PartialMap module @@ -13,3 +13,7 @@ layerLatch => Macro_layerLatch_capability( layer : 2 ); layerLock => Macro_layerLock_capability( layer : 2 ); layerShift => Macro_layerShift_capability( layer : 2 ); +# Defines available to the PartialMap module +stateWordSize => StateWordSize_define; +stateWordSize = 8; # Default for now, increase to 16 or 32 for higher limits + diff --git a/Macro/PartialMap/kll.h b/Macro/PartialMap/kll.h index 0df2cd4..c166d0c 100644 --- a/Macro/PartialMap/kll.h +++ b/Macro/PartialMap/kll.h @@ -19,6 +19,9 @@ // ----- Includes ----- +// KLL Generated Defines +#include + // Project Includes #include #include @@ -36,10 +39,15 @@ // It is possible to change the maximum state and indexing positions of the state machine. // This usually affects the SRAM usage quite a bit, so it can be used to fit the code on smaller uCs // Or to allow for nearly infinite states. -// TODO Make selectable from layout variable -//typedef uint32_t var_uint_t; -//typedef uint16_t var_uint_t; +#if StateWordSize_define == 32 +typedef uint32_t var_uint_t; +#elif StateWordSize_define == 16 +typedef uint16_t var_uint_t; +#elif StateWordSize_define == 8 typedef uint8_t var_uint_t; +#else +#error "Invalid StateWordSize, possible values: 32, 16 and 8." +#endif // - NOTE - // Native pointer length