X-Git-Url: https://git.rohieb.name/hackover2013-badge-firmware.git/blobdiff_plain/9d18e10afb2439a6a9ba6978a799259746a837b7..11d3519339b45996592aa5b43669c9cd8cc495b1:/project/commands/drawing/cmd_rectangle.c diff --git a/project/commands/drawing/cmd_rectangle.c b/project/commands/drawing/cmd_rectangle.c index 581d864..d35eafa 100644 --- a/project/commands/drawing/cmd_rectangle.c +++ b/project/commands/drawing/cmd_rectangle.c @@ -43,8 +43,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/displays/tft/lcd.h" + #include "drivers/displays/tft/drawing.h" /**************************************************************************/ /*! @@ -94,4 +94,55 @@ void cmd_rectangle(uint8_t argc, char **argv) } } +/**************************************************************************/ +/*! + Displays a rectangle with rounded corners on the LCD. +*/ +/**************************************************************************/ +void cmd_rectangleround(uint8_t argc, char **argv) +{ + int32_t x1, y1, x2, y2, c, radius, corners, filled, border; + filled = 0; + + // Convert supplied parameters + getNumber (argv[0], &x1); + getNumber (argv[1], &y1); + getNumber (argv[2], &x2); + getNumber (argv[3], &y2); + getNumber (argv[4], &c); + getNumber (argv[5], &radius); + getNumber (argv[6], &corners); + if (argc >= 8) + { + getNumber (argv[7], &filled); + } + if (argc == 9) + { + getNumber (argv[8], &border); + if (border < 0 || border > 0xFFFF) + { + printf("Invalid Border Color%s", CFG_PRINTF_NEWLINE); + return; + } + } + + // ToDo: Validate data! + if (c < 0 || c > 0xFFFF) + { + printf("Invalid Color%s", CFG_PRINTF_NEWLINE); + return; + } + + if (filled) + drawRoundedRectangleFilled(x1, y1, x2, y2, (uint16_t)c, radius, corners); + else + drawRoundedRectangle(x1, y1, x2, y2, (uint16_t)c, radius, corners); + + // Draw border if it's not the same color + if (argc == 9) + { + drawRoundedRectangle(x1, y1, x2, y2, (uint16_t)border, radius, corners); + } +} + #endif