Skip to content

File oled_color_display.h

File List > disp > oled_color_display.h

Go to the documentation of this file

Source Code

#pragma once
#include "color_display.h"

namespace daisy
{
template <typename DisplayDriver>
class OledColorDisplay
: public ColorGraphicsDisplayImpl<OledColorDisplay<DisplayDriver>>
{
  public:
    OledColorDisplay() {}
    virtual ~OledColorDisplay() {}

    struct Config
    {
        typename DisplayDriver::Config driver_config;
    };

    void Init(Config config) { driver_.Init(config.driver_config); }

    uint16_t Height() const override { return driver_.Height(); }
    uint16_t Width() const override { return driver_.Width(); }

    void Fill(bool on) override { driver_.Fill(on); }

    void DrawPixel(uint_fast8_t x, uint_fast8_t y, bool on) override
    {
        driver_.DrawPixel(x, y, on);
    }

    void SetColorFG(uint8_t red, uint8_t green, uint8_t blue)
    {
        driver_.SetColorFG(red, green, blue);
    }

    void SetColorBG(uint8_t red, uint8_t green, uint8_t blue)
    {
        driver_.SetColorBG(red, green, blue);
    }

    void Update() override { driver_.Update(); }

  private:
    DisplayDriver driver_;

    void Reset() { driver_.Reset(); };
    void SendCommand(uint8_t cmd) { driver_.SendCommand(cmd); };
    void SendData(uint8_t* buff, size_t size) { driver_.SendData(buff, size); };
};

} // namespace daisy