Wish List
If you have an idea what should be implemented in lcd4linux, this is the right place for you! The very important development process step software design should happen here, too, so feel free to add any comments, corrections, whatever...
If you are a developer, and have some spare time, you're very welcome to pick up an item and work on it!
Constant file/command read/endless stdout reader
I am currently using vlc to play music, and use the logger interface to ouput Streaming Radio/Icecast/Shoutcast info (Stream Name, Current Song) to a named pipe/pseudo terminal pair. To read and format the info, I use:
cat /dev/ptyu1 | fgrep --linbuffered -e "New Title" -e "Icy-Name" | > sed -e "/access_http debug:/s///" -e "/New Title=/s//Now Playing: /"
This is similar to:
tail -f /var/log/messages
Which gives me an output like this to stdout:
Icy-Name: : ampedOut : it's like a god's rubbing your tummy @ 128kbps Icy-Url: http://ampedOut.net Now Playing: Hanzel Und Gretyl - SS Deathstar Supergalactick Now Playing: Amduscia - Beyond The Darkness Now Playing: Inform?tik - Autonomous (Nothing Is Real Mi Now Playing: Funker Vogt - Nothing To Include Now Playing: Combichrist - this is my life
The current exec and file-read plugins do not allow for this type of continuous output. Reading the same info from nc would also be a problem.
Thinking about it, you would need to be able to run a command like above, continue to read stdout then do an internal comparison/grep, and depending on which grep matches, send that to the corresponding row/column/widget like:
exec(cat x | grep --line-buffered y | sed z) expression-1 (string to match,string/characters to leave out) expression-2 (string to match,string/characters to leave out) expression-n (string to match,string/characters to leave out)
where expression is passed to a subwidget (in this case textwidget), with n being the number of widgets that will use it)
Think of it as working with tail -f
-Geo
Functions
The evaluator can be extended with new functions by the use of plugins, which must be C code, compiled and linked. Sometimes it may be great if one could add simple functions in the lcd4linux.conf, using existing functions (think of it as subroutines).
Syntax could be the same as with variables:
Functions {
sqr arg1*arg1
dist sqrt(arg1*arg1+arg2*arg2)
}
These functions would always have a variable number of parameters, which can be accessed withing the function only as variables with ne name arg1, arg2, ...
- lirc plugin to use a remote and control a menu on the lcd
- switching and scrolling layouts - this would be a very nice feature
- fully support for G15 display!
- working icons ;)
- Keypad support =) <- 2006-02-27 in CVS !!! , with a plugin to allow you to read keypresses via python -> this would be very usefull
- graphical display support!? ;-)
- SED1330 Driver (Epson) support. Especially G2446 from Seiko Systems ;)
- ST7036 (Sitronix) support (already instruction compatible with HD44780). For DOG-M series of LCD-Modules.
- sequential changes of displaying informations ,10 sek. cpu temp, next 10 sek. cpu fan speed ,next 10 sek. free mem etc.
This could be achieved by introducing some kind of LayoutSet? configuration objects and adding a few options to a Layout:
Layout 20x4 { Row1 ... Row2 ... DisplayTime 5 } LayoutSet MySlideShow { DisplayTime 10 Layout1 20x4 Layout2 default }Where DisplayTime? defines how long a Layout should be displayed before we go to the next one. If a DisplayTime? variable has been defined within a LayoutSet? definition, it is used as a default value for all Layouts without such a definition.
- Also it would be cool, to pause and resume the automatic switching of the slide show via (LIRC) remote control. Or calling a predefined layout via a remote control key (menu function).
- It would be great if in interactive mode not only expressions could be evaluated but also some form of mini lcd control language would be possible:
linuxhost# lcd4linux -f /etc/lcd4linux.conf -i using raw port 0x378 (deprecated!) You *really* should change your setup and use ppdev! eval> clear OK eval> put 3,10 "Hello, World!" OK eval>
I'm currently trying to implement this but only time will tell if I can manage to add this to the interactive mode ...
D-Bus Support
D-Bus is a new IPC system for unices, providing App <-> App as well as App <-> OS communication. It seems like D-Bus will be widely used in upcoming KDE and Gnome versions (its a freedesktop.org spec).
It would be great to have D-Bus client support available (could probably be done as a plugin), allowing lcd4linux to poll information from D-Bus enabled applications. (Like getting the current playlist entry from a media player etc)
Also, acting as a D-Bus Server would make sense (but would be more work to implement), so Applications could push information to lcd4linux, even if the App runs as normal user, and the daemon runs with root privileges.
*Global Hotkeys like Strg+Shift+F3 to switch between the layouts would be nice.
HD61830 - Support
Driver for the Hitachi HD61830 chip
DataSheet? [http://pdf1.alldatasheet.com/datasheet-pdf/view/80248/HITACHI/HD61830A00H.html]
Sony PSOne lcd/ any small vga powered lcd
We need a driver for the powering of graphical lcd that are run by graphic cards via dvi or vga! pinouts here for vga: http://starfox.ucc.asn.au/carcomp/serio_lcd.htm http://www.bit-tech.net/modding/2004/07/07/psone_lcd/1 http://www.gearlive.com/index.php/news/article/how_to_psone_lcd_your_computer_05110831/
