84 lines
2.1 KiB
C++
84 lines
2.1 KiB
C++
|
|
|
|
#include "../shared/defs.h"
|
|
|
|
|
|
#if ENABLE_SKETCH
|
|
|
|
|
|
#include "./ui_state.h"
|
|
#include "shared/Painter.h"
|
|
#include "fl/dbg.h"
|
|
|
|
#include <Arduino.h>
|
|
|
|
//#define UI_V1 // Based off the old midi shield with hand assmebled buttons.
|
|
#define UI_V2 // Based on a new midi shield with buttons. https://learn.sparkfun.com/tutorials/midi-shield-hookup-guide
|
|
#define UI_DBG
|
|
|
|
#ifdef __STM32F1__
|
|
// Missing A-type pins, just use digital pins mapped to analog.
|
|
#define PIN_POT_COLOR_SENSOR D3
|
|
#define PIN_POT_VEL_SENSOR D4
|
|
#else
|
|
#define PIN_POT_COLOR_SENSOR A3
|
|
#define PIN_POT_VEL_SENSOR A4
|
|
#endif
|
|
|
|
#define PIN_VIS_SELECT 2
|
|
#define PIN_COLOR_SELECT 4
|
|
|
|
Potentiometer velocity_pot(PIN_POT_VEL_SENSOR);
|
|
Potentiometer color_pot(PIN_POT_COLOR_SENSOR);
|
|
|
|
float read_color_selector() {
|
|
return color_pot.Read();
|
|
}
|
|
|
|
float read_velocity_bias() {
|
|
return velocity_pot.Read();
|
|
}
|
|
|
|
|
|
//DigitalButton custom_notecolor_select(4);
|
|
ColorSelector color_selector(PIN_COLOR_SELECT);
|
|
CountingButton vis_selector(PIN_VIS_SELECT);
|
|
|
|
void ui_init() {
|
|
}
|
|
|
|
|
|
ui_state ui_update(uint32_t now_ms, uint32_t delta_ms) {
|
|
ui_state out;
|
|
vis_selector.Update(now_ms);
|
|
color_selector.Update();
|
|
int32_t curr_val = vis_selector.curr_val();
|
|
FASTLED_DBG("curr_val: " << curr_val);
|
|
|
|
out.color_scheme = color_selector.curr_val();
|
|
|
|
//bool notecolor_on = custom_notecolor_select.Read();
|
|
|
|
//Serial.print("color selector: "); Serial.println(out.color_scheme);
|
|
|
|
//float velocity = read_velocity_bias();
|
|
//float color_selector = read_color_selector();
|
|
|
|
//Serial.print("velocity: "); Serial.print(velocity); Serial.print(", color_selector: "); Serial.print(color_selector);
|
|
|
|
//if (notecolor_on) {
|
|
// Serial.print(", notecolor_on: "); Serial.print(notecolor_on);
|
|
//}
|
|
|
|
//Serial.print("color_scheme: "); Serial.print(out.color_scheme); Serial.print(", vis selector: "); Serial.print(curr_val);
|
|
|
|
//Serial.println("");
|
|
|
|
//Serial.print("curr_val: "); Serial.print(curr_val);// Serial.print(", button state: "); Serial.println(vis_selector.button_.curr_val());;
|
|
|
|
out.which_visualizer = static_cast<Painter::VisState>(curr_val % Painter::kNumVisStates);
|
|
return out;
|
|
}
|
|
|
|
|
|
#endif // ENABLE_SKETCH
|