IoT-LED-Matrix/lib/led-matrix-32-16/led-matrix-32-16.hpp

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, 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