LCDGFX LCD display driver  2.0.1
This library is developed to control SSD1306/SSD1325/SSD1327/SSD1331/SSD1351/IL9163/PCD8554 RGB i2c/spi LED displays
Public Member Functions | Protected Member Functions | List of all members
NanoDisplayOps< O, I > Class Template Referenceabstract

#include <display.h>

Inheritance diagram for NanoDisplayOps< O, I >:

Public Member Functions

void putPixel (const NanoPoint &p)
 
void drawLine (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
 
void drawLine (const NanoRect &rect)
 
void drawRect (lcdint_t x1, lcdint_t y1, lcdint_t x2, lcdint_t y2)
 
void drawRect (const NanoRect &rect)
 
void fillRect (const NanoRect &rect)
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 1 > &canvas) __attribute__((noinline))
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 4 > &canvas) __attribute__((noinline))
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 8 > &canvas) __attribute__((noinline))
 
void drawCanvas (lcdint_t x, lcdint_t y, NanoCanvasOps< 16 > &canvas) __attribute__((noinline))
 
void printFixedPgm (lcdint_t xpos, lcdint_t y, const char *ch, EFontStyle style=STYLE_NORMAL) __attribute__((noinline))
 
void createMenu (SAppMenu *menu, const char **items, uint8_t count, const NanoRect &rect={})
 
void showMenu (SAppMenu *menu)
 
void showMenuSmooth (SAppMenu *menu)
 
void updateMenu (SAppMenu *menu)
 
void updateMenuSmooth (SAppMenu *menu)
 
uint8_t menuSelection (SAppMenu *menu)
 
void menuDown (SAppMenu *menu)
 
void menuUp (SAppMenu *menu)
 
void drawProgressBar (int8_t progress)
 
void drawWindow (lcdint_t x, lcdint_t y, lcduint_t width, lcduint_t height, const char *caption, bool blank)
 

Protected Member Functions

virtual void begin ()=0
 
virtual void end ()=0
 

Detailed Description

template<class O, class I>
class NanoDisplayOps< O, I >

NanoCanvasOps provides operations for drawing in memory buffer. Depending on BPP argument, this class can work with 1,8,16-bit canvas areas.

Definition at line 954 of file display.h.

Member Function Documentation

◆ begin()

template<class O, class I>
virtual void NanoDisplayOps< O, I >::begin ( )
protectedpure virtual

Initializes interface and display

Implemented in DisplaySSD1306_128x64_I2C, DisplaySSD1306_128x64_SPI, DisplaySSD1331_96x64x16_SPI, DisplaySSD1306_128x64< I >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformSpi > >, DisplaySSD1331_96x64x16< I >, DisplaySSD1331_96x64x16< InterfaceSSD1331< PlatformSpi > >, DisplaySH1106_128x64_I2C, DisplaySSD1306_128x32_I2C, DisplayILI9341_128x160x16_SPI, DisplaySSD1331x16< I >, DisplaySSD1331x16< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x160x16_SPI, DisplayST7735_128x160x16_SPI, DisplaySH1106_128x64_SPI, DisplaySSD1306_128x32_SPI, DisplayILI9341_128x160x16< I >, DisplayILI9341_128x160x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163_128x160x16< I >, DisplaySSD1331_96x64x8_SPI, DisplayST7735_128x160x16< I >, DisplayIL9163_128x160x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x160x16< InterfaceST7735< PlatformSpi > >, DisplaySSD1325_128x64_I2C, DisplaySSD1327_128x128_I2C, DisplaySH1106_128x64< I >, DisplaySH1106_128x64< InterfaceSH1106< PlatformSpi > >, DisplaySH1106_128x64< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306_128x32< I >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16_SPI, DisplayIL9163_128x128x16_SPI, DisplayST7735_128x128x16_SPI, DisplaySSD1331_96x64x8< I >, DisplaySSD1331_96x64x8< InterfaceSSD1331< PlatformSpi > >, DisplayPCD8544_84x48_SPI, DisplaySH1106< I >, DisplaySH1106< InterfaceSH1106< PlatformSpi > >, DisplaySH1106< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306< I >, DisplaySSD1325_128x64_SPI, DisplaySSD1327_128x128_SPI, DisplaySSD1351_128x128x16_SPI, DisplaySSD1306< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16< I >, DisplayILI9341_240x320x16< InterfaceILI9341< PlatformSpi > >, DisplaySSD1331x8< I >, DisplaySSD1331x8< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x128x16< I >, DisplayST7735_128x128x16< I >, DisplayIL9163_128x128x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x128x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544_84x48< I >, DisplayPCD8544_84x48< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325_128x64< I >, DisplaySSD1327_128x128< I >, DisplaySSD1351_128x128x16< I >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformSpi > >, DisplaySSD1351_128x128x16< InterfaceSSD1351< PlatformSpi > >, DisplayILI9341x16< I >, DisplayILI9341x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163x16< I >, DisplayST7735x16< I >, DisplayIL9163x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544< I >, DisplayPCD8544< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325< I >, DisplaySSD1327< I >, DisplaySSD1351x16< I >, DisplaySSD1325< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformSpi > >, and DisplaySSD1351x16< InterfaceSSD1351< PlatformSpi > >.

◆ createMenu()

template<class O , class I >
void NanoDisplayOps< O, I >::createMenu ( SAppMenu menu,
const char **  items,
uint8_t  count,
const NanoRect rect = {} 
)

Creates menu object with the provided list of menu items. List of menu items (strings) must exist all until menu object is no longer needed. Selection is set to the first item by default.

Parameters
menupointer to SAppMenu structure
itemsarray of null-termintated strings (located in SRAM)
countcount of menu items in the array
rectscreen area to use for menu

Definition at line 682 of file ssd1306_common.inl.

◆ drawCanvas() [1/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 1 > &  canvas 
)

Draws 1-bit canvas on lcd display

Parameters
xx position in pixels
yy position in pixels
canvas1-bit canvas to draw on the screen.

Definition at line 791 of file ssd1306_common.inl.

◆ drawCanvas() [2/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 4 > &  canvas 
)

Draws 4-bit canvas on lcd display

Parameters
xx position in pixels
yy position in pixels
canvas4-bit canvas to draw on the screen.

Definition at line 797 of file ssd1306_common.inl.

◆ drawCanvas() [3/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 8 > &  canvas 
)

Draws 8-bit canvas on lcd display

Parameters
xx position in pixels
yy position in pixels
canvas8-bit canvas to draw on the screen.

Definition at line 803 of file ssd1306_common.inl.

◆ drawCanvas() [4/4]

template<class O , class I >
void NanoDisplayOps< O, I >::drawCanvas ( lcdint_t  x,
lcdint_t  y,
NanoCanvasOps< 16 > &  canvas 
)

Draws 16-bit canvas on lcd display

Parameters
xx position in pixels
yy position in pixels
canvas16-bit canvas to draw on the screen.

Definition at line 809 of file ssd1306_common.inl.

◆ drawLine() [1/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawLine ( lcdint_t  x1,
lcdint_t  y1,
lcdint_t  x2,
lcdint_t  y2 
)

Draws line

Parameters
x1- position X
y1- position Y
x2- position X
y2- position Y
Note
color can be set via setColor()

Definition at line 545 of file ssd1306_common.inl.

◆ drawLine() [2/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawLine ( const NanoRect rect)

Draws line

Parameters
rect- structure, describing rectangle area
Note
color can be set via setColor()

Definition at line 589 of file ssd1306_common.inl.

◆ drawProgressBar()

template<class O , class I >
void NanoDisplayOps< O, I >::drawProgressBar ( int8_t  progress)

Displays progress bar in the middle of the display.

Parameters
progressprogress in range 0 - 100.

Definition at line 815 of file ssd1306_common.inl.

◆ drawRect() [1/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawRect ( lcdint_t  x1,
lcdint_t  y1,
lcdint_t  x2,
lcdint_t  y2 
)

Draws rectangle

Parameters
x1- position X
y1- position Y
x2- position X
y2- position Y
Note
color can be set via setColor()

Definition at line 530 of file ssd1306_common.inl.

◆ drawRect() [2/2]

template<class O , class I >
void NanoDisplayOps< O, I >::drawRect ( const NanoRect rect)

Draws rectangle

Parameters
rect- structure, describing rectangle area
Note
color can be set via setColor()

Definition at line 539 of file ssd1306_common.inl.

◆ drawWindow()

template<class O , class I >
void NanoDisplayOps< O, I >::drawWindow ( lcdint_t  x,
lcdint_t  y,
lcduint_t  width,
lcduint_t  height,
const char *  caption,
bool  blank 
)

Displays window at specified position and of specified size

Parameters
xx position in pixels from top-lef corner
yy position in pixels from top-lef corner
widthwidth of window to draw. Can be 0.
heightheight of windows to draw. Can be 0.
captiontext to display as caption
blanktrue if content inside window should be blanked

Definition at line 846 of file ssd1306_common.inl.

◆ end()

template<class O, class I>
virtual void NanoDisplayOps< O, I >::end ( )
protectedpure virtual

closes interface to lcd display

Implemented in DisplaySSD1306_128x64_I2C, DisplaySSD1306_128x64_SPI, DisplaySSD1331_96x64x16_SPI, DisplaySSD1306_128x64< I >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x64< InterfaceSSD1306< PlatformSpi > >, DisplaySSD1331_96x64x16< I >, DisplaySSD1331_96x64x16< InterfaceSSD1331< PlatformSpi > >, DisplaySH1106_128x64_I2C, DisplaySSD1306_128x32_I2C, DisplayILI9341_128x160x16_SPI, DisplaySSD1331x16< I >, DisplaySSD1331x16< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x160x16_SPI, DisplayST7735_128x160x16_SPI, DisplaySH1106_128x64_SPI, DisplaySSD1306_128x32_SPI, DisplayILI9341_128x160x16< I >, DisplayILI9341_128x160x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163_128x160x16< I >, DisplaySSD1331_96x64x8_SPI, DisplayST7735_128x160x16< I >, DisplayIL9163_128x160x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x160x16< InterfaceST7735< PlatformSpi > >, DisplaySSD1325_128x64_I2C, DisplaySSD1327_128x128_I2C, DisplaySH1106_128x64< I >, DisplaySH1106_128x64< InterfaceSH1106< PlatformSpi > >, DisplaySH1106_128x64< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306_128x32< I >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306_128x32< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16_SPI, DisplayIL9163_128x128x16_SPI, DisplayST7735_128x128x16_SPI, DisplaySSD1331_96x64x8< I >, DisplaySSD1331_96x64x8< InterfaceSSD1331< PlatformSpi > >, DisplayPCD8544_84x48_SPI, DisplaySH1106< I >, DisplaySH1106< InterfaceSH1106< PlatformSpi > >, DisplaySH1106< InterfaceSH1106< PlatformI2c > >, DisplaySSD1306< I >, DisplaySSD1325_128x64_SPI, DisplaySSD1327_128x128_SPI, DisplaySSD1351_128x128x16_SPI, DisplaySSD1306< InterfaceSSD1306< PlatformI2c > >, DisplaySSD1306< InterfaceSSD1306< PlatformSpi > >, DisplayILI9341_240x320x16< I >, DisplayILI9341_240x320x16< InterfaceILI9341< PlatformSpi > >, DisplaySSD1331x8< I >, DisplaySSD1331x8< InterfaceSSD1331< PlatformSpi > >, DisplayIL9163_128x128x16< I >, DisplayST7735_128x128x16< I >, DisplayIL9163_128x128x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735_128x128x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544_84x48< I >, DisplayPCD8544_84x48< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325_128x64< I >, DisplaySSD1327_128x128< I >, DisplaySSD1351_128x128x16< I >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325_128x64< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327_128x128< InterfaceSSD1327< PlatformSpi > >, DisplaySSD1351_128x128x16< InterfaceSSD1351< PlatformSpi > >, DisplayILI9341x16< I >, DisplayILI9341x16< InterfaceILI9341< PlatformSpi > >, DisplayIL9163x16< I >, DisplayST7735x16< I >, DisplayIL9163x16< InterfaceIL9163< PlatformSpi > >, DisplayST7735x16< InterfaceST7735< PlatformSpi > >, DisplayPCD8544< I >, DisplayPCD8544< InterfacePCD8544< PlatformSpi > >, DisplaySSD1325< I >, DisplaySSD1327< I >, DisplaySSD1351x16< I >, DisplaySSD1325< InterfaceSSD1325< PlatformSpi > >, DisplaySSD1325< InterfaceSSD1325< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformI2c > >, DisplaySSD1327< InterfaceSSD1327< PlatformSpi > >, and DisplaySSD1351x16< InterfaceSSD1351< PlatformSpi > >.

◆ fillRect()

template<class O , class I >
void NanoDisplayOps< O, I >::fillRect ( const NanoRect rect)

Fills rectangle area

Parameters
rect- structure, describing rectangle area
Note
color can be set via setColor()

Definition at line 595 of file ssd1306_common.inl.

◆ menuDown()

template<class O , class I >
void NanoDisplayOps< O, I >::menuDown ( SAppMenu menu)

Moves selection pointer down by 1 item. If there are no items below, it will set selection pointer to the first item. Use updateMenu() to refresh menu state on the display.

Parameters
menupointer to SAppMenu structure

Definition at line 765 of file ssd1306_common.inl.

◆ menuSelection()

template<class O , class I >
uint8_t NanoDisplayOps< O, I >::menuSelection ( SAppMenu menu)

Returns currently selected menu item. First item has zero-index.

Parameters
menupointer to SAppMenu structure

Definition at line 759 of file ssd1306_common.inl.

◆ menuUp()

template<class O , class I >
void NanoDisplayOps< O, I >::menuUp ( SAppMenu menu)

Moves selection pointer up by 1 item. If selected item is the first one, then selection pointer will set to the last item in menu list. Use updateMenu() to refresh menu state on the display.

Parameters
menupointer to SAppMenu structure

Definition at line 778 of file ssd1306_common.inl.

◆ printFixedPgm()

template<class O , class I >
void NanoDisplayOps< O, I >::printFixedPgm ( lcdint_t  xpos,
lcdint_t  y,
const char *  ch,
EFontStyle  style = STYLE_NORMAL 
)

Print text at specified position to canvas

Parameters
xposposition in pixels
yposition in pixels
chpointer to NULL-terminated string, located in flash
stylespecific font style to use
Note
Supports only STYLE_NORMAL and STYLE_BOLD

Definition at line 601 of file ssd1306_common.inl.

◆ putPixel()

template<class O , class I >
void NanoDisplayOps< O, I >::putPixel ( const NanoPoint p)

Draws pixel on specified position

Parameters
p- NanoPoint
Note
color can be set via setColor()

Definition at line 524 of file ssd1306_common.inl.

◆ showMenu()

template<class O , class I >
void NanoDisplayOps< O, I >::showMenu ( SAppMenu menu)

Shows menu items on the display. If menu items cannot fit the display, the function provides scrolling.

Parameters
menupointer to SAppMenu structure

Definition at line 696 of file ssd1306_common.inl.

◆ showMenuSmooth()

template<class O , class I >
void NanoDisplayOps< O, I >::showMenuSmooth ( SAppMenu menu)

Shows menu items on the display. If menu items cannot fit the display, the function provides scrolling. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.

Parameters
menupointer to SAppMenu structure

Definition at line 708 of file ssd1306_common.inl.

◆ updateMenu()

template<class O , class I >
void NanoDisplayOps< O, I >::updateMenu ( SAppMenu menu)

Updates menu items on the display. That is if selection is changed, the function will update only those areas, affected by the change.

Parameters
menuPointer to SAppMenu structure

Definition at line 720 of file ssd1306_common.inl.

◆ updateMenuSmooth()

template<class O , class I >
void NanoDisplayOps< O, I >::updateMenuSmooth ( SAppMenu menu)

Updates menu items on the display. That is if selection is changed, the function will update only those areas, affected by the change. Unlike showMenu() this implementation uses more graph functions and requires more flash, but result looks better.

Parameters
menuPointer to SAppMenu structure

Definition at line 740 of file ssd1306_common.inl.


The documentation for this class was generated from the following files: