FastLED 3.9.15
Loading...
Searching...
No Matches

◆ Paint()

void Painter::Paint ( uint32_t now_ms,
uint32_t delta_ms,
VisState vis_state,
KeyboardState * keyboard,
LedRopeInterface * light_rope )
static

Definition at line 99 of file Painter.cpp.

103 {
104 for (int i = 0; i < KeyboardState::kNumKeys; ++i) {
105 Key& key = keyboard->mKeys[i];
106
107 const float time_delta_ms = static_cast<float>(now_ms - key.mEventTime);
108
109 const float lum = CalcLuminance(time_delta_ms, keyboard->mSustainPedal, key, i);
110 const float sat = CalcSaturation(time_delta_ms, key.mCurrColor, key.mOn);
111
112 //if (key.mIdx == 56) {
113 // dprint("lum: "); dprint(lum*255.f); dprint(" sat:"); dprintln(sat*255.f);
114 //}
115
116 key.mCurrColor.v_ = lum;
117 key.mCurrColor.s_ = sat;
118
119 // Removing this line breaks one of the visualizers...
120 // TODO: Figure out a cleaner solution.
121 light_rope->Set(i, key.mCurrColor.ToRGB());
122 }
123
124 LedColumns led_columns = LedLayoutArray();
125
126 switch (vis_state) {
127 case Painter::kBlockNote: {
129 break;
130 }
132 light_rope->DrawRepeat(led_columns.array, kNumKeys);
133 break;
134 }
135 case Painter::kVUNote: {
136 PaintVuNotes(now_ms, *keyboard, led_columns.array, kNumKeys, light_rope);
137 break;
138 }
139 case Painter::kVUMidNote: {
140 PaintVuMidNotesFade(delta_ms, *keyboard, led_columns.array, kNumKeys, light_rope);
141 break;
142 }
143
144 case Painter::kVegas: { // aka "vegas mode?"
145 VegasVisualizer(*keyboard, led_columns.array, kNumKeys, light_rope);
146 break;
147 }
148
150 PaintBrightSurprise(*keyboard, led_columns.array, kNumKeys, light_rope);
151 break;
152 }
153
155 PaintVuSpaceInvaders(now_ms, *keyboard, led_columns.array, kNumKeys, light_rope);
156 break;
157 }
158
159 default:
160 dprint("Unknown mode: "); dprint(vis_state); dprint(".\n");
161 break;
162 }
163}
KeyboardState keyboard
static const int kNumKeys
Definition Keyboard.h:101
bool mSustainPedal
Definition Keyboard.h:102
Key mKeys[kNumKeys]
Definition Keyboard.h:103
virtual void Set(int i, const Color3i &c)=0
virtual void DrawRepeat(const int *value_array, int array_length)=0
virtual void DrawSequentialRepeat(int repeat)=0
#define dprint(x)
Definition dprint.h:13
LedColumns LedLayoutArray()
float CalcLuminance(float time_delta_ms, bool sustain_pedal_on, const Key &key, int key_idx)
Definition Painter.cpp:40
float CalcSaturation(float time_delta_ms, const ColorHSV &color, bool key_on)
Definition Painter.cpp:75
@ kNumLightsPerNote
Definition settings.h:6
@ kNumKeys
Definition settings.h:5
float v_
Definition color.h:108
Color3i ToRGB() const
Definition color.cpp:129
float s_
Definition color.h:108
bool mOn
Definition Keyboard.h:36
unsigned long mEventTime
Definition Keyboard.h:41
ColorHSV mCurrColor
Definition Keyboard.h:48
const int * array
static void PaintBrightSurprise(const KeyboardState &keyboard, const int *led_column_table, int led_column_table_length, LedRopeInterface *led_rope)
Definition Painter.cpp:409
@ kVUMidNote
Definition Painter.h:13
@ kVUSpaceInvaders
Definition Painter.h:17
@ kVegas
Definition Painter.h:18
@ kBlockNote
Definition Painter.h:15
@ kBrightSurprise
Definition Painter.h:19
@ kVUNote
Definition Painter.h:16
@ kColumnNote
Definition Painter.h:14
static void PaintVuNotes(uint32_t now_ms, const KeyboardState &keyboard, const int *led_column_table, int led_column_table_length, LedRopeInterface *led_rope)
Definition Painter.cpp:165
static void PaintVuSpaceInvaders(uint32_t now_ms, const KeyboardState &keyboard, const int *led_column_table, int led_column_table_length, LedRopeInterface *led_rope)
Definition Painter.cpp:450
static void PaintVuMidNotesFade(uint32_t delta_ms, const KeyboardState &keyboard, const int *led_column_table, int led_column_table_length, LedRopeInterface *led_rope)
Definition Painter.cpp:233
static void VegasVisualizer(const KeyboardState &keyboard, const int *led_column_table, int led_column_table_length, LedRopeInterface *led_rope)
Definition Painter.cpp:361

References LedColumns::array, dprint, LedRopeInterface::DrawRepeat(), LedRopeInterface::DrawSequentialRepeat(), kBlockNote, kBrightSurprise, kColumnNote, keyboard, KeyboardState::kNumKeys, kNumKeys, kNumLightsPerNote, kVegas, kVUMidNote, kVUNote, kVUSpaceInvaders, LedLayoutArray(), Key::mCurrColor, Key::mEventTime, Key::mOn, PaintBrightSurprise(), PaintVuMidNotesFade(), PaintVuNotes(), PaintVuSpaceInvaders(), ColorHSV::s_, LedRopeInterface::Set(), ColorHSV::ToRGB(), ColorHSV::v_, and VegasVisualizer().

Referenced by loop().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: