feat: configurable PixelStream
This commit is contained in:
@@ -2,7 +2,11 @@
|
||||
#include "spore/Spore.h"
|
||||
#include "spore/util/Logging.h"
|
||||
#include "PixelStreamController.h"
|
||||
#include "PixelStreamService.h"
|
||||
#include <Adafruit_NeoPixel.h>
|
||||
|
||||
// Defaults are now loaded from config.json on LittleFS
|
||||
// Can still be overridden with preprocessor defines if needed
|
||||
#ifndef PIXEL_PIN
|
||||
#define PIXEL_PIN 2
|
||||
#endif
|
||||
@@ -34,22 +38,28 @@ Spore spore({
|
||||
});
|
||||
|
||||
PixelStreamController* controller = nullptr;
|
||||
PixelStreamService* service = nullptr;
|
||||
|
||||
void setup() {
|
||||
spore.setup();
|
||||
|
||||
PixelStreamConfig config{
|
||||
static_cast<uint8_t>(PIXEL_PIN),
|
||||
static_cast<uint16_t>(PIXEL_COUNT),
|
||||
static_cast<uint8_t>(PIXEL_BRIGHTNESS),
|
||||
static_cast<uint16_t>(PIXEL_MATRIX_WIDTH),
|
||||
static_cast<bool>(PIXEL_MATRIX_SERPENTINE),
|
||||
static_cast<neoPixelType>(PIXEL_TYPE)
|
||||
};
|
||||
|
||||
// Create service first (need it to load config)
|
||||
service = new PixelStreamService(spore.getContext(), spore.getApiServer(), nullptr);
|
||||
|
||||
// Load pixelstream config from LittleFS (pixelstream.json) or use defaults
|
||||
PixelStreamConfig config = service->loadConfig();
|
||||
|
||||
// Create controller with loaded config
|
||||
controller = new PixelStreamController(spore.getContext(), config);
|
||||
controller->begin();
|
||||
|
||||
|
||||
// Update service with the actual controller
|
||||
service->setController(controller);
|
||||
|
||||
// Register service
|
||||
spore.registerService(service);
|
||||
|
||||
// Start the API server
|
||||
spore.begin();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user