18 #include "../avr_helper.h" 20 #include <avr/eeprom.h> 21 #include <avr/pgmspace.h> 22 #include "../color_transform.h" 23 #include "../global.h" 25 #include "../main_effect.h" 26 #include "../lcd_show.h" 32 static void _start(
void);
34 static effect_info_t _info(uint8_t show);
37 static __flash
const char _name[] =
"MODERN";
51 static const __flash uint8_t chanel[CHANEL_CNT] = {
54 static __flash
const rgb_t color[CHANEL_CNT] = {
55 {0xFF,0x0F,0x00},{
RED},{
GREEN},{
ORANGE},{
BLUE},{
PURPLE},{
RED},{
YELLOW},{
GREEN},{
ORANGE},{
BLUE},{
PURPLE},{
RED},{
YELLOW},{
GREEN},{
ORANGE}
68 chanel_t chanel[CHANEL_CNT];
72 static param_t *param=∥
74 #define CHANEL_WIDTH (PIXEL_CNT / CHANEL_CNT) 81 static effect_info_t _info(uint8_t show){
92 static void _start(
void){
95 param->div = param->DIV;
96 for(uint8_t i=0; i<CHANEL_CNT; i++)
97 param->chanel[i].age = MAX_AGE;
115 param->div = param->DIV;
119 uint8_t w = CHANEL_WIDTH;
123 for(uint8_t i=0; i<CHANEL_CNT; i++){
125 k = param->chanel[i].level;
127 param->chanel[i].level = d;
128 param->chanel[i].wait = WAIT;
136 param->chanel[i].age = k;
139 switch(param->preset){
141 for(uint8_t p=0; p<w; p++){
143 k = -(CHANEL_WIDTH/2);
144 if((p >= param->chanel[i].age) && (p < (w - param->chanel[i].age))){
154 if(param->chanel[i].wait){
155 param->chanel[i].wait--;
157 if(param->chanel[i].level >= LVL_DEC)
158 param->chanel[i].level -= LVL_DEC;
160 param->chanel[i].level = 0;
161 if(param->chanel[i].age <= MAX_AGE)
162 param->chanel[i].age++;
void bright_ctrl(uint8_t id, uint8_t bright, int8_t delta)
Управление яркостью
#define GREEN
Чисто зеленый цвет
#define PURPLE
фиолетовый цвет
void off_all_pixels(void)
Выключение всех пикселов
Постоянная составляющая (инфранизкие частоты)
void set_rgb_color(uint8_t pos, uint8_t r, uint8_t g, uint8_t b)
Пиксел произвольного цвета
const __flash effect_t flash_effect_t
тип описания эффекта, размещенного во FLASH.
структура параметров звукового сигнала
#define YELLOW
Ярко-желтый цвет
uint16_t harmonics[F_CNT]
амплитуды всех гармоник сигнала
#define ORANGE
Оранжевый цвет
void center_str_p(uint8_t row, const char *src)
вывод строки из flash по центру дисплея
preset_result_t
результат функции смены пресета
Тип для представления цвета в RGB-модели
#define FOREGROUND_EFFECT
основной эффект
#define RED
Чисто красный цвет
void register_effect(uint8_t toe, flash_effect_t *eff)
Регистрация эффекта в списках
#define BLUE
Чисто синий цвет