Libburn Documentation Index

0.2.4

Author:
Mario Danic, Thomas Schmitt

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 only. For ports to other systems we would need : login on a development machine resp. a live OS on CD or DVD, advise from a system person about the equivalent of Linux sg or FreeBSD CAM, volunteers for testing of realistic use cases.

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.

The project components (list subject to growth, hopefully):

We plan to be a responsive upstream. Bear with us.

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

To make the libraries accessible for running resp. developing applications

Both libraries are written in C language and get built by autotools. Thus we expect them to be useable by a wide range of Linux-implemented languages and development tools.

Libburner

libburner is a minimal demo application for the library libburn (see: libburn/libburn.h) as provided on http://libburn.pykix.org . It can list the available devices, can blank a CD-RW and can burn to CD-R or CD-RW.

It's main purpose, nevertheless, is to show you how to use libburn and also to serve the libburn team as reference application. libburner does indeed define the standard way how above three gestures can be implemented and stay upward compatible for a good while.

Libburner --help

Usage: test/libburner
       [--drive <address>|<driveno>|"-"]
       [--blank_fast|--blank_full] [--audio]
       [--try_to_simulate] [--stdin_size <bytes>]
       [<one or="" more="" imagefiles>="">|"-"]
Examples
A bus scan (needs rw-permissions to see a drive):
  test/libburner --drive -
Burn a file to drive chosen by number:
  test/libburner --drive 0 my_image_file
Burn a file to drive chosen by persistent address:
  test/libburner --drive /dev/hdc my_image_file
Blank a used CD-RW (is combinable with burning in one run):
  test/libburner --drive /dev/hdc --blank_fast
Burn two audio tracks
  lame --decode -t /path/to/track1.mp3 track1.cd
  test/dewav /path/to/track2.wav -o track2.cd
  test/libburner --drive /dev/hdc --audio track1.cd track2.cd
Burn a compressed afio archive on-the-fly, pad up to 700 MB:
  ( cd my_directory ; find . -print | afio -oZ - ) | \
  test/libburner --drive /dev/hdc --stdin_size 734003200  -
To be read from *not mounted* CD via: afio -tvZ /dev/hdc
Program tar would need a clean EOF which our padded CD cannot deliver.

Sourceode of libburner

Click on blue names of functions, structures, variables, etc in oder to get to the according specs of libburn API or libburner sourcecode.
Generated on Tue Jan 9 14:48:36 2007 for libisofs by  doxygen 1.5.1