#include "byte_math.h" #include "pattern.h" static rgb_t get_rgb(uint32_t time, size_t x) { int r = 0, g = 0, b = 0; uint8_t time8 = time & 0xff; int w = calc_w(time8 + x * 4); r = 0xff; g = byte_scale(byte_sin(time8 + x * 2), 0x90); b = byte_scale(byte_sin(time8 + x * 2), 0x20); rgb_t color; color.color = 0; color.r = clip(r + w); color.g = clip(byte_scale(g, AS_BYTE(0.75)) + w); color.b = clip(byte_scale(b, AS_BYTE(0.75)) + w); return color; } static void reset(void) { } __attribute__((__section__(".patterns"))) volatile static pattern_t pat = ((pattern_t){.get_rgb = get_rgb, .name = "CandyCane", .reset = reset});