Mercurial > louis > kiibohd-controller
comparison 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 |
comparison
equal
deleted
inserted
replaced
366:95ae53b1e088 | 367:8a6c2d410ad9 |
---|---|
377 { STLcdNumber7_define }, | 377 { STLcdNumber7_define }, |
378 { STLcdNumber8_define }, | 378 { STLcdNumber8_define }, |
379 { STLcdNumber9_define }, | 379 { STLcdNumber9_define }, |
380 }; | 380 }; |
381 | 381 |
382 // Color data for numbers | |
383 const uint16_t colors[10][3] = { | |
384 { STLcdNumber0Color_define }, | |
385 { STLcdNumber1Color_define }, | |
386 { STLcdNumber2Color_define }, | |
387 { STLcdNumber3Color_define }, | |
388 { STLcdNumber4Color_define }, | |
389 { STLcdNumber5Color_define }, | |
390 { STLcdNumber6Color_define }, | |
391 { STLcdNumber7Color_define }, | |
392 { STLcdNumber8Color_define }, | |
393 { STLcdNumber9Color_define }, | |
394 }; | |
395 | |
382 // Only display if there are layers active | 396 // Only display if there are layers active |
383 if ( macroLayerIndexStackSize > 0 ) | 397 if ( macroLayerIndexStackSize > 0 ) |
384 { | 398 { |
399 // Set the color according to the "top-of-stack" layer | |
400 uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - 1 ]; | |
401 FTM0_C0V = colors[ layerIndex ][0]; | |
402 FTM0_C1V = colors[ layerIndex ][1]; | |
403 FTM0_C2V = colors[ layerIndex ][2]; | |
385 | 404 |
386 // Iterate through each of the pages | 405 // Iterate through each of the pages |
387 // XXX Many of the values here are hard-coded | 406 // XXX Many of the values here are hard-coded |
388 // Eventually a proper font rendering engine should take care of things like this... -HaaTa | 407 // Eventually a proper font rendering engine should take care of things like this... -HaaTa |
389 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) | 408 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) |
396 LCD_writeControlReg( 0x00 ); | 415 LCD_writeControlReg( 0x00 ); |
397 | 416 |
398 // Write data | 417 // Write data |
399 for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ ) | 418 for ( uint16_t layer = 1; layer <= macroLayerIndexStackSize; layer++ ) |
400 { | 419 { |
401 uint16_t layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; | 420 layerIndex = macroLayerIndexStack[ macroLayerIndexStackSize - layer ]; |
402 | 421 |
403 // Default to 0, if over 9 | 422 // Default to 0, if over 9 |
404 if ( layerIndex > 9 ) | 423 if ( layerIndex > 9 ) |
405 { | 424 { |
406 layerIndex = 0; | 425 layerIndex = 0; |
421 } | 440 } |
422 } | 441 } |
423 } | 442 } |
424 else | 443 else |
425 { | 444 { |
445 // Set default backlight | |
446 FTM0_C0V = STLcdBacklightRed_define; | |
447 FTM0_C1V = STLcdBacklightGreen_define; | |
448 FTM0_C2V = STLcdBacklightBlue_define; | |
449 | |
426 // Write default image | 450 // Write default image |
427 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) | 451 for ( uint8_t page = 0; page < LCD_TOTAL_VISIBLE_PAGES; page++ ) |
428 LCD_writeDisplayReg( page, (uint8_t *)&STLcdDefaultImage[page * LCD_PAGE_LEN], LCD_PAGE_LEN ); | 452 LCD_writeDisplayReg( page, (uint8_t *)&STLcdDefaultImage[page * LCD_PAGE_LEN], LCD_PAGE_LEN ); |
429 } | 453 } |
430 } | 454 } |