GraphLCD base package Revision History -------------------------------------- 2011-05-01: branch touchcol, first commit - glcddrivers changes / enhancements: - support for colour bitmap data - support for colours either by using pre-defined colour names or 0xRRGGBB / 0xAARRGGBB (though no alpha channel is supported yet) - adapted/added methods SetScreen(), SetPixel()-methods in base-class and driver-classes for new colour enabled bitmap data - added support for events (supported for now: simple touch events) - added support for requesting and setting driver features - added GetBackgroundColor(), GetForegroundColor() -> gets default back/foreground colour - fixed compiler warnings (missing parameters in printf(), ...) - dm140glnk: bugfix: changed type for vendor and product to 'signed' - serdisp: - added support for touch events - cut support for serdisplib version < 1.95 (-> simplifies code) - added basic support for GPIs (eg. enable/disable touchpad) - rotate only when graphlcd-setup says so - UTF8 should work fine but is not tested very well yet - vdr 1.3.x should be supported as well but support for it is deprecated and will be removed (-> cleaner code) - glcdskin changes / enhancements: - improved update policies (update only display regions that require update) - w/o this displays like l4m320t would be unusable w/ graphlcd. - new objects / attributes / features for skins: - increased skin version to 1.1, version info is now verified before loading a skin - objects can now trigger actions (eg. when touching an object it may trigger a VDR 'Key'-event) - 'scrolltext' is deprecated and is now an aliases for 'text' - new object 'button' - new attribute 'valign': vertical alignment - attribute 'bgcolor': sets background colour for object (whereas 'color' sets foreground colour) - new attributes 'alttext' and 'altcondition' for object 'text' (if 'altcondition' is true, 'alttext' is evaluated and used) - scrolling/looping attributes for 'text': 'loop', 'scrollmode', 'scrollspeed', 'scrolltime' - new attribute 'default' for variables: shortcut for : this will actually be stored in two variable entries (exactly as in the first version) - new entity 'condblock': combines variables that use the same condition can now be simplified to attention: variable-definitions in a condblock must not contain condition-attributes. - XML parser: - parser method XmlParse() optionally may pass an error string - text-objects may now contain combinations of tokens, constants, and variables - evaluation of variables in text-objects is now delayed from parsing time to runtime - attention: 'condblock' and attributes 'alttext', 'altcondition' are case studies for now and may be removed - all changes/modifications/improvements that i've missed in this list 2010-04-23: version 0.1.6_1 - added additional wiring for GU256x64-372 driver (thanks to mentox, http://www.vdr-portal.de/board/thread.php?postid=895721#post895721) 2010-03-01: Version 0.1.6 - added LDFLAGS_diff in Makefiles for better combat - added gcc43-compat patch (include cstring.h/csdtlib.h) - added support for Futaba DM140 vfd - added support for option BRIGHTNESS (for graphlcd-dimming support); added correct intialisation for self-emitting displays (eg. OLEDs); added missing check for ancient serdisplib-version (mrwastl) 2007-02-25: Version 0.1.5 - added missing include path definition (thanks to Wolfgang Astleitner) - replaced unsigned long long with uint64_t - added missing includes - increased VER_MAJOR for glcdgraphics library as interface changed in an incompatible way (thanks to Tobias Grimm) - changed type of fbp (framebuffer pointer) to void*. Compare fbp against MAP_FAILED to test for success of mmap. This should fix a x86_64 compile error. - ks0108: clear data lines after display refresh to fix problems with display contrast that occur under some conditions. 2007-02-04: Version 0.1.4 - added missing include of stdint.h in several files - added -fPIC compiler option to library Makefiles - graphlcd.conf: added missing "Driver=serdisp" in serdisp section (thanks to Jörn Hermann) - graphlcd.conf: changed default value for sleep method to gettimeofday - glcdgraphics library changes: - Added cBitmap::DrawSlope function that draws a slope of the given type - added class for loading and saving PBM (portable bitmap) files - made loading of GLCD files platform independent (hopefully) - added copy constructor to cBitmap class - removed the friend class stuff from cImage, instead added some functions to set members - new class cImageFile that acts as a base class for image format load/save classes like cGLCDFile or cPBMFile - removed const qualifier from cImage::GetBitmap - added added Invert method to cBitmap - added methods to set font parameter (height, ascent, ...) to cFont class - made loading of FNT files platform independent (hopefully) - return false in cGLCDFile::Open and ::Save when opening of file failed - added trim function to cut leading and trailing spaces from strings - added WrapText method to cFont class - fixed missing last line in cFont::WrapText - fixed WrapText when Height is zero - fixed font loading bug for graphlcd's FNT format - fixed missing addition of spaceBetween in cFont::WrapText that caused too long lines with some fonts - fixed loading of GLCD animations (thanks to Malte Schröder) - glcddrivers library changes: - only config.h, driver.h and drivers.h are needed for applications - added driver for g15daemon (thanks to Mike) - added driver for noritake gu126x64D-K610A4 display (thanks to Alexander Rieger) - gu140x32: fix seqfault if fonts.conf missed (thanks to Andreas Brachold) - t6963c: added support for Serial wiring using an industry version with a serial to parallel converter (thanks to Torsten Lang) - avrctl: adapted to changed commands PC -> AVR - avrctl: implemented SetBrightness method - avrctl: changed type of some parameters to SetColData to uint16_t - avrctl: allow sizes below 256x128. Buffer sent to controller is still 256x128. - framebuffer: fixed compiler error on 64bit systems (thanks to Malte Schröder) - serdisp: updated serdisplib driver (thanks to Wolfgang Astleitner) - added simple network driver (not complete) that sends the current display content as and hey string to connected clients - link against libpthread - fixed some default values to be consistent with comments in graphlcd.conf - tools changes: - convpic: adapted to changes related to new base class cImageFile - convpic: use classes from glcdgraphics lib for glcd file conversion - convpic: added pbm support - crtfont: use cFont class methods to save in FNT format - genfont: use cFont class methods to load freetype2 supported fonts - genfont: use cFont class methods to save in FNT format - showpic: call SetBrightness method - showpic: changed setting of brightness to use value from config structure - new tool lcdtestpattern to display a test pattern on a LCD (thanks to Alexander Rieger) 2006-01-15: Version 0.1.3 - Added a major.minor.micro version to the libraries starting with 1.0.0 - Moved usage of DESTDIR from serveral Makefiles to Make.config (thanks to Lucian Muresan). - Moved Freetype2 dependency from Make.config to Makefile of libglcdgraphics (thanks to Tobias Grimm). - Creating an additional symlink for the library files to be found during making the tools that need them (thanks to Tobias Grimm). - Updated serdisplib driver (thanks to Wolfgang Astleitner). - KS0108 driver: Added an alternative way of setting the display control lines (same as in old versions). It is selectable through graphlcd configfile parameter "Control". - Using default values for width and height in case they are zero, too (thanks to Tobias Grimm). - Added cSerialPort class. - Added driver for my AVR controlled display. 2005-09-17: Version 0.1.2 - split off drivers from graphlcd plugin to GraphLCD driver library (libglcddrivers) - split off graphics and font handling from graphlcd plugin to GraphLCD graphics library (libglcdgraphics) - split off tools from graphlcd plugin to GraphLCD base package - almost completely rewritten graphics and font handling - added configuration file to hold the driver-specific options - changed driver interface - adopted the tools' code to use the new driver and graphics API - glcddrivers: new driver noritake800 for Noritake 800(A) series displays (thanks to Lucian Muresan) - glcdgraphics: fixed a NULL-pointer exception in cBitmap::DrawCharacter when skipPixels is equal to width of the character and SubBitmap returns NULL, which was not tested for (thanks to Malte Schröder for reporting this one) - glcdgraphics: fixed a wrong return value in cBitmap::DrawCharacter in case skipPixels > 0 which prevented scrolling from working right. - now compiles with gcc 2.95 and gcc 3.x - added missing #includes - new tool showtext: allows showing a text on the LCD, see README.showtext for details. - glcddrivers: fixed a too early port release in sed1330 driver (thanks to Matthias Huber) - glcddrivers: sed1330: added missing horizontal scrolling initialization. Now, there should be no displaced display any longer. (thanks to Wolfgang Astleitner) - glcddrivers: Now serdisplib is loaded dynamically using libdl. So, no INCLUDE_SERDISPLIB define is needed any longer (thanks to Wolfgang Astleitner) - glcddrivers: fixed gu256x64-3900 driver: Now sizes other than 256x64 should work. (thanks to Detlef Ruge and Ralf Müller) - glcdgraphics: fixed a bug in cBitmap::DrawText that prevented scrolling from working. - glcdgraphics: fixed a bug in cBitmap::SubBitmap. - glcdgraphics: changed the interface of DrawText and DrawCharacter of cBitmap class. - glcdgraphics: extended font attributes to better support converted true type fonts. Also changed font file format to support this attributes. - glcdgraphics: the lastChange attribute of cImage now is 64 bits wide. - crtfont: extended it to support the new font attributes - crtfont: changed file format of description files. Now the font attributes are given by its names, p. e. lineheight:20. Look in README.crtfont for details. - new tool genfont: allows converting of true type fonts to GraphLCD fonts using freetype2 library. You have to uncomment HAVE_FREETYPE2 in Make.config to use it. - added new fonts verdana and verdana bold in sizes 9 to 29 converted by genfont. - glcdgraphics: Added additional type casts to std::min calls to make it compile on x86-64 (thanks to Stefan Bergler). - glcddrivers: fixed a bug in serdisp.c. When using direct IO the port string was truncated (thanks to Stefan Bergler). - glcddrivers: Added method cConfig::GetConfigIndex for getting a configuration by its name (thanks to Lucian Muresan). - Added some $(DESTDIR) all over the Makefiles (thanks to Lucian Muresan). - glcddrivers: sed1330: Added setting of CS line in 6800 mode (thanks to Wolfgang Astleitner). - glcdgraphics: Added FreeType2 support based on patch by Lucian Muresan. - You have to set HAVE_FREETYPE2 in Make.config to enable this - Added some helper functions to GLCD::cFont class - glcddrivers: ks0108: Improved timings: Made setting of display control lines like defined in the controller's data sheet. This fixes problems with some display types. Thanks to Matthias Breitbach for providing a LCD of that type. - glcddrivers: gu256x64-3900: - Corrected calculation of m_nTimingAdjustCmd. - Added a test for RefreshDisplay config value to prevent a floating point exception to occur when it is set to zero.