make pretty

This commit is contained in:
Steve Karg
2022-09-10 10:32:50 -05:00
parent 7cdab61d72
commit cc4911a185
123 changed files with 1387 additions and 1604 deletions
+110 -179
View File
@@ -43,8 +43,12 @@ static double clamp(double d, double min, double max)
* @param brightness - return brightness of the CIE xy color 0..255
* @note http://en.wikipedia.org/wiki/Srgb
*/
void color_rgb_to_xy(uint8_t r, uint8_t g, uint8_t b,
float *x_coordinate, float *y_coordinate, uint8_t *brightness)
void color_rgb_to_xy(uint8_t r,
uint8_t g,
uint8_t b,
float *x_coordinate,
float *y_coordinate,
uint8_t *brightness)
{
/* Get the RGB values from your color object
and convert them to be between 0 and 1.
@@ -63,15 +67,12 @@ void color_rgb_to_xy(uint8_t r, uint8_t g, uint8_t b,
This gamma correction is also applied to the screen
of your computer or phone, thus we need this to create
the same color on the light as on screen. */
red = (red > 0.04045f) ?
pow((red + 0.055f) / (1.0f + 0.055f), 2.4f) :
(red / 12.92f);
green = (green > 0.04045f) ?
pow((green + 0.055f) / (1.0f + 0.055f), 2.4f) :
(green / 12.92f);
blue = (blue > 0.04045f) ?
pow((blue + 0.055f) / (1.0f + 0.055f), 2.4f) :
(blue / 12.92f);
red = (red > 0.04045f) ? pow((red + 0.055f) / (1.0f + 0.055f), 2.4f)
: (red / 12.92f);
green = (green > 0.04045f) ? pow((green + 0.055f) / (1.0f + 0.055f), 2.4f)
: (green / 12.92f);
blue = (blue > 0.04045f) ? pow((blue + 0.055f) / (1.0f + 0.055f), 2.4f)
: (blue / 12.92f);
/* Convert the RGB values to XYZ using the
Wide RGB D65 conversion formula */
@@ -97,7 +98,7 @@ void color_rgb_to_xy(uint8_t r, uint8_t g, uint8_t b,
/* Use the Y value of XYZ as brightness
The Y value indicates the brightness
of the converted color. */
Y = Y*255.0f;
Y = Y * 255.0f;
Y = clamp(Y, 0.0f, 255.0f);
if (brightness) {
*brightness = (uint8_t)Y;
@@ -114,8 +115,12 @@ void color_rgb_to_xy(uint8_t r, uint8_t g, uint8_t b,
* @param brightness - brightness of the CIE xy color
* @note http://en.wikipedia.org/wiki/Srgb
*/
void color_rgb_from_xy(uint8_t *red, uint8_t *green, uint8_t *blue,
float x_coordinate, float y_coordinate, uint8_t brightness)
void color_rgb_from_xy(uint8_t *red,
uint8_t *green,
uint8_t *blue,
float x_coordinate,
float y_coordinate,
uint8_t brightness)
{
/* Calculate XYZ values */
float x = x_coordinate;
@@ -133,21 +138,21 @@ void color_rgb_from_xy(uint8_t *red, uint8_t *green, uint8_t *blue,
float b = X * 0.0349342f - Y * 0.0968930f + Z * 1.2884099f;
/* Apply reverse gamma correction */
r = r <= 0.0031308f ? 12.92f * r :
(1.0f + 0.055f) * pow(r, (1.0f / 2.4f)) - 0.055f;
g = g <= 0.0031308f ? 12.92f * g :
(1.0f + 0.055f) * pow(g, (1.0f / 2.4f)) - 0.055f;
b = b <= 0.0031308f ? 12.92f * b :
(1.0f + 0.055f) * pow(b, (1.0f / 2.4f)) - 0.055f;
r = r <= 0.0031308f ? 12.92f * r
: (1.0f + 0.055f) * pow(r, (1.0f / 2.4f)) - 0.055f;
g = g <= 0.0031308f ? 12.92f * g
: (1.0f + 0.055f) * pow(g, (1.0f / 2.4f)) - 0.055f;
b = b <= 0.0031308f ? 12.92f * b
: (1.0f + 0.055f) * pow(b, (1.0f / 2.4f)) - 0.055f;
/* Convert the RGB values to your color object
The rgb values from the above formulas are
between 0.0 and 1.0. */
r = r*255.0f;
r = r * 255.0f;
r = clamp(r, 0.0f, 255.0f);
g = g*255;
g = g * 255;
g = clamp(g, 0.0f, 255.0f);
b = b*255;
b = b * 255;
b = clamp(b, 0.0f, 255.0f);
/* copy to return value if possible */
if (red) {
@@ -169,155 +174,81 @@ struct css_color_rgb {
uint8_t blue;
};
static struct css_color_rgb CSS_Color_RGB_Table[] = {
{"aliceblue", 240, 248, 255},
{"antiquewhite", 250, 235, 215},
{"aqua", 0, 255, 255},
{"aquamarine", 127, 255, 212},
{"azure", 240, 255, 255},
{"beige", 245, 245, 220},
{"bisque", 255, 228, 196},
{"black", 0, 0, 0},
{"blanchedalmond", 255, 235, 205},
{"blue", 0, 0, 255},
{"blueviolet", 138, 43, 226},
{"brown", 165, 42, 42},
{"burlywood", 222, 184, 135},
{"cadetblue", 95, 158, 160},
{"chartreuse", 127, 255, 0},
{"chocolate", 210, 105, 30},
{"coral", 255, 127, 80},
{"cornflowerblue", 100, 149, 237},
{"cornsilk", 255, 248, 220},
{"crimson", 220, 20, 60},
{"cyan", 0, 255, 255},
{"darkblue", 0, 0, 139},
{"darkcyan", 0, 139, 139},
{"darkgoldenrod", 184, 134, 11},
{"darkgray", 169, 169, 169},
{"darkgreen", 0, 100, 0},
{"darkgrey", 169, 169, 169},
{"darkkhaki", 189, 183, 107},
{"darkmagenta", 139, 0, 139},
{"darkolivegreen", 85, 107, 47},
{"darkorange", 255, 140, 0},
{"darkorchid", 153, 50, 204},
{"darkred", 139, 0, 0},
{"darksalmon", 233, 150, 122},
{"darkseagreen", 143, 188, 143},
{"darkslateblue", 72, 61, 139},
{"darkslategray", 47, 79, 79},
{"darkslategrey", 47, 79, 79},
{"darkturquoise", 0, 206, 209},
{"darkviolet", 148, 0, 211},
{"deeppink", 255, 20, 147},
{"deepskyblue", 0, 191, 255},
{"dimgray", 105, 105, 105},
{"dimgrey", 105, 105, 105},
{"dodgerblue", 30, 144, 255},
{"firebrick", 178, 34, 34},
{"floralwhite", 255, 250, 240},
{"forestgreen", 34, 139, 34},
{"fuchsia", 255, 0, 255},
{"gainsboro", 220, 220, 220},
{"ghostwhite", 248, 248, 255},
{"gold", 255, 215, 0},
{"goldenrod", 218, 165, 32},
{"gray", 128, 128, 128},
{"green", 0, 128, 0},
{"greenyellow", 173, 255, 47},
{"grey", 128, 128, 128},
{"honeydew", 240, 255, 240},
{"hotpink", 255, 105, 180},
{"indianred", 205, 92, 92},
{"indigo", 75, 0, 130},
{"ivory", 255, 255, 240},
{"khaki", 240, 230, 140},
{"lavender", 230, 230, 250},
{"lavenderblush", 255, 240, 245},
{"lawngreen", 124, 252, 0},
{"lemonchiffon", 255, 250, 205},
{"lightblue", 173, 216, 230},
{"lightcoral", 240, 128, 128},
{"lightcyan", 224, 255, 255},
{"lightgoldenrodyellow", 250, 250, 210},
{"lightgray", 211, 211, 211},
{"lightgreen", 144, 238, 144},
{"lightgrey", 211, 211, 211},
{"lightpink", 255, 182, 193},
{"lightsalmon", 255, 160, 122},
{"lightseagreen", 32, 178, 170},
{"lightskyblue", 135, 206, 250},
{"lightslategray", 119, 136, 153},
{"lightslategrey", 119, 136, 153},
{"lightsteelblue", 176, 196, 222},
{"lightyellow", 255, 255, 224},
{"lime", 0, 255, 0},
{"limegreen", 50, 205, 50},
{"linen", 250, 240, 230},
{"magenta", 255, 0, 255},
{"maroon", 128, 0, 0},
{"mediumaquamarine", 102, 205, 170},
{"mediumblue", 0, 0, 205},
{"mediumorchid", 186, 85, 211},
{"mediumpurple", 147, 112, 219},
{"mediumseagreen", 60, 179, 113},
{"mediumslateblue", 123, 104, 238},
{"mediumspringgreen", 0, 250, 154},
{"mediumturquoise", 72, 209, 204},
{"mediumvioletred", 199, 21, 133},
{"midnightblue", 25, 25, 112},
{"mintcream", 245, 255, 250},
{"mistyrose", 255, 228, 225},
{"moccasin", 255, 228, 181},
{"navajowhite", 255, 222, 173},
{"navy", 0, 0, 128},
{"navyblue", 0, 0, 128},
{"oldlace", 253, 245, 230},
{"olive", 128, 128, 0},
{"olivedrab", 107, 142, 35},
{"orange", 255, 165, 0},
{"orangered", 255, 69, 0},
{"orchid", 218, 112, 214},
{"palegoldenrod", 238, 232, 170},
{"palegreen", 152, 251, 152},
{"paleturquoise", 175, 238, 238},
{"palevioletred", 219, 112, 147},
{"papayawhip", 255, 239, 213},
{"peachpuff", 255, 218, 185},
{"peru", 205, 133, 63},
{"pink", 255, 192, 203},
{"plum", 221, 160, 221},
{"powderblue", 176, 224, 230},
{"purple", 128, 0, 128},
{"red", 255, 0, 0},
{"rosybrown", 188, 143, 143},
{"royalblue", 65, 105, 225},
{"saddlebrown", 139, 69, 19},
{"salmon", 250, 128, 114},
{"sandybrown", 244, 164, 96},
{"seagreen", 46, 139, 87},
{"seashell", 255, 245, 238},
{"sienna", 160, 82, 45},
{"silver", 192, 192, 192},
{"skyblue", 135, 206, 235},
{"slateblue", 106, 90, 205},
{"slategray", 112, 128, 144},
{"slategrey", 112, 128, 144},
{"snow", 255, 250, 250},
{"springgreen", 0, 255, 127},
{"steelblue", 70, 130, 180},
{"tan", 210, 180, 140},
{"teal", 0, 128, 128},
{"thistle", 216, 191, 216},
{"tomato", 255, 99, 71},
{"turquoise", 64, 224, 208},
{"violet", 238, 130, 238},
{"wheat", 245, 222, 179},
{"white", 255, 255, 255},
{"whitesmoke", 245, 245, 245},
{"yellow", 255, 255, 0},
{"yellowgreen", 154, 205, 50},
{NULL, 0, 0, 0}
{ "aliceblue", 240, 248, 255 }, { "antiquewhite", 250, 235, 215 },
{ "aqua", 0, 255, 255 }, { "aquamarine", 127, 255, 212 },
{ "azure", 240, 255, 255 }, { "beige", 245, 245, 220 },
{ "bisque", 255, 228, 196 }, { "black", 0, 0, 0 },
{ "blanchedalmond", 255, 235, 205 }, { "blue", 0, 0, 255 },
{ "blueviolet", 138, 43, 226 }, { "brown", 165, 42, 42 },
{ "burlywood", 222, 184, 135 }, { "cadetblue", 95, 158, 160 },
{ "chartreuse", 127, 255, 0 }, { "chocolate", 210, 105, 30 },
{ "coral", 255, 127, 80 }, { "cornflowerblue", 100, 149, 237 },
{ "cornsilk", 255, 248, 220 }, { "crimson", 220, 20, 60 },
{ "cyan", 0, 255, 255 }, { "darkblue", 0, 0, 139 },
{ "darkcyan", 0, 139, 139 }, { "darkgoldenrod", 184, 134, 11 },
{ "darkgray", 169, 169, 169 }, { "darkgreen", 0, 100, 0 },
{ "darkgrey", 169, 169, 169 }, { "darkkhaki", 189, 183, 107 },
{ "darkmagenta", 139, 0, 139 }, { "darkolivegreen", 85, 107, 47 },
{ "darkorange", 255, 140, 0 }, { "darkorchid", 153, 50, 204 },
{ "darkred", 139, 0, 0 }, { "darksalmon", 233, 150, 122 },
{ "darkseagreen", 143, 188, 143 }, { "darkslateblue", 72, 61, 139 },
{ "darkslategray", 47, 79, 79 }, { "darkslategrey", 47, 79, 79 },
{ "darkturquoise", 0, 206, 209 }, { "darkviolet", 148, 0, 211 },
{ "deeppink", 255, 20, 147 }, { "deepskyblue", 0, 191, 255 },
{ "dimgray", 105, 105, 105 }, { "dimgrey", 105, 105, 105 },
{ "dodgerblue", 30, 144, 255 }, { "firebrick", 178, 34, 34 },
{ "floralwhite", 255, 250, 240 }, { "forestgreen", 34, 139, 34 },
{ "fuchsia", 255, 0, 255 }, { "gainsboro", 220, 220, 220 },
{ "ghostwhite", 248, 248, 255 }, { "gold", 255, 215, 0 },
{ "goldenrod", 218, 165, 32 }, { "gray", 128, 128, 128 },
{ "green", 0, 128, 0 }, { "greenyellow", 173, 255, 47 },
{ "grey", 128, 128, 128 }, { "honeydew", 240, 255, 240 },
{ "hotpink", 255, 105, 180 }, { "indianred", 205, 92, 92 },
{ "indigo", 75, 0, 130 }, { "ivory", 255, 255, 240 },
{ "khaki", 240, 230, 140 }, { "lavender", 230, 230, 250 },
{ "lavenderblush", 255, 240, 245 }, { "lawngreen", 124, 252, 0 },
{ "lemonchiffon", 255, 250, 205 }, { "lightblue", 173, 216, 230 },
{ "lightcoral", 240, 128, 128 }, { "lightcyan", 224, 255, 255 },
{ "lightgoldenrodyellow", 250, 250, 210 }, { "lightgray", 211, 211, 211 },
{ "lightgreen", 144, 238, 144 }, { "lightgrey", 211, 211, 211 },
{ "lightpink", 255, 182, 193 }, { "lightsalmon", 255, 160, 122 },
{ "lightseagreen", 32, 178, 170 }, { "lightskyblue", 135, 206, 250 },
{ "lightslategray", 119, 136, 153 }, { "lightslategrey", 119, 136, 153 },
{ "lightsteelblue", 176, 196, 222 }, { "lightyellow", 255, 255, 224 },
{ "lime", 0, 255, 0 }, { "limegreen", 50, 205, 50 },
{ "linen", 250, 240, 230 }, { "magenta", 255, 0, 255 },
{ "maroon", 128, 0, 0 }, { "mediumaquamarine", 102, 205, 170 },
{ "mediumblue", 0, 0, 205 }, { "mediumorchid", 186, 85, 211 },
{ "mediumpurple", 147, 112, 219 }, { "mediumseagreen", 60, 179, 113 },
{ "mediumslateblue", 123, 104, 238 }, { "mediumspringgreen", 0, 250, 154 },
{ "mediumturquoise", 72, 209, 204 }, { "mediumvioletred", 199, 21, 133 },
{ "midnightblue", 25, 25, 112 }, { "mintcream", 245, 255, 250 },
{ "mistyrose", 255, 228, 225 }, { "moccasin", 255, 228, 181 },
{ "navajowhite", 255, 222, 173 }, { "navy", 0, 0, 128 },
{ "navyblue", 0, 0, 128 }, { "oldlace", 253, 245, 230 },
{ "olive", 128, 128, 0 }, { "olivedrab", 107, 142, 35 },
{ "orange", 255, 165, 0 }, { "orangered", 255, 69, 0 },
{ "orchid", 218, 112, 214 }, { "palegoldenrod", 238, 232, 170 },
{ "palegreen", 152, 251, 152 }, { "paleturquoise", 175, 238, 238 },
{ "palevioletred", 219, 112, 147 }, { "papayawhip", 255, 239, 213 },
{ "peachpuff", 255, 218, 185 }, { "peru", 205, 133, 63 },
{ "pink", 255, 192, 203 }, { "plum", 221, 160, 221 },
{ "powderblue", 176, 224, 230 }, { "purple", 128, 0, 128 },
{ "red", 255, 0, 0 }, { "rosybrown", 188, 143, 143 },
{ "royalblue", 65, 105, 225 }, { "saddlebrown", 139, 69, 19 },
{ "salmon", 250, 128, 114 }, { "sandybrown", 244, 164, 96 },
{ "seagreen", 46, 139, 87 }, { "seashell", 255, 245, 238 },
{ "sienna", 160, 82, 45 }, { "silver", 192, 192, 192 },
{ "skyblue", 135, 206, 235 }, { "slateblue", 106, 90, 205 },
{ "slategray", 112, 128, 144 }, { "slategrey", 112, 128, 144 },
{ "snow", 255, 250, 250 }, { "springgreen", 0, 255, 127 },
{ "steelblue", 70, 130, 180 }, { "tan", 210, 180, 140 },
{ "teal", 0, 128, 128 }, { "thistle", 216, 191, 216 },
{ "tomato", 255, 99, 71 }, { "turquoise", 64, 224, 208 },
{ "violet", 238, 130, 238 }, { "wheat", 245, 222, 179 },
{ "white", 255, 255, 255 }, { "whitesmoke", 245, 245, 245 },
{ "yellow", 255, 255, 0 }, { "yellowgreen", 154, 205, 50 },
{ NULL, 0, 0, 0 }
};
/**
@@ -330,9 +261,9 @@ static struct css_color_rgb CSS_Color_RGB_Table[] = {
* https://www.w3.org/TR/2010/PR-css3-color-20101028/#html4
* names do not have spaces
*/
const char * color_rgb_to_ascii(uint8_t red, uint8_t green, uint8_t blue)
const char *color_rgb_to_ascii(uint8_t red, uint8_t green, uint8_t blue)
{
const char * name = "";
const char *name = "";
unsigned index = 0;
while (CSS_Color_RGB_Table[index].name) {
@@ -355,8 +286,8 @@ const char * color_rgb_to_ascii(uint8_t red, uint8_t green, uint8_t blue)
* @param name - CSS color name from W3C
* @return index 0..color_rgb_count(), where color_rgb_count() is not found.
*/
unsigned color_rgb_from_ascii(uint8_t *red, uint8_t *green, uint8_t *blue,
const char *name)
unsigned color_rgb_from_ascii(
uint8_t *red, uint8_t *green, uint8_t *blue, const char *name)
{
unsigned index = 0;
@@ -386,7 +317,8 @@ unsigned color_rgb_from_ascii(uint8_t *red, uint8_t *green, uint8_t *blue,
* @param blue - return B value of sRGB
* @return CSS ASCII color name from W3C or NULL if invalid index
*/
const char *color_rgb_from_index(unsigned target_index, uint8_t *red, uint8_t *green, uint8_t *blue)
const char *color_rgb_from_index(
unsigned target_index, uint8_t *red, uint8_t *green, uint8_t *blue)
{
unsigned index = 0;
@@ -431,8 +363,7 @@ unsigned color_rgb_count(void)
* http://www.tannerhelland.com/4435/convert-temperature-rgb-algorithm-code/
*/
void color_rgb_from_temperature(
uint16_t temperature_kelvin,
uint8_t *r, uint8_t *g, uint8_t *b)
uint16_t temperature_kelvin, uint8_t *r, uint8_t *g, uint8_t *b)
{
float red = 0, green = 0, blue = 0;
+15 -20
View File
@@ -24,7 +24,7 @@ bool days_is_leap_year(uint16_t year)
{
if ((year % 4) == 0 && ((year % 100) != 0 || (year % 400) == 0)) {
return true;
}
}
return (false);
}
@@ -47,7 +47,7 @@ uint8_t days_per_month(uint16_t year, uint8_t month)
return (29);
} else if (month >= 1 && month <= 12) {
return (month_days[month]);
}
}
return 0;
}
@@ -200,20 +200,18 @@ uint32_t days_apart(uint16_t year1,
* @param day - day of month (1-31)
* @return number of days since epoch, or 0 if out of range
*/
uint32_t days_since_epoch(uint16_t epoch_year,
uint16_t year,
uint8_t month,
uint8_t day)
uint32_t days_since_epoch(
uint16_t epoch_year, uint16_t year, uint8_t month, uint8_t day)
{
uint32_t days = 0; /* return value */
uint16_t yy = 0; /* year */
uint8_t mm = 0; /* months counter */
uint8_t monthdays = 0; /* days in a month */
uint32_t days = 0; /* return value */
uint16_t yy = 0; /* year */
uint8_t mm = 0; /* months counter */
uint8_t monthdays = 0; /* days in a month */
/* validate the date conforms to our range */
monthdays = days_per_month(year, month);
if ((year >= epoch_year) && (year <= 9999) &&
(monthdays > 0) && (day >= 1) && (day <= monthdays)) {
if ((year >= epoch_year) && (year <= 9999) && (monthdays > 0) &&
(day >= 1) && (day <= monthdays)) {
for (yy = epoch_year; yy < year; yy++) {
days += 365;
if (days_is_leap_year(yy)) {
@@ -238,12 +236,11 @@ uint32_t days_since_epoch(uint16_t epoch_year,
* @param pDay - day of month (1-31)
* @return nothing
*/
void days_since_epoch_to_date(
uint16_t epoch_year,
void days_since_epoch_to_date(uint16_t epoch_year,
uint32_t days,
uint16_t * pYear,
uint8_t * pMonth,
uint8_t * pDay)
uint16_t *pYear,
uint8_t *pMonth,
uint8_t *pDay)
{
uint8_t month = 1;
uint8_t day = 0;
@@ -281,9 +278,7 @@ void days_since_epoch_to_date(
* @param day - day of month (1-31)
* @return true if the date is valid
*/
bool days_date_is_valid(uint16_t year,
uint8_t month,
uint8_t day)
bool days_date_is_valid(uint16_t year, uint8_t month, uint8_t day)
{
uint8_t month_days = 0;
bool valid = false; /* return value */