[Lcdproc] Running multiple drivers within LCDd
bsdfan at nurfuerspam.de
Sun Nov 13 11:31:23 UTC 2011
For the record: The "load multiple drivers" feature is described in  and in LCDd.conf (read the introduction and the description of the Driver option).
The following is from these documents and from my knowledge:
By putting more than one "Driver=<drivername>" lines into LCDd.conf a user may load
a) the same driver multiple times (maybe with different settings)
b) different drivers
within the same instance of LCDd.
<Drivername> is the name of a section in LCDd.conf which is (on purpose) the same name as the driver binary and this is what one gets by using 'drvthis->name' in a driver. This is also the reason why one shall use 'drvthis->name' in calls to config_get_*() as it points to the LCDd.conf section used by this driver instance!
If you create a section named differently from the driver binary you have to put a "File=" option into that section pointing to the driver binary.
By loading several drivers at the same time it is possible to run an output driver and a different input-only driver (e.g. lircin).
If one loads several output capable drivers at the same time, the screen and cell size of the first (output) driver are used (output here means drivers that drive a display).
All output capable drivers receive the same rendering information (strings, icons, bars, etc). Drivers are therefore required to check in drawing functions that the content is within their supported screen bounds. Assuming that LCDd always sends data within a drivers screen bounds is WRONG. This is only partly described in .
Additionally all drivers receive the same value from the output() function.
Some driver can automatically adjust their size if they are loaded as a slave driver. Currently I am only aware of the curses driver doing this.
More information about the LCDproc