AwesomeStudioPedal
A programmable, multi-profile foot controller for DAWs, score readers, and studio automation
Loading...
Searching...
No Matches
esp32/include/led_controller.h
Go to the documentation of this file.
1#pragma once
2#include "i_led_controller.h"
3#include <Arduino.h>
4#include <driver/gpio.h>
5
14{
15public:
16 explicit LEDController(uint8_t pin);
17
18 void setup(uint32_t initialState = 0) override;
19 void setState(bool state) override;
20 void toggle() override;
21
22 void startBlink(uint32_t intervalMs, int16_t count = -1) override;
23 void stopBlink() override;
24 void update(uint32_t now) override;
25 bool isBlinking() const override { return blinking; }
26
27private:
28 uint8_t pin;
29 bool currentState = false;
30 bool blinking = false;
31 bool stateBeforeBlink = false;
32 uint32_t blinkInterval = 0;
33 int16_t blinkRemaining = 0; // -1 = infinite, 0 = done, >0 = half-cycles left
34 uint32_t lastToggleTime = 0;
35};
Interface for LED control functionality.
ESP32-specific implementation of ILEDController.
bool isBlinking() const override
Returns true if a blink sequence is currently running.
void update(uint32_t now) override
Drive timed behaviour — must be called every loop iteration.
void setState(bool state) override
void startBlink(uint32_t intervalMs, int16_t count=-1) override
Start a blink sequence.
void stopBlink() override
Stop any running blink and restore the pre-blink state.
void setup()
Arduino setup function - runs once at startup.
Definition main.cpp:235