#ifndef SEVENSEGMENTNEOPIXEL_H #define SEVENSEGMENTNEOPIXEL_H #include class SevenSegmentNeoPixel { public: // Constructor with optional segment order SevenSegmentNeoPixel(uint8_t digits, uint8_t pixelsPerSegment, uint8_t pin, const uint8_t* segmentOrder = nullptr, neoPixelType type = NEO_GRB + NEO_KHZ800); void begin(); void clear(); void show(); void setBrightness(uint8_t brightness); void setDigit(uint8_t digitIndex, uint8_t value, uint32_t color); void setAll(uint8_t value, uint32_t color); void setSegments(uint8_t digitIndex, const uint8_t segments[7], uint32_t color); Adafruit_NeoPixel& getStrip(); static const uint8_t* getSegmentPattern(uint8_t digit); private: uint8_t _digits; uint8_t _pixelsPerSegment; uint8_t _segmentsPerDigit = 7; uint16_t _pixelsPerDigit; uint16_t _numPixels; Adafruit_NeoPixel _strip; uint8_t _segmentOrder[7]; // <-- Add this line static const uint8_t _segmentPatterns[10][7]; uint16_t getPixelOffset(uint8_t digitIndex, uint8_t segmentIndex) const; }; #endif