The beginnings of a rework
This commit is contained in:
@@ -2,17 +2,11 @@
|
||||
#define CLEDCONTROLLERPHYSICALMATRIX_H
|
||||
|
||||
#include "LEDHAL2D.h"
|
||||
|
||||
enum ArrangementType {
|
||||
HORIZONTALSCAN,
|
||||
HORIZONTALSERPENTINE,
|
||||
COLUMNSCAN,
|
||||
COLUMNSERPENTINE
|
||||
};
|
||||
#include "ILEDArrangement.h"
|
||||
|
||||
class CLEDControllerPhysicalMatrix : public LEDHAL2D {
|
||||
public:
|
||||
CLEDControllerPhysicalMatrix(CLEDController* _controller, char* ledName, ArrangementType _arrangement,
|
||||
CLEDControllerPhysicalMatrix(CLEDController* _controller, char* ledName, ILEDArrangement& _arrangement,
|
||||
int16_t width, int16_t height): LEDHAL2D(width, height, ledName, true), controller(_controller), arrangement(_arrangement) {}
|
||||
virtual ~CLEDControllerPhysicalMatrix() {}
|
||||
|
||||
@@ -33,25 +27,7 @@ class CLEDControllerPhysicalMatrix : public LEDHAL2D {
|
||||
}
|
||||
|
||||
int16_t XY(int16_t x, int16_t y) {
|
||||
if(arrangement == ArrangementType::HORIZONTALSCAN) {
|
||||
return getWidth() * y + x;
|
||||
} else if(arrangement == ArrangementType::COLUMNSCAN) {
|
||||
return getHeight() * x + y;
|
||||
} else if(arrangement == ArrangementType::HORIZONTALSERPENTINE) {
|
||||
if(y & 0x1) {
|
||||
return y * getWidth() + (getWidth() - 1 - x);
|
||||
} else {
|
||||
return y * getWidth() + x;
|
||||
}
|
||||
} else if(arrangement == ArrangementType::COLUMNSERPENTINE) {
|
||||
if(x & 0x1) {
|
||||
return x * getHeight() + (getHeight() - 1 - y);
|
||||
} else {
|
||||
return x * getHeight() + y;
|
||||
}
|
||||
} else {
|
||||
return 0; //How did you get here?
|
||||
}
|
||||
return arrangement.XY(x, y, getWidth(), getHeight());
|
||||
}
|
||||
|
||||
uint16_t getNumLEDs() {
|
||||
@@ -60,13 +36,13 @@ class CLEDControllerPhysicalMatrix : public LEDHAL2D {
|
||||
|
||||
protected:
|
||||
void updateLEDs() {
|
||||
controller->showLeds();
|
||||
controller->showLeds(255);
|
||||
}
|
||||
|
||||
private:
|
||||
CLEDController*
|
||||
controller;
|
||||
ArrangementType
|
||||
ILEDArrangement&
|
||||
arrangement;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user