AwesomeStudioPedal
A programmable, multi-profile foot controller for DAWs, score readers, and studio automation
Loading...
Searching...
No Matches
nrf52840/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
11class LEDController : public ILEDController
12{
13public:
18 explicit LEDController(uint8_t pin);
19
20 void setup(uint32_t initialState = 0) override;
21 void setState(bool state) override;
22 void toggle() override;
23
24 void startBlink(uint32_t intervalMs, int16_t count = -1) override;
25 void stopBlink() override;
26 void update(uint32_t now) override;
27 bool isBlinking() const override { return blinking; }
28
29private:
30 uint8_t pin;
31 bool currentState = false;
32 bool blinking = false;
33 bool stateBeforeBlink = false;
34 uint32_t blinkInterval = 0;
35 int16_t blinkRemaining = 0;
36 uint32_t lastToggleTime = 0;
37};
Interface for LED control functionality.
ESP32-specific implementation of ILEDController.
bool isBlinking() const override
Returns true if a blink sequence is currently running.
void setup(uint32_t initialState=0) override
void update(uint32_t now) override
Drive timed behaviour — must be called every loop iteration.
void toggle() override
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.
LEDController(uint8_t pin)
Constructs an LEDController for a specific pin.