12 #include "../avr_helper.h" 14 #include <avr/eeprom.h> 16 #include "../global.h" 17 #include "../main_effect.h" 22 static __flash
const char _name[] =
"CLASSIC";
23 static void _save(
void);
28 #define LEN PIXEL_CNT / (FC) 42 static __flash
const preset_f_t preset[PRESET_CNT][FC] = {
44 {.f=1, .r=255, .g=0, .b=5, .lvl=50, .fade1=3, .fade2=2},
45 {.f=3, .r=255, .g=0, .b=0, .lvl=50, .fade1=2, .fade2=2},
46 {.f=5, .r=200, .g=50, .b=0, .lvl=50, .fade1=2, .fade2=2},
47 {.f=7, .r=255, .g=255, .b=0, .lvl=50, .fade1=1, .fade2=2},
48 {.f=9, .r=0, .g=255, .b=0, .lvl=50, .fade1=1, .fade2=2},
49 {.f=11, .r=0, .g=255, .b=50, .lvl=50, .fade1=1, .fade2=2},
50 {.f=13, .r=0, .g=255, .b=255, .lvl=50, .fade1=1, .fade2=2},
51 {.f=15, .r=0, .g=0, .b=255, .lvl=50, .fade1=1, .fade2=2}
54 {.f=1, .r=255, .g=0, .b=0, .lvl=70, .fade1=3, .fade2=1},
55 {.f=3, .r=255, .g=0, .b=0, .lvl=70, .fade1=2, .fade2=1},
56 {.f=5, .r=255, .g=0, .b=0, .lvl=70, .fade1=2, .fade2=1},
57 {.f=7, .r=0, .g=255, .b=0, .lvl=50, .fade1=1, .fade2=2},
58 {.f=9, .r=0, .g=255, .b=0, .lvl=50, .fade1=1, .fade2=2},
59 {.f=11, .r=0, .g=0, .b=255, .lvl=40, .fade1=1, .fade2=3},
60 {.f=13, .r=0, .g=0, .b=255, .lvl=40, .fade1=2, .fade2=3},
61 {.f=15, .r=0, .g=0, .b=255, .lvl=40, .fade1=3, .fade2=3}
65 static uint8_t bright_f(uint8_t v){
67 if(br > 255) br = 255;
78 static uint8_t div = DIV;
84 for(uint8_t f=0; f < FC; f++){
86 for(uint8_t i=0; i<LEN; i++){
88 set_rgb_color(px+i, preset[
id][f].r, preset[
id][f].g, preset[
id][f].b);
107 if(
id < 0)
id = PRESET_CNT-1;
108 if(
id >= PRESET_CNT)
id = 0;
121 static EEMEM uint8_t e_id;
125 id = eeprom_read_byte(&e_id);
131 static void _save(
void){
133 eeprom_update_byte(&e_id,
id);
void bright_ctrl(uint8_t id, uint8_t bright, int8_t delta)
Управление яркостью
void set_rgb_color(uint8_t pos, uint8_t r, uint8_t g, uint8_t b)
Пиксел произвольного цвета
const __flash effect_t flash_effect_t
тип описания эффекта, размещенного во FLASH.
структура параметров звукового сигнала
uint16_t harmonics[F_CNT]
амплитуды всех гармоник сигнала
preset_result_t
результат функции смены пресета
#define FOREGROUND_EFFECT
основной эффект
volume_t peak_volume
пиковая громкость
pixel_t pixels[MAX_TOTAL_PIX]
Массив пикселей предельного размера
void register_effect(uint8_t toe, flash_effect_t *eff)
Регистрация эффекта в списках
uint8_t bright
яркость пиксела