50 lines
1004 B
C++
50 lines
1004 B
C++
#ifndef LEDHAL_H
|
|
#define LEDHAL_H
|
|
|
|
#include "FastLED.h"
|
|
|
|
class LEDHAL {
|
|
public:
|
|
LEDHAL(char* _ledName, bool _isPhysical) :
|
|
ledName(_ledName), isPhysical(_isPhysical), showRequested(false) {}
|
|
virtual ~LEDHAL() { delete ledName; }
|
|
|
|
virtual char* getLEDName() { return ledName; }
|
|
|
|
virtual uint16_t getNumLEDs() = 0;
|
|
|
|
virtual bool getIsPhysical() { return isPhysical; }
|
|
|
|
virtual CRGB getColor(int16_t pixel) = 0;
|
|
|
|
virtual void setColor(int16_t pixel, CRGB color) = 0;
|
|
|
|
virtual void requestShow() { showRequested = true; }
|
|
|
|
//TODO UnifiedColor should have constants
|
|
virtual void clearLEDs() {
|
|
for(uint16_t i = 0; i < getNumLEDs(); i++) {
|
|
setColor(i, CRGB(0, 0, 0));
|
|
}
|
|
};
|
|
|
|
void show() {
|
|
if(showRequested) {
|
|
updateLEDs();
|
|
|
|
showRequested = false;
|
|
}
|
|
}
|
|
|
|
protected:
|
|
virtual void updateLEDs() {};
|
|
|
|
private:
|
|
char*
|
|
ledName;
|
|
bool
|
|
isPhysical,
|
|
showRequested;
|
|
};
|
|
|
|
#endif |