Table of Contents
XOSD is a system that displays text on top of the other windows, much like the on-screen display (OSD) used by most modern televisions and video-players. In typical open-source style, it was written to scratch an itch.
André Renaud had just installed an infa-red sensor in his computer and was using a stereo remote-control to change what track XMMS was playing, but he could not see the track title from across the room. So André sat down and wrote XOSD to display track-names in XMMS. Over time features were added and XOSD became a stand-alone library, rather than just a plug-in for XMMS; eventually, XOSD 1.0 was released.
André's friend, Tim Wright, took over maintenance of XOSD when André's son (Maximilian) was born. (Being a Ph.D student meant that Tim had more time to spend on XOSD than André.) Tim created a simpler API, culminating in the 2.0 release. Patches are sent in (usually by the master bug-squasher, Philipp Matthias Hahn ) and Tim keeps XOSD updated; currently XOSD is up to version 2.2.0.
While originally written to support an XMMS plug-in, other programs have adopted the XOSD library, including Hotkeys, and OSD Clock. There are also bindings for the Python programing language.
This document will act as a guide to the XOSD C-API. It will cover
Finally there is a function reference, which is a reproduction of the XOSD man pages.
Firstly, thanks to Tim Wright and André Renaud for writing the bulk of the XOSD library. They have both been patient in explaining how XOSD works to a simple documenter. Thanks must also go the the GNOME Documentation Project. While I mainly lurk on the <gnome-doc-list@gnome.org> mailing list, they always have helpful advice, even if I don't agree with their policy of keeping developer documents separate from user documents. The GNOME Handbook of Writing Software Documentation and The GNOME Documentation Style Guide were invaluable resources in writing this guide. The sharp-eyed will note that the legal notice at the start of this document was based on the legal notice found in GNOME documents.