#ifndef DISPLAYPROXYMAX7456_H #define DISPLAYPROXYMAX7456_H #include "DisplayProxy.h" #include "max7456.h" /** * Text-User-Interface on a Max7456 * * The Max7456 provides On-Screen-Display rendering for composite video. * (Think old school VCR menu overlay) * * @link https://www.maximintegrated.com/en/products/analog/video-products/MAX7456.html */ class DisplayProxyMAX7456 : public DisplayProxy { public: /** * Initalize a Max7456 Style display * - Initialize with CS on Pin 6. * - Clear the display * - Initialize blinking frequency. * - Disable external video * - Enable OSD. */ explicit DisplayProxyMAX7456(Max7456 *osd); /** * OSD on, external video left untouched. */ bool on(); /** * OSD off, external video off. */ bool off(); /** * Depending on the font loaded into the Max7456 the output might not be ASCII compatible. */ bool write(int x, int y, const char *text) override; bool clear() override; /** * Adjust the display offset. * Since the signal is analog the characters might be rendered outside the display area */ bool setOffset(int x, int y); bool externalVideo(bool enabled); bool onScreenDisplay(bool enabled); private: Max7456 *osd; }; #endif