#ifndef FADER_H #define FADER_H #include struct sk6812_ctx; struct fader_colour { float red, green, blue, white; // value range is 0.0 to 255.0 }; struct fader_ctx { uint32_t num_modules; struct fader_colour *cur_colour; struct fader_colour *target_colour; struct sk6812_ctx *led_ctx; uint8_t something_changed; float fadestep; }; int fader_init(struct fader_ctx *ctx, uint32_t nMod, struct sk6812_ctx *ledCtx); void fader_shutdown(struct fader_ctx *ctx); void fader_set_colour(struct fader_ctx *ctx, uint32_t module, uint8_t r, uint8_t g, uint8_t b, uint8_t w); void fader_fade_colour(struct fader_ctx *ctx, uint32_t module, uint8_t r, uint8_t g, uint8_t b, uint8_t w); void fader_add_colour(struct fader_ctx *ctx, uint32_t module, uint8_t r, uint8_t g, uint8_t b, uint8_t w); void fader_set_fadestep(struct fader_ctx *ctx, uint8_t newFadestep); void fader_update(struct fader_ctx *ctx); #endif // FADER_H