xbmc/xbmc — pull request #1482 by herrnst (2012-09-26 20:16:25+00:00)
Title: [LCD] Feature/Enhancement: Support special/extra icons on SoundGraph iMon and Futaba mdm166a displays

This PR adds support for the special extra icons surrounding the text area on SoundGraph iMon LCD's and Futaba mdm166a VFD's by evaluating modes and codecs from currently playing media and sending matching control messages down the LCDproc pipe.

Preamble: After finding out the next merge period will be the last one before Frodo feature freeze, and basicly having this stuff (which works and does what it should perfectly at least since Dharma for more than two years now) sitting in a separate branch, kept uptodate and tweaked here and there from time to time, this might be interesting for buyers of SoundGraph/Futaba displays or Antec Fusion Remote HTPC-Cases (the display type is factory-mounted in some other cases, too).

To get an idea on what this effectively does, I've set up a crude webpage showing off the enhancement - see http://www.eth0.cc/xbmc-imon/ (apologizing for my crappy cellphone camera).

Users with matching hardware (displays) don't have to configure anything, everything will be autodetected and set up without any need to touch configuration vars. This will also satisfy many users asking for ways to make the special symbols display something, and fully replaces all floating-around Perl pseudodaemon hacks/scripts getting data via XBMC's Webserver.

While I've maintained this functionality at least since Eden-betas and applied changes & improvements here and there, it must be noted that the original code first appeared at http://www.vdr-portal.de/board60-linux/board62-software/board95-xbmc/89740-announce-icons-beim-imon-lcd-und-mdm166a-spectrum-analyzer-f%C3%BCr-lcdproc/ (german language!) and was posted by user "theonlychriss", who also created the now closed Trac Ticket#8981. He however happily agreed with me to put this up onto GitHub and finally PR this to mainline.

The squashed commit at first seems to touch several things (smaller commits may be reviewed via https://github.com/herrnst/xbmc/compare/master...imonlcd), but it mostly "just" adds two low-level interfaces for the two display types, an autodetection routine with proper "Icon device" attachment, and determination of current modes and codecs.

Although surely more elegant ways of handling these things exist, at least adding support for more hardware with similar features is as easy as duplicating the lowlevel-implementation, change things for the hardware and finally add the hardware to the autodetection.

As mentioned earlier, this thing has developed to a very stable shape over time and is used on "production" systems for a long time. It should not interfere with other display types, but very likely needs verification. Platform-wise, linux only.

Note: This PR/commit conflicts with PR#1429 (both touch nearby lines, no conflicts behavior-wise), so if both become merge candidates, the latter needs a quick rebase. While knowing this ain't good, I made this PR with the soon-being-reached deadlines in mind.