35 lines
1.1 KiB
C++
35 lines
1.1 KiB
C++
#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, 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
|