picoled/include/picoled.h
2025-06-04 14:41:08 -04:00

60 lines
799 B
C++

#ifndef PICOLED_H
#define PICOLED_H
#include <cstddef>
namespace picoled
{
class pixel
{
public:
pixel() :
pixel(false)
{}
pixel(bool on) :
on(on)
{}
bool is_on() const { return on; }
void invert() { on = !on; }
private:
bool on;
};
class oled
{
public:
oled(size_t width, size_t height);
virtual ~oled();
oled(const oled&) = delete;
oled(oled&&) = delete;
oled& operator=(const oled&) = delete;
oled& operator=(oled&&) = delete;
pixel& operator()(int x, int y);
const pixel& operator()(int x, int y) const;
void clear();
size_t get_width() const { return width; }
size_t get_height() const { return height; }
virtual void update() const = 0;
protected:
size_t width;
size_t height;
private:
pixel* pixels;
};
}
#endif//PICOLED_H