#ifndef _LED_MATRIX_32_16_HPP #define _LED_MATRIX_32_16_HPP #include "ESP32-VirtualMatrixPanel-I2S-DMA.h" class CustomPxBasePanel : public VirtualMatrixPanel { public: using VirtualMatrixPanel::VirtualMatrixPanel; // inherit VirtualMatrixPanel's constructor(s) protected: VirtualCoords getCoords(int16_t x, int16_t y); // custom getCoords() method for specific pixel mapping }; class LedMetrix32x16 { private: MatrixPanel_I2S_DMA * dma_display = nullptr; // pointer to the DMA display object CustomPxBasePanel * virtual_display = nullptr; // pointer to the virtual display object HUB75_I2S_CFG::i2s_pins _pins; public: LedMetrix32x16(); LedMetrix32x16(HUB75_I2S_CFG::i2s_pins _pins); void begin(int nRow, int nColl, int res_x, int res_y, PANEL_CHAIN_TYPE chain_type = CHAIN_BOTTOM_RIGHT_UP); inline MatrixPanel_I2S_DMA * getDisplay() { return dma_display; } // return pointer to the DMA display object inline CustomPxBasePanel * getVirtualDisplay() { return virtual_display; } // return pointer to the virtual display object }; #endif // _LED_MATRIX_32_16_HPP