Data Structures | Defines | Typedefs | Functions

display-font.c File Reference

character display functions More...

#include "config.h"
#include <avr/pgmspace.h>
#include "display.h"
#include "lh155.h"
#include "../../font/font.h"

Data Structures

struct  font_priv_s

Defines

#define DRAWSTR_MEM_SHIFT   (0)
#define DRAWSTR_MEM_MASK   (1<<DRAWSTR_MEM_SHIFT)
#define DRAWSTR_MEM_RAM   (0*1<<DRAWSTR_MEM_SHIFT)
#define DRAWSTR_MEM_FLASH   (1*1<<DRAWSTR_MEM_SHIFT)
#define DRAWSTR_STOP0_SHIFT   (1)
#define DRAWSTR_STOP0_MASK   (1<<DRAWSTR_STOP0_SHIFT)
#define DRAWSTR_STOP0_SKIP   (0*1<<DRAWSTR_STOP0_SHIFT)
#define DRAWSTR_STOP0_STOP   (1*1<<DRAWSTR_STOP0_SHIFT)

Typedefs

typedef struct font_priv_s font_priv_t

Functions

void hl_lcd_set_font (const font_t *f)
 select font to use for text operations
void hl_lcd_get_current_font (font_t *f)
 get data of current font
void hl_lcd_set_current_font (const font_t *f)
 restore font saved with hl_lcd_get_current_font()
uint8_t hl_lcd_get_charwidth (void)
 get width (in pixels) of currently selected font
uint8_t hl_lcd_get_charheight (void)
 get height (in pixels) of currently selected font
void hl_lcd_drawchar (uint8_t x, uint8_t y, char c)
 draw a character at pixel position (x,y) using font set by hl_lcd_set_font()
void hl_lcd_drawchar_font (uint8_t x, uint8_t y, char c, const font_t *f)
 draw a character at pixel position (x,y) using specified font
void hl_lcd_drawstr (uint8_t x, uint8_t y, const char *s)
 draw a character string beginning at pixel position (x,y)
void hl_lcd_drawstrn (uint8_t x, uint8_t y, const char *s, size_t len)
 like hl_lcd_drawstr(), but draws at most LEN characters
void hl_lcd_drawstr_P (uint8_t x, uint8_t y, PGM_P s)
 like hl_lcd_drawstr(), but for strings stored in Flash memory
void hl_lcd_drawstrn_P (uint8_t x, uint8_t y, PGM_P s, size_t len)
 like hl_lcd_drawstrn(), but for strings stored in Flash memory

Detailed Description

character display functions


Function Documentation

void hl_lcd_drawchar ( uint8_t  x,
uint8_t  y,
char  c 
)

draw a character at pixel position (x,y) using font set by hl_lcd_set_font()

hl_lcd_drawchar() draws a character at an arbitrary position

Parameters:
x X coordinate of upper left character box corner
y Y coordinate of upper left character box corner
c character to draw (pattern and size is defined by previous call to hl_lcd_set_font())

{
  hl_lcd_drawchar_priv (x, y, c, &current_font);
}

void hl_lcd_drawchar_font ( uint8_t  x,
uint8_t  y,
char  c,
const font_t f 
)

draw a character at pixel position (x,y) using specified font

hl_lcd_drawchar_font() draws a character at an arbitrary position

Parameters:
x X coordinate of upper left character box corner
y Y coordinate of upper left character box corner
c character to draw (pattern and size is defined by the next parameter)
f font to use for that character

{
  font_priv_t p;
  hl_lcd_set_font_priv (&p, f);
  hl_lcd_drawchar_priv (x, y, c, &p);
}

void hl_lcd_drawstr ( uint8_t  x,
uint8_t  y,
const char *  s 
)

draw a character string beginning at pixel position (x,y)

hl_lcd_drawstr() may be implemented in a more efficient way than calling hl_lcd_drawchar multiple times, especially for char_width != 8 pixel or x8 != 0

{
  hl_lcd_drawstr_internal (x, y, s, -1,
                           DRAWSTR_MEM_RAM | DRAWSTR_STOP0_STOP);
}

void hl_lcd_set_current_font ( const font_t f  ) 

restore font saved with hl_lcd_get_current_font()

The difference to hl_lcd_set_font() is that here we expect *f to be in RAM instead of in FLASH.

{
  current_font.font = *f;
  hl_lcd_set_font_calc (&current_font);
}