LCDproc Developer's Guide

The Hitchhiker's Guide to LCDproc 0.5.7

Markus Dolze

Peter Marschall

Guillaume Filion

0.5.7

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation; with no Invariant Sections, with no Front-Cover texts, and with no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".

Abstract

This document is a guide to LCDproc written for developers. It covers LCDproc 0.5.7. Users should read the user guide.


Table of Contents

1. Introduction
About this Document
2. The LCDproc client language
Introduction
Opening a session
Command reference
Basic stuff
Screens and widgets
Menu stuff
Miscellaneous
LCDd messages
3. Programming for LCDproc
Get the source
Download Yesterday's CVS Version of LCDproc as a Tarball
Download The Latest Version of LCDproc from CVS
Code style guideline
File format and indention
Naming conventions
Comments
Statement style
Example indent profile
Submitting code
4. Shared files
Introduction
report.h : Debugging and reporting
Sets reporting level and message destination
Report the message to the selected destination if important enough
Send debugging information if important enough
LL.h : Linked Lists (Doubly-Linked Lists)
Creating a list
Changing data
Iterations throught the list
Using the list as a stack or a queue
Future
Shared files specific for drivers
port.h : Parallel port I/O
adv_bignum.h : Write Big-Numbers
5. The LCDproc driver API
Overview of Operation
Private Data
Functions in Detail
6. Adding your driver to LCDproc
Introduction
Rules for accepting new drivers
Autoconf, automake, and Everything!
Autoconf and its friend, acinclude.m4
Automake and its friend, Makefile.am
Test your setup
It's all about documentation
Within the source code
The configuration file, LCDd.conf
The daemon's manual page, LCDd.8
The user guide
7. Making a release
Creating a source code release
Creating a documentation release
A. GNU Free Documentation License
PREAMBLE
APPLICABILITY AND DEFINITIONS
VERBATIM COPYING
COPYING IN QUANTITY
MODIFICATIONS
COMBINING DOCUMENTS
COLLECTIONS OF DOCUMENTS
AGGREGATION WITH INDEPENDENT WORKS
TRANSLATION
TERMINATION
FUTURE REVISIONS OF THIS LICENSE
How to use this License for your documents

List of Examples

3.1. Names of constants, variables and functions
3.2. Standard copyright notice
3.3. A function declaration
3.4. Space around operators
3.5. Function call
3.6. If-else with braces
3.7. If-else with single statements
3.8. Other compound statements
3.9. indent.pro example
4.1. Calling lib_adv_bignum()
4.2. Enabling adv_bignum support in Makefile.am