2026-01-13 02:36:25 -05:00

42 lines
824 B
C++

#ifndef DISPLAY_H
#define DISPLAY_H
#include <hardware/spi.h>
namespace lib
{
class PixelStream;
class Display
{
friend PixelStream;
public:
Display(uint8_t sck, uint8_t tx, uint8_t cs, uint8_t dc, int baudrate);
void set_update_area(uint16_t left, uint16_t top, uint16_t width,
uint16_t height);
PixelStream pixels();
void clear();
private:
uint8_t sck, tx, cs, dc;
spi_inst_t* spi;
void send_command(uint8_t command);
void send_command(uint8_t command, uint8_t param);
void send_command(uint8_t command, const uint8_t* params,
size_t param_count);
void send_command_and_begin_data_stream(uint8_t command);
void send_data(uint8_t data);
void send_data(const uint8_t* data, size_t data_len);
void end_data_stream();
};
}
#endif // DISPLAY_H