Merge branch 'master' of gitlab:wintermute/hackover2013-badge-firmware
[hackover2013-badge-firmware.git] / project / commands / drawing / cmd_text.c
index ac3bc7c..d25830f 100644 (file)
@@ -44,9 +44,8 @@
 #include "project/commands.h"       // Generic helper functions
 
 #ifdef CFG_TFTLCD    
-  #include "drivers/lcd/tft/lcd.h"    
-  #include "drivers/lcd/tft/drawing.h"  
-  #include "drivers/lcd/tft/fonts/dejavusans9.h"
+  #include "drivers/displays/tft/lcd.h"    
+  #include "drivers/displays/tft/drawing.h"  
 
 /**************************************************************************/
 /*! 
@@ -55,7 +54,7 @@
 /**************************************************************************/
 void cmd_text(uint8_t argc, char **argv)
 {
-  int32_t x, y, color;
+  int32_t x, y, bgcolor, fontcolor;
   int32_t font;
   uint8_t i, len;
   char *data_ptr, data[80];
@@ -63,22 +62,40 @@ void cmd_text(uint8_t argc, char **argv)
   // Convert supplied parameters
   getNumber (argv[0], &x);
   getNumber (argv[1], &y);
-  getNumber (argv[2], &color);
-  getNumber (argv[3], &font);
+  getNumber (argv[2], &bgcolor);
+  getNumber (argv[3], &fontcolor);
+  getNumber (argv[4], &font);
 
   // Get message contents
   data_ptr = data;
-  for (i=0; i<argc-4; i++)
+  for (i=0; i<argc-5; i++)
   {
-    len = strlen(argv[i+4]);
-    strcpy((char *)data_ptr, (char *)argv[i+4]);
+    len = strlen(argv[i+5]);
+    strcpy((char *)data_ptr, (char *)argv[i+5]);
     data_ptr += len;
     *data_ptr++ = ' ';
   }
   *data_ptr++ = '\0';
 
-  // Only Vera Mono 9 is used by default
-  drawString((uint16_t)x, (uint16_t)y, (uint16_t)color, &dejaVuSans9ptFontInfo, (char *)&data);
+  #if CFG_TFTLCD_USEAAFONTS
+    uint16_t ctable[4];
+    // Calculate 4 color lookup table using the appropriate fore and bg colors
+    // This should really be optimized out into theme.h!
+    aafontsCalculateColorTable(bgcolor, (uint16_t)fontcolor, &ctable[0], 4);
+    switch (font)
+    {
+      default:  // Only enough space for the default font for now
+        aafontsDrawString((uint16_t)x, (uint16_t)y, ctable, &THEME_FONT, (char *)&data);
+        break;
+    }
+  #else
+    switch (font)
+    {
+      default:  // Only enough space for the default font for now
+        fontsDrawString((uint16_t)x, (uint16_t)y, (uint16_t)fontcolor, &THEME_FONT, (char *)&data);
+        break;
+    }
+  #endif
 }
 
 #endif  
This page took 0.026198 seconds and 4 git commands to generate.