LCOV - code coverage report
Current view: top level - src/Display - DisplayInterface.hpp (source / functions) Coverage Total Hit
Test: 73449d9b107c772cf65493691543348214e5d5eb Lines: 28.6 % 7 2
Test Date: 2026-06-06 17:44:35 Functions: 50.0 % 4 2
Legend: Lines:     hit not hit

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include <AH/Containers/LinkedList.hpp>
       4              : #include <Def/Def.hpp>
       5              : #include <Print.h>
       6              : 
       7              : BEGIN_CS_NAMESPACE
       8              : 
       9              : /**
      10              :  * @brief   An interface for displays. 
      11              :  * 
      12              :  * Inspired by the Adafruit GFX library for easy compatibility.
      13              :  *
      14              :  * @ingroup DisplayElements
      15              :  */
      16              : class DisplayInterface : public Print {
      17              :   protected:
      18            2 :     DisplayInterface() = default;
      19              : 
      20              :   public:
      21            2 :     virtual ~DisplayInterface() = default;
      22              : 
      23              :     /// Initialize the display.
      24              :     virtual void begin();
      25              : 
      26              :     /// Clear the frame buffer or clear the display.
      27              :     virtual void clear() = 0;
      28              :     /// Draw a custom background.
      29            0 :     virtual void drawBackground() {}
      30              :     /// Write the frame buffer to the display. If your display library writes to
      31              :     /// the display directly, without a display buffer in RAM, you can leave
      32              :     /// this function empty.
      33              :     virtual void display() = 0;
      34              : 
      35              :     /// Paint a single pixel with the given color.
      36              :     virtual void drawPixel(int16_t x, int16_t y, uint16_t color) = 0;
      37              : 
      38              :     /// Set the text color.
      39              :     virtual void setTextColor(uint16_t color) = 0;
      40              :     /// Set the text size.
      41              :     virtual void setTextSize(uint8_t size) = 0;
      42              :     /// Set the cursor position.
      43              :     virtual void setCursor(int16_t x, int16_t y) = 0;
      44              : 
      45              :     /**
      46              :      * @brief   Write a character to the display.
      47              :      * 
      48              :      * @see     setCursor
      49              :      * @see     setTextSize
      50              :      * @see     setTextColor
      51              :      */
      52              :     size_t write(uint8_t c) override = 0;
      53              : 
      54              :     /// Draw a line between two points.
      55              :     virtual void drawLine(int16_t x0, int16_t y0, int16_t x1, int16_t y1,
      56              :                           uint16_t color) = 0;
      57              :     /// Draw a vertical line.
      58              :     virtual void drawFastVLine(int16_t x, int16_t y, int16_t h,
      59              :                                uint16_t color) = 0;
      60              :     /// Draw a horizontal line.
      61              :     virtual void drawFastHLine(int16_t x, int16_t y, int16_t w,
      62              :                                uint16_t color) = 0;
      63              : 
      64              :     /// Draw a bitmap to the display.
      65              :     virtual void drawXBitmap(int16_t x, int16_t y, const uint8_t bitmap[],
      66              :                              int16_t w, int16_t h, uint16_t color) = 0;
      67              : 
      68              :     /// Draw a filled rectangle.
      69              :     virtual void fillRect(int16_t x, int16_t y, int16_t w, int16_t h,
      70              :                           uint16_t color);
      71              : 
      72              :     /// Draw a circle.
      73              :     virtual void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
      74              : 
      75              :     /// Draw a disk (filled circle).
      76              :     virtual void fillCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);
      77              : 
      78              :     /**
      79              :      * @brief   Clear the frame buffer, and draw the custom background.
      80              :      * @see    clear
      81              :      * @see    drawBackground
      82              :      */
      83            0 :     void clearAndDrawBackground() {
      84            0 :         clear();
      85            0 :         drawBackground();
      86            0 :     }
      87              : };
      88              : 
      89              : END_CS_NAMESPACE
        

Generated by: LCOV version 2.4-beta