diff --git a/ChangeLog b/ChangeLog index f804b77..5f9f3ef 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,11 +12,12 @@ v0.5dev (ongoing development) * hd44780/serial: Fix handling of keys for LoS-Panel (M. Kirchner) * hd44780/serial: Change backlight handling (see commit message) + glcd driver: Add FreeType 2 rendering support (B. Walle and M. Dolze) - + glcd driver: New connection type PNG, writes framebuffer as PNG image + + glcd driver: New connection type 'png', writes framebuffer as PNG image + hd44780: Fix vBars and block icon not working correctly on the same screen * Build system: Link LCDd itself with pthread library if available * lcdproc client: Unbreak build on OpenBSD non-i386 (E. Barrett) * lcdproc client: Fix core dumps on FreeBSD if started as non-root + * glcd driver: new connection type 'serdisplib' v0.5.5 + sed1330 driver: Add support for HG25504 (L. Lagendijk) diff --git a/docs/lcdproc-user/drivers.docbook b/docs/lcdproc-user/drivers.docbook index d9b5e00..509ceb6 100644 --- a/docs/lcdproc-user/drivers.docbook +++ b/docs/lcdproc-user/drivers.docbook @@ -15,6 +15,7 @@ well as the configuration of LCDd. &ea65; &EyeboxOne; &g15; +&glcd; &glcdlib; &glk; &hd44780; diff --git a/docs/lcdproc-user/drivers/Makefile.am b/docs/lcdproc-user/drivers/Makefile.am index f63e143..278926a 100644 --- a/docs/lcdproc-user/drivers/Makefile.am +++ b/docs/lcdproc-user/drivers/Makefile.am @@ -8,6 +8,7 @@ EXTRA_DIST = bayrad.docbook \ ea65.docbook \ eyeboxone.docbook \ g15.docbook \ + glcd.docbook \ glcdlib.docbook \ glk.docbook \ hd44780.docbook \ diff --git a/docs/lcdproc-user/drivers/glcd.docbook b/docs/lcdproc-user/drivers/glcd.docbook new file mode 100644 index 0000000..c7eb3a0 --- /dev/null +++ b/docs/lcdproc-user/drivers/glcd.docbook @@ -0,0 +1,278 @@ + + + + Markus + Dolze + + +The glcd Driver + + +The glcd driver (graphic lcd) driver is a "meta driver" that renders text for +display on graphic displays. It uses either a built-in 5x8 font (the same as +used in elsewhere in LCDproc) or Freetype 2 to draw the characters and icons +into an internal frame buffer. That frame buffer is then copied to the display +by a small sub-driver called connection type driver (CT-driver). + + + +LCDproc is compiled with FreeType support by default if it is installed on your +system. + + + +Connections + + +Connection type t6963 +TBD + + + +Connection type png +TBD + + + +Connection type serdisplib +TBD + + + + + + +Configuration in LCDd.conf + + +[glcd] + + +Settings affecting all connection type drivers + + + ConnectionType = + { + t6963 | + png | + serdisplib + } + + + Specify which connection type to use. See + above for details. + + + + + + Size = ¶meters.size; + + + Specifies the size of the LCD in pixels. + Default: 128x64. + Maximum value supported: 640x480. + + The size in characters is automatically calculated from this value and the + CellSize value (see below) and cannot be configured. + + + + + + Contrast = + CONTRAST + + + Set the initial contrast (if supported by the connection type driver). + Legal values for CONTRAST are + 0 - 1000. + If not given, it defaults to 600. + + + + + + Brightness = + BRIGHTNESS + + + Set the initial brightness when the backlight is "on" (if supported by the + connection type driver). + Legal values are 0 - 1000. + If not given, it defaults to 800. + + + + + + OffBrightness = + BRIGHTNESS + + + Set the initial brightness when the backlight is set "off" (if supported by + the connection type driver). + Legal values are 0 - 1000. + If not given, it defaults to 100. + + + + + +Available parameters if compiled with FreeType support + + + useFT2 = ¶meters.yesdefno; + + + Tell whether to use FreeType2 or not. It is set to yes by + default. If turned off (set to no), the fixed internal + 5x8 font is used to draw characters and icons. + + + + + + normal_font = + FONTFILE + + + Set path to the font file to use, e.g. /usr/local/lib/X11/fonts/TTF/andalemo.ttf. + This option is required if FreeType 2 support is enabled, but it is not set + to any default value. A font with a fixed character width (monotype) is + strongly recommended. + + + + + + fontHasIcons = ¶meters.yesdefno; + + + Many fonts to not include the Unicode glyphs used for drawing icons. If this + option is set to no then the internal 5x8 font is used + even if FreeType is enabled. This option is on (yes) by + default. + + + + + + CellSize = ¶meters.size; + + + Specifies the size of the character cell in pixels. Characters will be + drawn within this cell. + Default: 6x8; minimum value 4x6; + maximum value: 24x32. + + + + + + + +Settings for the t6963 connection type + + + Port = + PORT + + + Specify the address of the parallel port the LCD is connected to. + Common values for PORT are 0x278, + 0x378 and 0x3BC. + If not given, the default is 0x378. + + + + + + bidirectional = ¶meters.yesdefno; + + + + Use parallel port in bi-directional mode. [default: yes; + legal: yes, no] + + + Most LPT ports can be used in bi-directional mode. It is required for + proper timing of the display. + + + + + + + delayBus = ¶meters.yesnodef; + + + + Use additional delay in read / write operations. [default: no; + legal: yes, no]. As the driver + implements busy checking usually no additional delays are required. + + + + + + +Settings for the serdisplib connection type + + + serdisp_name = + NAME + + + This is the name or alias to select a display driver in the serdisplib + library. As there is not default value setting this option is mandatory. + + + + + + serdisp_device = + DEVICE + + + Set the device to use. Unlike elsewhere in LCDd.conf + this is a device description understood by serdisplib. As there is not + default value setting this option is mandatory. + + + + + + serdisp_options = + OPTIONS + + + OPTIONS is a serdisplib option string, which is + a list of semicolon separated key / value pairs. Use this to pass any + additional options to serdisplib, e.g. wiring or rotation settings. + + + As the value will contain equal signs the whole OPTIONS + value must be enclosed in double quotes. + The display width and height are always set using the values from the + glcd driver (see above). Any width / height values set in the option string + will be ignored. + + + + + + + + diff --git a/docs/lcdproc-user/drivers/hd44780.docbook b/docs/lcdproc-user/drivers/hd44780.docbook index 134a558..64ee7f1 100644 --- a/docs/lcdproc-user/drivers/hd44780.docbook +++ b/docs/lcdproc-user/drivers/hd44780.docbook @@ -2978,7 +2978,7 @@ This can be done by specifying or by inclu Set the initial off-brightness, i.e. the brightness when the backlight is off, for the lcd2usb connection type. - The ilegal range is 0 - 1000. + The legal range is 0 - 1000. If not given, it defaults to 300. diff --git a/docs/lcdproc-user/lcdproc-user.docbook b/docs/lcdproc-user/lcdproc-user.docbook index af5c599..d23716f 100644 --- a/docs/lcdproc-user/lcdproc-user.docbook +++ b/docs/lcdproc-user/lcdproc-user.docbook @@ -22,6 +22,7 @@ + diff --git a/server/drivers/glcd-low.h b/server/drivers/glcd-low.h index c333074..638da5f 100644 --- a/server/drivers/glcd-low.h +++ b/server/drivers/glcd-low.h @@ -77,7 +77,7 @@ typedef struct hwDependentFns { * function actually decides about the format of the framebuffer. Using this * implementation (0,0) is top left and bytes contain pixels from left to right. * - * \param p Pointer to driver's private data. + * \param fb Pointer to framebuffer * \param x X-position * \param y Y-position * \param color Pixel color: 1 = set (black), 0 = not set (blank/white) @@ -104,9 +104,9 @@ fb_draw_pixel(struct glcd_framebuf *fb, int x, int y, int color) /** * Get color value of one pixel from the framebuffer. * - * \param p Pointer to driver's private data. - * \param x X-position - * \param y Y-position + * \param fb Pointer to framebuffer + * \param x X-position + * \param y Y-position * \return Pixel color: 1 = set (black), 0 = not set (blank/white) */ static inline int diff --git a/server/drivers/glcd-render.c b/server/drivers/glcd-render.c index 46045d4..156ee70 100644 --- a/server/drivers/glcd-render.c +++ b/server/drivers/glcd-render.c @@ -1,5 +1,7 @@ /** \file server/drivers/glcd-render.c * Render glyphs to a framebuffer using FreeType2 or fixed 5x8 font. + * + * \todo Add character encoding option. */ /*- diff --git a/server/drivers/glcd-t6963.c b/server/drivers/glcd-t6963.c index 94519a3..130637e 100644 --- a/server/drivers/glcd-t6963.c +++ b/server/drivers/glcd-t6963.c @@ -10,7 +10,6 @@ * Copyright (c) 2011 Markus Dolze, based on the t6963 driver by * 2001 Manuel Stahl * - * * This file is released under the GNU General Public License. Refer to the * COPYING file distributed with this package. */ @@ -34,6 +33,7 @@ static void t6963_graphic_clear(PrivateData *p); void glcd_t6963_blit(PrivateData *p); void glcd_t6963_close(PrivateData *p); +/** Data local to the t6963 connection type */ typedef struct glcd_t6963_data { unsigned char *backingstore; /**< backing buffer */ T6963_port *port_config; /**< parallel port configuration */