library 'serdisplib' Revision History
-------------------------------------
2017-02-04: v 2.01 (supersedes both v1.97.x and v1.98.x)
- API-enhancements
* new function serdisp_defaultdevice(displayname): returns default device identifier for given display name
this function renders setting of device expressions unnecessary in most cases
(testserdisp -n sdl -p out: can now be simply entered as testserdisp -n sdl)
- new displays / drivers / features:
* SDC-Megtron USB-displays 240x128
* output to an SDL window
* Electronic Assembly EA KIT128-GXT (via serial port)
* Omaura OLED (via serial port)
* DG-16080 160x80
* DG-16080-11 160x80 (non-square pixels)
* displays driven by USB13700 USB module
* Bolymin BL160128A colour OLED 18bit
* 4DOLED-282815 colour OLED 18bit
* Linux4Media L4M-2.8T320LCD USB LCD 320 Touch
* Framebuffer device
* GLCD2USB based device
* experimental driver 'remote' (use configure-option --enable-experimental to enable)
* support for mouse/touch events (SDL, L4M320T, framebuffer, displaylink)
* added tool for generating touchscreen calibration info (framebuffer, displaylink)
* added udev-rules file with rules for displays supported by serdisplib
- linking
* option to compile library with libdl-support (libSDL, libusb, and libpthread are not linked to the library but loaded at runtime)
* SONAME pattern matching added for maximum linux distribution compatibility (no more need for installed libusb-dev(el))
* dynamic loading can be turned of with configure-option --disable-dynloading
* compiling
* compile option added to only build library without any tools (--disable-tools)
* support for RPi and RPi2 (Raspberry 1-3) including cross-compiling (via environment variable $PROJECT)
- drivers: enhancements / bug-removal
* framebuffer: support for 'ugly' damage reporting (write '\n' to framebuffer device)
- deprecated:
* driver displaylink is deprecated (use configure-option --enable-deprecated to reactivate it)
* bug fixes and much more (see SVN log for full history)
2011-03-20: parallel development of branches v1.98 and v1.97.x (since v1.97.2)
- workaround: serdisp_connect.h, struct serdisp_CONN_s {}
* qt (moc) has problems with field signals[] (because of name-clash)
-> workaround: field signals[] is wrapped into an #ifndef __cplusplus
-> lcdbuilder (lcdbuilder.sf.net) should no longer have problems with this issue
- API-enhancements / bug-removals / library enhancements
* new function serdisp_isdisplay(displayname): returns 1, if a certain display name is supported
* new function serdisp_nextstaticoptiondesc(displayname, &optiondesc):
this function provides the same functionality as serdisp_nextoptiondescription() but the display is
identified by its textual name.
the function may be used for retrieving the options provided by a display _without_ the need of a
connected and initialised display (eg. for GUI-applications)
* sdtools_generic_get/setpixel() were extended to be usable for depth = {1,2,4,8,12,16}
* serdisp_control.c now also manages to allocate space for depth >= 8 if not set in driver (needed for remote)
* macros sd_error() and sd_debug() are now wrapped in a block (thanks to maf for this hint)
* serdisp_nextoptiondescription() didn't free resources -> fixed
* graphlcd-plugin (vdr) should no longer crash if usb-based display is removed
* serdisp_fullreset() now does reset in a more intelligent way
* serdisp_connect_usb(): commit bug in IOW24-part of SDCONNusb_write() fixed
* serdisp_tools.c: corrected bug in sdtools_strncpy() when force-setting string termination
* all index()-occurences are replaced through strchr()
* support added for pkgconfig
* use doxygen for documentation of code and API
* command processor added which is used in testserdisp.
can also be used via telnet from 'outside' (if supported by specific driver)
- drivers: enhancements / bug-removal / new ones
* n3510i: corrected problem with empty struct (initialising failed because of this issue)
* n3510i: corrected update problem: now no more pixels should be missing when using usb
* sed133x: improved clock-cycles from 4 to 3 steps
* l4m320t: support added for 'digital devices usb lcd 320 touch' a.k.a l4m320t-displays (including support for touchpad)
* l4m320t, l4m132c: added additional alias for 'alarmdays': 'alday'
* l4m320t: support for new vendorID
* l4m320t: added option 'alarmmode'
* framebuffer: generic framebuffer support added (including different ways for damage reporting). linux only!
* displaylink: generic displaylink device support added (via libdlo), but framebuffer-driver + udlfb
should be used instead because development for libdlo seems to be dead and libdlo is not stable enough.
- tools:
* l4m320t_tool: tool for l4m320t devices: firmware updates, change bootlogos, set alarms, calibrate touchscreen
* l4m132c_tool: tool for l4m132c devices: change bootlogo, set alarms, set time, change contrast
* sdcmegtron_tool: tool for sdcmegtron devices: change bootlogo, change brightness
- code-beautifying
* all driver-routines except serdisp_*_setup() are no longer visible outside the driver (seen at maf's code)
* because of this, all serdisp_specific_*.h have been removed. all serdisp_*_setup() prototypes can now be
found in serdisp_control.h
* removed code-duplication from serdisp_specific_sed153x.c
- linking
* libusb is no longer required at linking time.
for usb-support only the header files from libusb are required at compile time
* all extra libraries like libpthread, libusb, ... are now loaded at runtime by dlopen() (libdl)
-> when using linux all programs that statically link serdisplib are required to link to libdl
- introducing support for GPIs and GPOs
GPIs: general purpose input (e.g.: touchpad events, IR-events, buttons)
GPOs: general purpose output (e.g.: extra symbols, LEDs)
- client / server enhancements (only available if configure is called with --enable-experimental):
* new display driver 'remote', contributed by maf
* serdispd: server daemon, controls >= 1 displays, contributed by maf
data is exchanged via internet using serdisplib driver 'remote'
* lirc-support for c't-includ-display - contributed by maf
serdisplearn, serdispproxy: generate lirc-compliants events (c't-include)
- all changes that were forgotten ...
HISTORY for parallel development of version 1.97.x since v1.97.2 and development branch of v1.98.x
2010-02-21: v 1.97.9 (= SVN r286)
- enhancements / bug-removal / changes
* testserdisp.c:
-> w/h info in test-pattern 'test' may now display up to 4 digits
-> new test patterns for displaying gradients:
'gradient': display four gradient bars (black to white / red / green / blue)
'gradient R', 'gradient G', 'gradient B': red/green/blue gradient
'gradient r', 'gradient g', 'gradient b': ditto, but different algorithm
* new options:
-> DSPAREAWIDTH, DSPAREAHEIGHT (both optional): user definable display area dimension
(used for calculating aspect ratio)
-> BRIGHTNESS (values: 0 (dark) to 100 (full brightness))
(for all displays/modules with support for 'CONTRAST')
* output device:
-> usb: additionally accept textual device names like "FTDI/DLP2232M" (additionally to "0x403/0x6010")
-> usb: support for protocol differentiation (e.g.: USB@SPI) added.
(better differentiation between 'connection types' and 'protocols' in code and messages,
removed 'USBSPI' as connection type ('USB@SPI' now to be used instead))
* serdisp_control.c:
-> additionally accept hexadecimal values for options (if starting with 0x or 0X)
-> support added for additional (optional) field 'mid_contrast':
(to be able to use a power function based calculation of the contrast values)
* serdisp_colour.c / serdisp_tools.c / serdisp_control.c:
-> added functions, support, and enhancements for colour depths 18 (RGB666), 24, and 32
-> bugfix for macro SD_CS_ISGREY()
* serdisp_tools.c:
-> support for calculating bounding boxes added (sdtools_calc_bbox())
-> support for simple libm-independend replacements for log(), exp(), and pow()
- enhancements to ./configure and Makefiles
* new option --enable-libSDL: enable driver 'directgfx' / SDL-output
* cleaner linking (only link shared objects that are really required)
* removed many bumps that caused problems with opensolaris and freebsd/pcbsd
* many cleanups
- display driver bug-removal and enhancements
* alphacool:
-> usb initialisation problem (every 2nd start no output) solved
(but a minor problem where de-initialisation may last some seconds remains)
* n6100/s1d15g10:
-> initialisation/resetting of scrolling commands added
* l4m132c: added support for
-> depth=1 (faster output)
-> setting of fore/background colours (when using depth=1)
-> resolution mode 128x64 (spare pixels are then used for visual IR signal confirmation)
-> setting of alarm time (only if supported by firmware of module)
- new displays/controllers:
* USB13700-module support
* new driver 'directgfx' with support for SDL-output
* LC7981-based displays (so far: DG-16080 series)
* BL160128A added to ssdoled.c: Bolymin BL160128A colour OLED, 160x128, 18bit
* 4DOLED282815 added to ssdoled.c: 4DOLED-282815 colour OLED, 128x128, 18bit
- new tools
* l4m132c_tool (standalone tool for l4m132c modules):
-> change bootlogo
-> set alarm time / alarm days
-> set module time
-> change contrast/brightness
* sdcmegtron_tool (standalone tool for sdcmegtron modules):
-> change bootlogo
-> save screenshot
-> change brightness
- many cleanups and small bugfixes (eg: enforcing/fixing scope visibility limits)
* see SVN revision log for detailed information
2008-07-31: v1.97.8
- enhancements / bug-removal / changes
* testserdisp.c: changed starting point of moving box in pattern #6
* bitbake file is now created automatically using PACKAGE_VERSION
* serdisp_control.c: serdisp_clear() is now customisable by the driver
(to be able to support 'clear' commands)
* testserdisp.c: new test pattern 'gshade' (draws a grey level pattern)
* testserdisp.c: new test pattern 'rgbtest' (draws a test pattern (RGB/CMYK) for colour displays)
* testserdisp.c: pattern 'p 6' now draws coloured bars in the background on colour displays
* testserdisp.c: commands 'sl' and 'sr' no longer crash on erraneous input
* testserdisp.c: pattern 'p 0' now draws coloured digits on colour displays
* serdisp_connect_usb.c: claiming of interface now immediately after usb_open()
* added conversion functions for internal/external represenation of contrast and rotation value
- enhancements to ./configure
* drivers are now (de)selectable using --with-drivers=driver1,driver2 or
--with-drivers=all,!unwanteddriver1,!unwanteddriver2
* new option --enable-statictools (default = yes)
links testserdisp and multidisplay statically to libserdisp.a (if ==no: dynamically to libserdisp.so)
- display driver bug-removal and enhancements
* nokcol driver:
-> added 12bit colour modus for S1D15G10-based displays (wow, that was a pain in the a...)
-> corrected incorrect setting of contrast for S1D15G10-based displays
* FTDI support
-> enhanced and enabled support for FTDI 2232 and 245 modules
(for drivers supporting streaming and if the display/controller is connected to the parallel port)
-> two modes are supported for now: SPI (8 and 9bit) and direct IO (up to 8 signal lines)
* t6963 driver
added new item 'scrbuf_bits_used' to struct 'serdisp_s'.
'scrbuf_bits_used' replaces field 'fontwidth' which has been removed.
* l4m driver
added support for colour display modules 132x65
interfaces are no longer hard-wired but now auto-detected
* sed153x driver
removed nasty typo (introduced in 1.97.5 and undiscovered since then) which rendered
- Alps LSU7S1011A display modules and
- Optrex 323 display modules
unusable when connected using default wiring
* sed133x driver
initialisation rewritten
- now bigger panels should work
- dual panel displays are now supported (untested)
support for s1d13700-based displays added
* ks0108 driver
inverted EN-signal when connected to parport -> improved signal quality (thanks to Alexey Martynov)
* removal of code-redundancy
-> drivers lh155, nokcol, sed133x, and t6963 now use generic set/getpixel_greyhoriz from serdisp_tools.c
- new displays/controllers:
* goldelox support for displays that are driven by the GOLDELOX-MD1 module
* stv8105 for Osram Pictiva OLED 256x64
* Digital Devices 132x65 colour display module
* S1D13700-based displays (added to sed133x-driver)
* Ericsson T65 (pinout and controller compliant to Ericsson R520)
2007-10-08: v1.97.7 (= SVN rev.15)
- enhancements / bug-removal
* serdisp_connect_usb.c:
move interface-claiming part into separate function and do the claiming stuff not until the end
of SDCONNusb_open() - now alphacool usb-display works fine with solaris10 and init-problems seem
to be fixed
* serdisp_connect.h:
small hack for c++-based projects: hide label of field 'signals' in struct serdisp_CONN_s
(the library will/should always be compiled with gcc, so this hack shouldn't lead to any problems)
* fixed erraneous pinouts in PINOUTS (S1D15G10-based displays and PCF8511)
- some preparations for re-merging 1.97.x-tree with devel-tree
- changes in bitbake file for openembedded linux
* added do_stage()-section
* minor changes
- display driver bug-removal and enhancements
* ssdoled driver:
-> fixed min/max-contrast settings for Osram Pictiva 128X64 OLED 4bit
* nokcol driver:
-> x/y startpos offset now variable through options OFFSETX and OFFSETY:
Abhishek uses shiftx=0 and shifty=2; my displays use 1/1.
so i made both offset settings variable (default: OFFSETX=1;OFFSETY=1)
- new displays/controllers:
* linux4media L4M-5Ei usb-device (libusb and ioctl/hiddev)
(cool usb-display with IR-sensor that connects as HID-device that is working out of the box when
using linux)
* alphacool 200x64 and 240x128 usb displays (libusb)
2007-07-31: v1.97.6 (2nd driver backport release)
- fixed potential linking problem in src/Makefile (thanks to Bernhard Walle):
libserdisp.so is now linked against libusb (if --enable-libusb is set)
- enhancements / bug-removal
* serdisp_tools.c: corrected bug in sdtools_strncpy() when force-setting string termination
* serdisp_tools.c: sdtools_generic_get/setpixel() now capable of depth = {1,2,4,8,12,16}
* serdisp_tools.c: get/setpixel-routines for displays with horizontal bit-orders added
* serdisp_colour.c: colour routines added, support for handling of self emitting displays (eg. OLEDs)
* testserdisp.c: support for OLED-displays (inverse handling of default foreground/background colour)
* testserdisp.c: 'test' now displays a colour/greyscale test image if applicable.
to force a black/white test image, 'bwtest' should be used
to force a greyscale or colour test image, 'ctest' should be used
- extended display support
* nokcol driver:
-> added support for S1D15G10-based displays (green connector, nokia 6100 and co. (130x130 colour displays)
contributed by Abhishek Dutta
-> driver now uses generic sdtools_generic_get/setpixel() functions
* PCD8544 driver:
-> added support for PCF8511-based displays (nokia 5310, 6310)
contributed by Jeroen Domburg
- backported the following displays/controllers (from current devel version):
* Osram Pictiva 96X36 OLED 1bit, 1", monochrome
* Osram Pictiva 96X64 OLED 16bit, 1", colour
* Osram Pictiva 128X64 OLED 4bit, 2.7", greyscale
- some countless minor changes / code beautifyings
2007-03-07: v1.97.5 (driver backport release)
- adapted some driver specs to current devel version
(following to this all serdisp_specific_*.h were now obsolete and have been removed)
- backported the following displays/controllers (from current devel version):
* lh155-based displays (eg. Sharp M078CKA 240x64) - only 8080-mode supported for now
* E08552 96x32 1bit (controller SED1530)
* enhanced t6963-driver:
-> includes support for parallel-to-serial converters found in some t6963c-based display modules
-> support for switchable background light (RD-signal no longer available thus ready-check no longer available when
using this mode!)
* slightly fastened sed133x-driver: improved clock-cycles from 4 to 3 steps
2007-02-22: v1.97.4 (very small interim error fix release)
- bug removal in ctinclud drawing routines
- bug removal in serdisp_messges.h: fixed missing bracketings in some defines
- bug removal in src/Makefile.in: LIB_NAME=libserdip -> LIB_NAME=serdisp (the former resulted in liblibserdisp.so... )
- serdisp.spec: dependency changed from libusb to libusb-devel
- version information in serdisp_control.h now generated using configure
2007-02-11: v1.97.3 (very small interim error fix release)
- bug removal in n3510i-driver
(descripted here: http://sourceforge.net/tracker/index.php?func=detail&aid=1522810&group_id=98249&atid=620440)
allocating an empty struct caused n3510i to fail because of sdtools_malloc() returning 0
HISTORY until version v1.97.2
2006-04-02: v1.97.2 (interim problem solve release)
- bug(?)/problem removal
* usb_bulk_read() causes some problems on certain linux-versions: replaced through usb_clear_halt()
(usb_bulk_read() would be the right way to go, but it may cause big problems (no clue why...))
* $(TARGET_LDFLAGS) included in Makefiles (for cross-compiling)
2006-03-27: v1.97
- bug removal
* serdisp_connect.c:
section linux-includes: include sys/io.h only if directIO is supported
(otherwise useless or even leading to comp. errors) - thanks to Christoph Haderer for pointing this out
bugs removed in SD_CS_IS_*: | was used instead of &
* serdisp_specific_sed133x.c:
added an extra NOP at the end of the update-function to avoid erraneous pixels when releasing the parallel port
* multidisplay
corrected a bug resulting in a wrong background colour when in dithering mode (since v.1.96)
- enhancements
* a SONAME is now set in libserdisp (enabled only when using linux)
* additional functions SDCONN_writedelay() and SDCONN_commit() in serdisp_connect.c
* serdisp_nokcol.c: set min/max_contrast borders to useful values for n3510i/n3530
* serdisp_connect.c: new signal aliasnames: AD0-AD7, BD0-BD7 (BD4-BD7 for usb devices only)
* serdisp_specific_ed156x.c: changes to enable generic backlight support
* enhanced accuracy for serdisp_ARGB2GREY(): using (77*r + 150*g + 28*b) / 255 instead of (30*r + 59*g + 11*b) / 100.
thanks to Michael Reinelt (maintainer of lcd4linux) for pointing this out
* new connection type: SERDISPCONNTYPE_IOW24: for c't includ display using iowarrior kernel module by codemercs
* USB support via libusb (for now: IO Warrior 24 / c't includ display) -
disabled by default (see README for additional info)
- new displays supported
* ericsson r520 displays (101x67, 4 grey levels, i2c. thanks to z01 from lcdinfo-forum for tracing the i2c-traffic)
* ks0108-based displays (up to 4 controllers, > 2 controllers when using a multiplexer)
* c't includ usb-display (ks0108/io warrior 24-based - www.includ.de)
- multidisplay
* removed option -l (threshhold level) because it was useless anyways
(since some changes in the floyd steinberg algorithm)
* new option -S (scaling algorithm)
* animation support (new option -L <loops>)
* graphlcd's .glcd-images supported (single and animated)
* multiple image-file support for -f (note that -f should be the last parameter)
if more than one image file is given for -f, a slideshow will be done by multidisplay
- architecture support
* linux/mips successfully runs serdisplib. tested by Christoph Haderer (on his Asus WL-500G router).
he also created a serdisplib package for openwrt (http://www.openwrt.org)
- limitations:
* usb support (libusb) is not working with solaris and freebsd at the moment
(solaris: unsolved problems with rights for interface 1)
- postponed to next release v1.98:
* GPOs (general purpose objects), eg. symbols, leds, ... that are supported by certain displays
* generic FTDI support
(it is working, but some things are still missing and the whole implementation is not tested very well.
so support for FTDI-chips has been disabled in this release)
2005-10-19: v1.96
- many internal changes (again and again):
* replaced disp_code through disp_id. disp_id is no longer a unique code but a id used within a driver to differ
display types supported by the driver
* removed all display codes (from now on distinguishing between displays using the display name or an alias name)
* cleaned up source tree
* enabled serdisplib for autoconf (not 100% perfect for now, but working quite fine - tested on linux and solaris)
* removed PPEXCL when connecting to the parallel port because that caused problems with lp-based programs connected
to another parallel port (thanks to Michael Reinelt)
* replaced dd->curr_reverse / dd->feature_reverse / FEATURE_REVERSE through
dd->curr_invert / dd->feature_invert / FEATURE_INVERT to avoid two names for the same thing
(to guarantee backward compatibility: FEATURE_REVERSE is now a define to FEATURE_INVERT)
* serdisp_reset() rewritten. now this function only does a display reset (device reset broke this function sometimes).
to do a full reset of device and display use:
* serdisp_fullreset(): does a full reset of the device, display, and contrast.
if resetting was successful a new display descriptor is returned.
- deprecated functions / routines:
* serdisp_feature() is now deprecated (superseded by serdisp_setopion())
- new functions / routines:
* serdisp_getoption(), serdisp_setoption(), serdisp_isoption(),
serdisp_getoptiondescription(), serdisp_nextoptiondescription() .. get/set/query options
* serdisp_getdisplayname(), serdisp_isdisplay(), serdisp_getdisplaydescription(),
serdisp_nextdisplaydescription(), serdisp_currdisplaydescription() .. query display informations / settings
* serdisp_transcolour(), serdisp_transgrey(), .. hardware independend colour info to hw dependend format
serdisp_lookupcolour(), serdisp_lookupgrey() .. hardware dependend colour info to independend format
- new defines / macros:
* SERDISP_VERSION_GET_MAJOR(versioncode) and SERDISP_VERSION_GET_MINOR(versioncode)
* sd_getdebuglevel(), sd_setdebuglevel() .. get/set the debug level
* sd_setlogmedium() .. set the medium where to output debugging information
- new display category: colour displays
- new displays supported:
* nokia 3510i / 3530 colour displays (98x67, 256 or 4096 colours)
* lph7508 displays (100x64 monochrome; using display module kit by pollin)
* Hyundai HP12542R displays (128x64 monochrome; using display module kit by pollin) - thanks to cypher_head, I30R6
- testserdisp and multidisplay
* version information (new option -V)
* extended help showing supported displays and display information
* testserdisp now only shows interactive commands that are supported by the active display when entering 'help'
* testserdisp: new interactive commands 'i' / 'info' and 'fg' (enter 'help' for more information)
* multidisplay: fixed bug in option -B (backlight on/off)
- .spec file included for generating RPMs for RedHat/Fedora-based distributions (see README for further informations)
2005-05-10: v1.95
- bug removal:
* setpixels()
erraneous loop-calculations corrected (reported by anonymous person at sourceforge bug forum)
* strncpy-calls replaced through sdtools_strncpy using a workaorund to avoid strncpy-bugs
strlcpy is used on solaris to avoid strange behaviour of strncpy when n < 4
there also seems to be a problem on linux with strncpy ...
* corrected a bug in serdisp_blink() - now all displays should be able to blink (by inverting the screen)
- many internal changes
* dd now stores colour depth instead of amount of colours
* restricted colour depth to a maximum of 8 (may be extended in the future.
at the moment, only colour depth 1 is used anyways)
* logical to physical x/y positions are calculated using relocation tables; thus the following was possible:
- driver specific get/setpixel functions were replaced through generic set/getpixel functions
- optrex 323 support is now accomplished by sed1530 driver
(sed1530 and sed1531 (used by optrex 323) are using the same command set and protocol)
new name of module: serdisp_specific_sed153x.c|h
* memset instead of loops for serdisp_clearbuffer() and serdisp_rewrite()
* many unlisted internal enhancements and code-beautifyings
* setpixel()/getpixel(): type change
parameter 'colour' changed from int to long, getpixel returns now long instead of int
(recompilation the whole stuff should do it. on 32-bit machines, int and long are both 4 byte)
background: long is always 4 bytes, int is not (16-bit architectures: 2 byte, 32-bit: 4 byte)
- 90 and 270 degree rotations added
* now displays may be rotated 0, 90, 180, and 270 degrees
eg: a 96x65 display may be used as a 65x96 display if rotated 90 or 270 degrees
NOTA BENE: dd->height and dd->width will always return unrotated height and width,
use serdisp_getwidth(dd) and serdisp_getheight(dd) to get width and heigth when display is rotated.
- customisable wirings and options (key-value pairs separated by semi-colons)
* serdisp_init() now understands key-value pairs which may contain options (eg. INVERT=YES) and wiring definitions
* enhanced serdisp_connect.c which now also supports parallel displays and reading from the parallel port
(thanks to Andreas 'powARman' Regel for helping me find and eliminate mistakes)
* renamed serdisp_conntype_s.conncode to serdisp_conntype_s.conntype
(defines now are called "CONNTYPE" and not longer "CONNCODE")
- new methods for serdisp_control
* serdisp_getpixelaspect()
get pixel aspect ratio (useful for displays with non-quadratic pixels)
* serdisp_getdepth()
get colour depth
* serdisp_getversioncode()
get version code of serdisplib
- testserdisp
* time measuring (ts=1)
* setpixel()/getpixel() replaced through more generic setcolour()/getcolour
- new displays supported: (serdisplib goes parallel!)
* Toshiba TLX-1391 (128x128)
* generic T6963-display support (default resolution: 240x128)
(thanks to Andreas 'powARman' Regel for testing generic support using his 240x128 display)
* SED 1330/1335-based displays
* nec 21a ("skyper") display module support (sed1561)
* lph7690 display (look at 'pcd8544 driver enhancements' below)
- operating systems and compiler support:
* support added for solaris 10 (ecpp only). tested on solaris 10 x86
* support for *BSD suspended due to lack of interest (will be resumed if someone finally tests it)
* tested with gcc 2.96, gcc 3.x, and gcc 4.0
* pointer operations are all 64-bit aware
- pcd8544 driver enhancements (driver now supports pcd8544 and compliant command sets):
* unused signal CS removed (circuits, descriptions, ... have been adapted, too)
* added support for lph7690-displays (found in nokia 6210/6310 and others). resolution: 96x60
- new tool 'multidisplay'
* displays pictures (jpg, png for the moment)
auto-scaling and auto-pixel aspect ratio correction
* displays messages or files
* displays variable command output
* picture may be set as background for text output
* libgd used for picture processing and generating text-output
-> 5 built-in fonts
-> support for truetype fonts
2004-07-22: v1.94
- new display supported:
* ALPS LSU7S1011A, controller SED1530 (sold by pollin.de)
- start with some internal aggregation and enhancements
2004-07-18: v1.93
- serdisplib: version info:
* SERDISP_VERSION_MAJOR, SERDISP_VERSION_MINOR:
major and minor version number of currently installed serdisplib
* SERDISP_VERSION_CODE: version code of currently installed serdisplib
* SERDISP_VERSION(a,b): calculates a SERDISP_VERSION_CODE
eg: #if SERDISP_VERSION_CODE < SERDISP_VERSION(1,93)
if (SERDISP_VERSION_CODE >= SERDISP_VERSION(1,92)) ....
- serdisplib: beautifying:
* code beautifying and removing warnings in all modules
* replaced fprintf()-messages through sd_debug() and sd_error() which use syslog()
sd_error() also sets an error string (sd_errmsg) which can be used for own error messages
* sd_runtime_error() returns whether a runtime error occured (eg: ioctl-commands where unsuccessful)
- new display type supported: i2c-displays
* ericsson t2x displays (eg: t28) (101x33 pixels)
- new output device supported:
* serial port (only for i2c-displays),
either ioctl (eg: /dev/ttyS0) or direct-IO (eg: 0x3f8)
- serdisp_control: new / changed functions:
* serdisp_getSDCONN(): get serdisp connect descriptor
* serdisp_reset(): resets display (resets sd_runtime_error() and tries to re-init output device)
* serdisp_quit(): release output device and close display
* serdisp_close(): release output device but do NOT clear and close display
(this may be used for example for programs that display a message and quit)
ATTENTION: this does NOT work with serial port in combination with ioctl!
(serial port in combination with direcct-IO works as expected)
- serdisp_control: new elements in display descriptor
* delay: how many nanoseconds to delay after each write-operation
* connection_types: which connection types (parport, serport, ..) are supported by display
- serdisp_specific_*.c
* corrected bug in serdisp_feature(): FEATURE_ROTATE now works as expected
- changes to api:
* in the future, more output devices will be supported
(besides parport and since this release serport for i2c)
thus serdisp_parport.h, PP_open, PP_close and PP_write where replaced through
serdisp_connect.h, SDCONN_open, SDCONN_close and SDCONN_write.
also the descriptor serdisp_PP_t was renamed to serdisp_CONN_t
for backward compatibility serdisp_parport.h is still existing and contains defines
that resemble the old names (but it is recommended to only use serdisp_connect.h)
no display descriptor fields should be accessed directly. so ONLY serdisp_close() or
serdisp_quit() should be used for shutting down the output device (no more SDCONN_close(dd->sdcd);)
* SDCONN_read will be used for reading data from the output device (eg: i2c acknowledge bit)
- testserdisp
* better/corrected error messages, printing of usage
* some cleaning up
* additional parameters (type 'help' at the prompt)
* test picture is now generated, no more *.xbm are needed
* test picture now displayed after starting testserdisp
* some more/changed/better test patterns
- serdisp_specific_optrex323.c
* #define OPT_MRPROPER no longer activated -> speedup (in some cases enormous speedup)
(if you face faulty pixels at the two unused borders, please reactivate)
- Makefile
* mkdir -p now used for recursively creating $(DRIVERINCLUDE_PATH)/serdisplib
(thanks to Alan Carvalho for this hint)
- serdisplib now compiles under the following operating systems:
* linux (compiles and tested with kernel 2.4.x and 2.6.x)
* freebsd (compiles, but not tested; only ioctl for now)
* openbsd (compiles, but not tested; only ioctl for now)
* netbsd (should compile, could not verify)
2004-03-22: v1.92
- changed version numbering back from beta to number format
- removed common history information from source file
history information can now be found here
- new: serdisp_tools. will contain handy functions
sdtools_genericrotate ... (unoptimised) rotation of display
will be unoptimised because it will be nearly
never used anyway
- changes to api:
* now both, direct outp and ioctl-calls are supported for writing to the
parport
instead of a filedesc ('int fd') a struct 'ppd' (parport descriptor)
is now used
(thus changed: PP_open, PP_close, PP_write, serdisp_init)
* additional parameter for serdisp_init: char extra[]
can be (char*)0, "" or additional settings (future use)
may contain settings like non-standard wiring, non standard dimensions, ...
- now more than 8 pages are supported for monochrome displays
- functions added:
serdisp_getpixel ... gets colour at position (x/y)
- version information added to serdisp_control.h
- two new fields in dd-struct: startxcol and startycol (needed for example by nokia 7110)
- new display/controller supported: nokia 7110 (or generic: controller sed1565)
"NOKIA7110" (96x65 nokia 7110 display)
"SED1565" (132x65 generic. don't use this with nokia7110, use string above)
- enhanced makefile
now both, static and shared library are built when 'make install'
include-files are now installed, too
- corrected minor bugs (typos, misleading comments, ... )
2004-02-04: v1.9b1
- corrected some typos
- tarball now unpacks into separate directory
2004-02-03: v1.9b: first release to the public
2004/Jan rewrite again. be more modular and generic
html-pages for serdisplib went into production (hardware, ...)
(http://serdisplib.sourceforge.net)
2003/Dec rewrite (support for new display class: += pcd8544-based ones)
2003/July start of library (only display: optrex 323)
library is used only as sub-system for graphlcd for now
former version were experimental w/o useful Makefile
and stuff like that (first functioning version: ~ july 2003)