#ifndef __INC_SMARTMATRIX_T3_H #define __INC_SMARTMATRIX_T3_H #ifdef SmartMatrix_h #include FASTLED_NAMESPACE_BEGIN extern SmartMatrix *pSmartMatrix; // note - dmx simple must be included before FastSPI for this code to be enabled class CSmartMatrixController : public CPixelLEDController { SmartMatrix matrix; public: // initialize the LED controller virtual void init() { // Initialize 32x32 LED Matrix matrix.begin(); matrix.setBrightness(255); matrix.setColorCorrection(ccNone); // Clear screen clearLeds(0); matrix.swapBuffers(); pSmartMatrix = &matrix; } virtual void showPixels(PixelController & pixels) { if(SMART_MATRIX_CAN_TRIPLE_BUFFER) { rgb24 *md = matrix.getRealBackBuffer(); } else { rgb24 *md = matrix.backBuffer(); } while(pixels.has(1)) { md->red = pixels.loadAndScale0(); md->green = pixels.loadAndScale1(); md->blue = pixels.loadAndScale2(); md++; pixels.advanceData(); pixels.stepDithering(); } matrix.swapBuffers(); if(SMART_MATRIX_CAN_TRIPLE_BUFFER && pixels.advanceBy() > 0) { matrix.setBackBuffer(pixels.mData); } } }; FASTLED_NAMESPACE_END #endif #endif