vbi_char Struct Reference
High Level Decoding » Formatted text page

Attributed character. More...

`#include <format.h>`

## Data Fields

unsigned | underline: 1
unsigned | bold: 1
unsigned | italic: 1
unsigned | flash: 1
unsigned | conceal: 1
unsigned | proportional: 1
unsigned | link: 1
unsigned | reserved: 1
unsigned | size: 8
unsigned | opacity: 8
unsigned | foreground: 8
unsigned | background: 8
unsigned | drcs_clut_offs: 8
unsigned | unicode: 16

## Detailed Description

Attributed character.

## Field Documentation

## underline

unsigned vbi_char::underline

Display character underlined.

Referenced by vbi_draw_cc_page_region(), and vbi_draw_vt_page_region().

## bold

unsigned vbi_char::bold

Display character bold.

Referenced by vbi_draw_vt_page_region().

## italic

unsigned vbi_char::italic

Display character slanted right.

Referenced by vbi_draw_cc_page_region(), and vbi_draw_vt_page_region().

## flash

unsigned vbi_char::flash

Display character or space (U+0020), one second cycle time.

Referenced by vbi_draw_vt_page_region().

## conceal

unsigned vbi_char::conceal

Replace character by space (U+0020) if not revealed. This is used for example to hide text on question & answer pages.

Referenced by vbi_draw_vt_page_region().

## proportional

unsigned vbi_char::proportional

No function yet, default is fixed spacing.

## link

unsigned vbi_char::link

This character is part of a hyperlink. Call vbi_resolve_link() to get more information.

## reserved

unsigned vbi_char::reserved

Reserved for VPT link flag.

## size

unsigned vbi_char::size

Character size, see vbi_size.

Referenced by vbi_draw_vt_page_region(), and vbi_print_page_region().

## opacity

unsigned vbi_char::opacity

Character opacity, see vbi_opacity. Both foreground and background color are valid independent of opacity.

## foreground

unsigned vbi_char::foreground

Character foreground color, a vbi_color index into the vbi_page->color_map.

Referenced by vbi_draw_cc_page_region(), and vbi_draw_vt_page_region().

## background

unsigned vbi_char::background

Character background color, a vbi_color index into the vbi_page->color_map.

Referenced by vbi_draw_cc_page_region(), and vbi_draw_vt_page_region().

## drcs_clut_offs

unsigned vbi_char::drcs_clut_offs

DRCS color look-up table offset, see vbi_page for details.

Referenced by vbi_draw_vt_page_region().

## unicode

unsigned vbi_char::unicode

Character code according to ISO 10646 UCS-2 (not UTF-16).

All Closed Caption characters can be represented in Unicode, but unfortunately not all Teletext characters.

ETS 300 706 Table 36 Latin National Subset Turkish, character 0x23 "Turkish currency symbol" is not representable in Unicode, thus translated to private code U+E800. I was unable to identify all Arabic glyphs in Table 44 and 45 Arabic G0 and G2, so for now these are mapped to private code U+E620 ... U+E67F and U+E720 ... U+E77F respectively. Table 47 G1 Block Mosaic is not representable in Unicode, translated to private code U+EE00 ... U+EE7F. That is, the contiguous form has bit 5 (0x20) set, the separate form cleared. Table 48 G3 "Smooth Mosaics and Line Drawing Set" is not representable in Unicode, translated to private code U+EF20 ... U+EF7F.

Teletext Level 2.5+ DRCS are represented by private code U+F000 ... U+F7FF. The 6 lsb select character 0x00 ... 0x3F from a DRCS plane, the 5 msb select DRCS plane 0 ... 31, see vbi_page for details.

Bug
  Some Teletext character sets contain complementary Latin characters. For example the Greek capital letters Alpha and Beta are re-used as Latin capital letter A and B, while a separate code exists for Latin capital letter C. libzvbi will not analyse the page contents, so Greek A and B are always translated to Greek Alpha and Beta, C to Latin C, even if they appear in a pure Latin character word.

Referenced by vbi_draw_cc_page_region(), vbi_draw_vt_page_region(), and vbi_print_page_region().