/** @author Mario Danic, Thomas Schmitt @mainpage Libburn Documentation Index @section intro Introduction Libburn is an open-source library for reading, mastering and writing optical discs. For now this means only CD-R and CD-RW. The project comprises of several more or less interdependent parts which together strive to be a usable foundation for application development. These are libraries, language bindings, and middleware binaries which emulate classical (and valuable) Linux tools. Our scope is currently Linux 2.4 and 2.6 and we will have a hard time to widen this for now, because of our history. The project could need advise from or membership of skilled kernel people and people who know how to talk CD/DVD drives into doing things. We do have a workable code base for burning data CDs, though. The burn API is quite comprehensively documented and can be used to build a presentable application. We do have a functional binary which emulates parts of cdrecord in order to prove that usability, and in order to allow you to explore libburn's scope by help of existing cdrecord frontends. @subsection components The project components (list subject to growth, hopefully): - libburn is the library by which preformatted data get onto optical media. It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or /dev/hdX (e.g. on kernel 2.6). libburn is the foundation of our cdrecord emulation. - libisofs is the library to pack up hard disk files and directories into a ISO 9660 disk image. This may then be brought to CD via libburn. libisofs is to be the foundation of our upcoming mkisofs emulation. - cdrskin is a limited cdrecord compatibility wrapper for libburn. cdrecord is a powerful GPL'ed burn program included in Joerg Schilling's cdrtools. cdrskin strives to be a second source for the services traditionally provided by cdrecord. cdrskin does not contain any bytes copied from cdrecord's sources. Many bytes have been copied from the message output of cdrecord runs, though. See cdrskin/README for more. - "test" is a collection of application gestures and examples given by the authors of the library features. The main API example of libburn is named test/libburner.c . Explore these examples if you look for inspiration. We plan to be a responsive upstream. Bear with us. @section using Using the libraries Our build system is based on autotools. User experience tells us that you will need at least autotools version 1.7. To build libburn and its subprojects it should be sufficient to go into its toplevel directory and execute