This is a "plugin" for the Video Disk Recorder (VDR).

Initially Written by:                   Marcel Wiesweg <marcel.wiesweg@gmx.de>

Original Project's homepage (EOSL):     http://www.wiesweg-online.de/linux/vdr

Latest version available at: https://github.com/vdr-projects/vdr-plugin-osdteletext

See the file COPYING for license information.

Alistair Buxtons bitmap2ttf (https://github.com/ali1234/bitmap2ttf) was used to
create teletext2.ttf from tv-fonts 1.1 (c) 2002 Gerd Knorr <kraxel@debian.org>
(https://www.kraxel.org/releases/tv-fonts/). The original fonts are public domain.

Description:

Osd-Teletext displays the teletext directly on the OSD.

Installation:

You need to install the teletext2.ttf font in order to render special graphics
characters properly.

Usage:

Keys:
     1,...,9: insert page number
     Up:      page+
     Down:    page-
     Right:   sub page+
     Left:    sub page-
     Back:    close teletext plugin

   All other user interaction ("Actions") is configurably assigned to the other
   available keys.
   You can e.g. configure that you jump to page 100 when you press Red.
   In this example, the Action "Jump to 100" is assigned to key "Red".
   Have a look at the plugin's setup page to learn the current assignment
   and adapt it to your needs.

   Available Keys:
	Blue, Red, Yellow, Green,
	Stop, FastFwd, FastRwd, Ok

   Actions:
	"Zoom", "Half page", "Switch channel", "Switch background",
	"Config", "24-Line-Mode", "Answer", "Pause"
        "Hotkey Level+", "Hotkey Level-"
        "OSD Preset+", "OSD Preset-"
            "Jump to..." a specific page.

   Description of the actions:
     Zoom:          Zoom to upper half/lower half/back to full page

     Half Page:     Reduce OSD window to the lower half of the screen and
                    display upper half/lower half/back to full size

     Switch channel:Show pages of a channel different from the one currently
                    tuned to. In case a channel is on same transponder or
                    an additional free tuner is availabe it will change the
                    receiver ("tuned" mode). If not, it stays in "chached"
                    mode and only display pages which were received during
                    tuning to selected channel in the past and pages are stored
                    on disk already. When you press the key associated
                    with that action, you are asked for the channel number.
                    Press OK after you entered it with the number keys.
                    Without providing a channel, OK switches back to live channel

     Jump to...:    Jumps to the page you configure.

     Switch background: Toggles background transparency between a value
                    configured in setup, fully black, and fully transparent.

     Config:        Enter OSD configuration mode, currently supported
                     Left,Top +/-
                     Width,Height +/-
                     Frame +/-
                     Text Vertical Offset +/-
                     Background Transparency +/-

     24-Line-Mode:  Toggle Hotkey line (line 25) or add even Hints lines (line 26+27)

     Answer      :  Display concealed chars (toggle)
                     OSD will display yellow '?' in case page contains concealed chars
                     OSD will display green  '!' while concealed chars are displayed

     Pause       :  Stop updating page (toggle)
                     OSD will display red   '!' while paused
                     OSD will display green '>' after release (until next page update)

     ** if enabled/active **
     Hotkey Level+  :  Change to next Hotkey level (incl. rollover)
     Hotkey Level-  :  Change to previous Hotkey level (incl. rollover)
	Recommended assignment:
           FastFwd: Hotkey Level+
           FastRwd: Hotkey Level-

     ** if enabled/active **
     OSD Preset+    :  Change to next OSD preset (incl. rollover)
     OSD Preset-    :  Change to previous OSD preset (incl. rollover)
	Recommended assignment:
           Stop: OSD Preset-
           Play: OSD Preset+

   How to configure the key bindings:
   In the plugins setup menu, you can assign one of actions to each key.
   You can choose freely which actions you need, you are not forced to assign
   an action to a key at all if you do not need it.
   If you select "Jump to...", specify the page number in the line immediately
   below.


Other Setup options:
   Show Clock: Toggles whether an additional clock is drawn approximately
               every second.
               The clock shows the current system time, not any time broadcast
               via teletext. Let VDR set the system time from a transponder to
               have the exact time.
   Auto-update pages: 
               Continuously checks whether a page has changed and updates it
               if yes.
   Color Mode 4bpp:
               Enforce 16-color mode (for some older DVB cards)
   24-line mode
               Display (and scale for) only 24 lines
   Minimum user inactivity: 
               Sets a timeout (in minutes) for user inactivity. When this
               timespan has elapsed and the user did not press any keys, the
               plugin will be closed. Set to 0 to disable this. Note that
               disabling timeout will also effectively disable VDR's
               auto-shutdown feature as long as the plugin is active.

   ** optional with multi-preset support **
   OSD Presets visible
               Limit maximum visible presets

   OSD left, OSD top:
               Adjusts the left and top edge of the OSD independent from VDR's
               settings. The valid range is 0% to 90%
   OSD width, OSD height:
               Adjusts the width and height of the OSD independent from VDR's
               settings. The valid range is 10% to 100%
   Frame:
               Adjust black surrounding frame sized by amount of pixel
   Font:
               Select the font to display text
   Text Vertical Offset:
               Adjust the vertical offset by amount of (scaled) pixels
               The valid range is -10 to 10 (and depending on selected font)
   Background transparency:
               number between 0 (black) and 255 (transparency). Default is 128

   Hotkey (color key) bindings: See above, optional with multi-level support

   Key bindings:      See above.

Command line options:
   A few settings are given on the command line rather than in the setup menu.
   Available options:

     -d        --directory=DIR    The directory where the temporary
                                  files will be stored.
                                  (default: /var/cache/vdr/vtx)
                                  Ensure that the directory exists and is
                                  writable.
     -n        --max-cache=NUM    Maximum size in megabytes of cache used
                                  to store the pages on the harddisk.
                                  (default: a calculated value below 50 MB)
     -s        --cache-system=SYS Set the cache system to be used.
                                  Choose "legacy" for the traditional
                                  one-file-per-page system.
                                  Default is "packed" for the 
                                  one-file-for-a-few-pages system.
     -t        --toptext          Store top text pages at cache.
                                  (unviewable pages)
     -k        --key-levels=NUM   Maximum amount of Hotkey levels selectable and stored
                                   default: 1 (which deactivate this feature)
                                   maximum: 9 levels
     -o        --osd-presets=NUM  Maximum amount of OSD presets selectable and stored
                                   default: 1 (which deactivate this feature)
                                   maximum: 9 presets
     -P|--debugpage <int|hexint>  Specify page to debug (int: autoconvert internally to hex)
     -S|--debugpsub <int|hexint>  Specify sub-page to debug (int: autoconvert internally to hex)
     -L|--debugline <int>         Specify line of page to debug
     -D|--debugmask <int|hexint>  Enable debugmask (see logging.h for details)


Colors:
  On all sorts of output devices which are not limited as to color depth
  the original teletext colors will be displayed. (Only difference: Cyan is
  used instead of white to make reading easier).
  On the classic full-featured DVB card and other limited devices, the colors
  will be reduced to four.
  The mapping is currently optimized for German ARD, ZDF and RTL. If you are
  for some reason really and definitely not satisfied with my choices, edit
  colormapping.h and recompile.


Testpages for verification
    Page   | Reference

  Channel: 3sat
    109    | https://blog.3sat.de/ttx/index.php?p=109_0001&c=0 ('@' char)
    898-01 | https://blog.3sat.de/ttx/index.php?p=898_0001&c=0
    898-02 | https://blog.3sat.de/ttx/index.php?p=898_0002&c=0
    899-01 | https://blog.3sat.de/ttx/index.php?p=899_0001&c=0
    899-02 | https://blog.3sat.de/ttx/index.php?p=899_0002&c=0

  Channel: arte
    199-01

  Channel: rbb
    199-01
    199-02

  Channel: ORF2
    886-00

  Channel: ARD https://www.ard-text.de/index.php?page=<NUM>
    (currently none)

  Channel: ZDFinfo
    199-01
    199-02
    199-03

Subtitle pages for verification

  Channel: DasErste / BR Fernsehen
    150

  Channel: 3sat
    777

