uint8_t NEO_GetPixelColor(NEO_PixelIdxT column, NEO_PixelIdxT row, uint32_t *rgb) { uint8_t res, r,g,b; res = NEO_GetPixelRGB(column, row, &r, &g, &b); *rgb = (r<<16)|(g<<8)|b; return res; }
uint8_t NEO_GetPixelColor(NEO_PixelIdxT pixelNo, uint32_t *rgb) { uint8_t res, r,g,b; res = NEO_GetPixelRGB(pixelNo, &r, &g, &b); *rgb = (r<<16)|(g<<8)|b; return res; }
/* binary XOR the color of an individual pixel */ uint8_t NEO_XorPixelRGB(NEO_PixelIdxT x, NEO_PixelIdxT y, uint8_t red, uint8_t green, uint8_t blue) { uint8_t r, g, b; if (x>=NEO_NOF_X || y>=NEO_NOF_Y) { return ERR_RANGE; /* error, out of range */ } NEO_GetPixelRGB(x, y, &r, &g, &b); r ^= red; b ^= blue; g ^= blue; NEO_SetPixelRGB(x, y, red, green, blue); return ERR_OK; }
/* binary XOR the color of an individual pixel */ uint8_t NEO_XorPixelRGB(NEO_PixelIdxT pixelNo, uint8_t red, uint8_t green, uint8_t blue) { uint8_t r, g, b; if (pixelNo>=NEO_NOF_PIXEL) { return ERR_RANGE; /* error, out of range */ } NEO_GetPixelRGB(pixelNo, &r, &g, &b); r ^= red; b ^= blue; g ^= blue; NEO_SetPixelRGB(pixelNo, red, green, blue); return ERR_OK; }
uint8_t NEO_DimmPercentPixel(NEO_PixelIdxT x, NEO_PixelIdxT y, uint8_t percent) { uint8_t red, green, blue; uint32_t dRed, dGreen, dBlue; uint8_t res; res = NEO_GetPixelRGB(x, y, &red, &green, &blue); if (res != ERR_OK) { return res; } dRed = ((uint32_t)red*(100-percent))/100; dGreen = ((uint32_t)green*(100-percent))/100; dBlue = ((uint32_t)blue*(100-percent))/100; return NEO_SetPixelRGB(x, y, (uint8_t)dRed, (uint8_t)dGreen, (uint8_t)dBlue); }