/* 
 * File:   effects.h
 * Author: Nicholas
 *
 * Created on 12 October 2025, 3:32 PM
 */

#ifndef EFFECTS_H
#define	EFFECTS_H

#ifdef	__cplusplus
extern "C" {
#endif


#include "rgb.h"

unsigned short random(unsigned short lessthan);
void effect1(rgb* buffer, unsigned char scheme, unsigned short millis); // snaking RGB spectrum
void effect2(rgb* buffer, unsigned char scheme, unsigned short millis); // snaking RGB pounsigned chars
void effect3(rgb* buffer, unsigned char scheme, unsigned short millis); // radiating RGB circles from centre
void effect4(rgb* buffer, unsigned char scheme, unsigned short millis); // radiating RGB spectrum
void effect5(rgb* buffer, unsigned char scheme, unsigned short millis); // rotating RGB spectrum
void effect6(rgb* buffer, unsigned char scheme, unsigned short millis); // rotating RGB point
void effect7(rgb* buffer, unsigned char scheme, unsigned short millis); // rotating RGB line
void effect8(rgb* buffer, unsigned char scheme, unsigned short millis); // twinkling RGB pounsigned chars
void effect9(rgb* buffer, unsigned char scheme, unsigned short millis); // radiating RGB spirals
void effect10(rgb* buffer, unsigned char scheme, unsigned short millis); // radiating RGB circles from different points
void effect11(rgb* buffer, unsigned char scheme, unsigned short millis); // radiating RGB circles from centre and back again
void effect12(rgb* buffer, unsigned char scheme, unsigned short millis); // moving RGB angled lines
void effect(rgb* buffer, unsigned char which, unsigned char scheme, unsigned short millis);
void ResetEffect(unsigned short millis);

#ifdef	__cplusplus
}
#endif

#endif	/* EFFECTS_H */

