Mercurial > louis > kiibohd-controller
diff Scan/STLcd/lcd_scan.c @ 367:8a6c2d410ad9
Adding color association to layers
author | Jacob Alexander <haata@kiibohd.com> |
---|---|
date | Tue, 18 Aug 2015 10:46:55 -0700 |
parents | 95ae53b1e088 |
children | dbbdedccc275 |
line wrap: on
line diff
--- a/Scan/STLcd/lcd_scan.c Tue Aug 18 01:10:44 2015 -0700 +++ b/Scan/STLcd/lcd_scan.c Tue Aug 18 10:46:55 2015 -0700 @@ -379,9 +379,28 @@ { STLcdNumber9_define }, }; + // Color data for numbers + const uint16_t colors[10][3] = { + { STLcdNumber0Color_define }, + { STLcdNumber1Color_define }, + { STLcdNumber2Color_define }, + { STLcdNumber3Color_define }, + { STLcdNumber4Color_define }, + { STLcdNumber5Color_define }, + { STLcdNumber6Color_define }, + { STLcdNumber7Color_define }, + { STLcdNumber8Color_define }, + { STLcdNumber9Color_define }, + }; + // Only display if there are layers active if ( macroLayerIndexStackSize > 0 ) { + // Set the color according to the "top-of-stack" layer + uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - 1 ]; + FTM0_C0V = colors[ layerIndex ][0]; + FTM0_C1V = colors[ layerIndex ][1]; + FTM0_C2V = colors[ layerIndex ][2]; // Iterate through each of the pages // XXX Many of the values here are hard-coded @@ -398,7 +417,7 @@ // Write data for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ ) { - uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; + layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; // Default to 0, if over 9 if ( layerIndex > 9 ) @@ -423,6 +442,11 @@ } else { + // Set default backlight + FTM0_C0V = STLcdBacklightRed_define; + FTM0_C1V = STLcdBacklightGreen_define; + FTM0_C2V = STLcdBacklightBlue_define; + // Write default image for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) LCD_writeDisplayReg( page, (uint8_t *)&STLcdDefaultImage[page * LCD_PAGE_LEN], LCD_PAGE_LEN );