58 lines
1.9 KiB
C++
58 lines
1.9 KiB
C++
#ifndef PAINTER_H
|
|
#define PAINTER_H
|
|
|
|
#include "./Keyboard.h"
|
|
#include "./ApproximatingFunction.h"
|
|
#include "./util.h"
|
|
#include "./settings.h"
|
|
#include "./led_rope_interface.h"
|
|
|
|
struct Painter {
|
|
|
|
enum VisState {
|
|
kVUMidNote = 0,
|
|
kColumnNote,
|
|
kBlockNote,
|
|
kVUNote,
|
|
kVUSpaceInvaders,
|
|
kVegas,
|
|
kBrightSurprise,
|
|
|
|
kNumVisStates,
|
|
};
|
|
|
|
////////////////////////////////////////////////////
|
|
static void Paint(uint32_t now_ms,
|
|
uint32_t delta_ms,
|
|
VisState vis_state,
|
|
KeyboardState* keyboard,
|
|
LedRopeInterface* light_rope);
|
|
private:
|
|
static void PaintVuNotes(uint32_t now_ms,
|
|
const KeyboardState& keyboard,
|
|
const int* led_column_table, int led_column_table_length,
|
|
LedRopeInterface* led_rope);
|
|
|
|
static void PaintVuMidNotesFade(uint32_t delta_ms,
|
|
const KeyboardState& keyboard,
|
|
const int* led_column_table, int led_column_table_length,
|
|
LedRopeInterface* led_rope);
|
|
|
|
// This is a crazy effect, lets keep this around.
|
|
static void VegasVisualizer(const KeyboardState& keyboard,
|
|
const int* led_column_table, int led_column_table_length,
|
|
LedRopeInterface* led_rope);
|
|
|
|
static void PaintBrightSurprise(const KeyboardState& keyboard,
|
|
const int* led_column_table, int led_column_table_length,
|
|
LedRopeInterface* led_rope);
|
|
|
|
|
|
|
|
static void PaintVuSpaceInvaders(uint32_t now_ms,
|
|
const KeyboardState& keyboard,
|
|
const int* led_column_table, int led_column_table_length,
|
|
LedRopeInterface* led_rope);
|
|
};
|
|
|
|
#endif // PAINTER_H
|