[LINUX] lcdproc client using imon lcd special icon set
#1
Hi all.

I own a new imon ir/lcd module distributed as oem in many htpc cases like zalman hd-160 Plus, Antec or many others one.


It's a graphic lcd with true pixels, not characters matrix like vfd.

It's a 96x16 pixel screen with a set of special icons around the lcd. But it emulates a 16x2 screen for standard lcdproc fonctionality.

Here is what it looks:

Image


Lirc and basic fonction with lcdproc and xbmc are working really well for the center lcd part.

The patch belows allows to control those special icons really easily with the "output 'value' " lcdproc command.
Some set of icons can only be shown at a time ( like Music, Movie, Photo area and some others can be set up simultaneously.


Latest patche for lcdproc imonlcd can be found here: http://sourceforge.net/tracker/?func=det...tid=300119

The value is defined with a 31 bit decimal integer or hexa one if prefaced with 0x

For exemple this:

Code:
output 1
or
Code:
output 0x00000001
will light up & make rotating the upper left disc icon

Code:
output 1024
Code:
output 0x00000400
will light up Hdtv icon

and so:
Code:
output 1025
Code:
0x00000401
will make

will light up Hdtv icon and and rotating disc.
Code:
output 0

Will light off all icons.

interesting related post: http://lists.omnipotent.net/pipermail/lc...12750.html

The bits state correspond to the icon as follows ( from imonlcd.c )

Code:
* bit 0       : disc icon (0=off, 1='spin') , if Toprow==4, use CD-animation, else use "HDD-recording-animation"
* bit 1,2,3   : top row (0=none, 1=music, 2=movie, 3=photo, 4=CD/DVD, 5=TV, 6=Web, 7=News/Weather)
* bit 4,5     : 'speaker' icons (0=off, 1=L+R, 2=5.1ch, 3=7.1ch)
* bit 6       : S/PDIF icon
* bit 7       : 'SRC'
* bit 8       : 'FIT'
* bit 9       : 'TV'
* bit 10      : 'HDTV'
* bit 11      : 'SRC1'
* bit 12      : 'SRC2'
* bit 13,14,15: bottom-right icons (0=off, 1=MP3, 2=OGG, 3=WMA, 4=WAV)
* bit 16,17,18: bottom-middle icons (0=off, 1=MPG, 2=AC3, 3=DTS, 4=WMA)
* bit 19,20,21: bottom-left icons (0=off, 1=MPG, 2=DIVX, 3=XVID, 4=WMV)
* bit 22      : 'VOL' (volume)
* bit 23      : 'TIME'
* bit 24      : 'ALARM'
* bit 25      : 'REC' (recording)
* bit 26      : 'REP' (repeat)
* bit 27      : 'SFL' (shuffle)
* bit 28      : Abuse this for progress bars (if set to 1), lower bits represent
*               the length (6 bits each: P|6xTP|6xTL|6xBL|6xBP with P = bit 28,
*               TP=Top Progress, TL = Top Line, BL = Bottom Line, BP = Bottom Progress).
*               If bit 28 is set to 1, lower bits are interpreted as
*               lengths; otherwise setting the symbols as usual.
*               0 <= length <= 32, bars extend from left to right.
*               length > 32, bars extend from right to left, length is counted
*               from 32 up (i.e. 35 means a length of 3).
*
*     Remember: There are two kinds of calls!
*               With bit 28 set to 1: Set all bars (leaving the symbols as is),
*               with bit 28 set to 0: Set the symbols (leaving the bars as is).
*     Beware:   TODO: May become a race condition, if both calls are executed
*                     before the display gets updated. Keep this in mind in your
*                     client-code.
* bit 29      : 'disc-in icon' - half ellipsoid under the disc symbols (0=off, 1=on)
*/

I'd love Xbmc being able to send the related icons command to lcdproc.

Like having spinning disc running when a music or movie is playing with the music/movie icon set up and the audio output type ( with codec icons up ).


There also a problem with xbmc progress bar implementation and this screen. It gives special characters intead of a bar in the screen.

Best would be to use proress bar special icon too ( upside and downside of the lcd screen )
Progress bar should be controlled with this special bit features too ( bit 28 for a progress bar and all bits below are values to feed up this bar ( see values below ).

Other interesting features could be used, i didn't understood all in the imonlcd.c but it seems we can use some big fonts that would give a better looks and more Waf to the lcd screen.

For big fonts, booth virtual lines of the screen woul be one only.

Any developper interested on this implementation ? It seems we have here a really good lcd screen for htpc with more sexy features than common vfd.

I would like to do it if i could but it's out of my skills.
But i can test and provide docs and infos. Nerd

Keep up the good work.



Thanks.
Reply
#2
How cool is this?!!

I totally agree. That lcd seems to be quiet diffused and it's definitely not showing what it really can - using lcdproc. Those who ran windows know what I mean. It's not only about the icons, also fonts and font sizes (like having 2 fat rows with one very small row below each....).
When I followed a link to ron frazier's site (god bless him for solving my peculiar lirc_imon issue btw)
http://www.ronfrazier.net/mythtv/#MythTVImonServer
I was really interested in that imonserver thing...too bad it was for mythtv which in the meantime I had learned to hate.
I thought that would have been so nice in xbmc...so now I'm happy to read other interesting info going in the same direction!
I'm not a pro developer, but I think the problem will be: where/how to implement this:
- lcdproc: seems to be too generic - but I might be wrong (going to have a look again armed with your info)
- the "frazier approach": might be...don't know exactly. Interesting is that it works by parsing log files. That could work with the xbmc log also.
- a custom handling inside xbmc - as you seem to propose: certainly nice, but would require an xbmc hacker with one of those cases/lcds and willing to do it!

What I'd like to underline again: let's squeeze all the features out of it (fonts, fontsizes, maybe that equalizer bars also...), not the icons only.

rickx
Reply
#3
interesting info. Wasn't aware of this mythtvimonserver.

The lcdproc implementation allows use of bigfont only for numbers on what I saw on the sources.

As it's a graphic lcd, the best approach , I think, would be to make a serdisplib driver for it and then build a graphlcd output for xbmc ( like the graphlcd plugin of vdr )

http://graphlcd.berlios.de/
Reply

Logout Mark Read Team Forum Stats Members Help
[LINUX] lcdproc client using imon lcd special icon set0